File tree Expand file tree Collapse file tree 2 files changed +20
-9
lines changed Expand file tree Collapse file tree 2 files changed +20
-9
lines changed Original file line number Diff line number Diff line change 4
4
5
5
using ProGaudi . Tarantool . Client . Model . Enums ;
6
6
using ProGaudi . Tarantool . Client . Model . Responses ;
7
- using ProGaudi . Tarantool . Client . Utils ;
8
7
9
8
namespace ProGaudi . Tarantool . Client . Converters
10
9
{
11
-
12
10
internal class ErrorResponsePacketConverter : IMsgPackConverter < ErrorResponse >
13
11
{
14
12
private IMsgPackConverter < Key > _keyConverter ;
@@ -29,14 +27,26 @@ public ErrorResponse Read(IMsgPackReader reader)
29
27
{
30
28
string errorMessage = null ;
31
29
var length = reader . ReadMapLength ( ) ;
32
-
33
- var errorKey = _keyConverter . Read ( reader ) ;
34
- if ( errorKey != Key . Error )
30
+
31
+ for ( var i = 0 ; i < length ; i ++ )
35
32
{
36
- throw ExceptionHelper . UnexpectedKey ( errorKey , Key . Error ) ;
33
+ var errorKey = _keyConverter . Read ( reader ) ;
34
+
35
+ switch ( errorKey )
36
+ {
37
+ case Key . Error24 :
38
+ errorMessage = _stringConverter . Read ( reader ) ;
39
+ break ;
40
+ case Key . Error :
41
+ // TODO: add parsing of new error metadata
42
+ reader . SkipToken ( ) ;
43
+ break ;
44
+ default :
45
+ reader . SkipToken ( ) ;
46
+ break ;
47
+ }
37
48
}
38
- errorMessage = _stringConverter . Read ( reader ) ;
39
-
49
+
40
50
return new ErrorResponse ( errorMessage ) ;
41
51
}
42
52
}
Original file line number Diff line number Diff line change @@ -21,8 +21,9 @@ public enum Key : uint
21
21
22
22
// Response keys
23
23
Data = 0x30 ,
24
- Error = 0x31 ,
24
+ Error24 = 0x31 ,
25
25
Metadata = 0x32 ,
26
+ Error = 0x52 ,
26
27
27
28
// Sql keys
28
29
SqlQueryText = 0x40 ,
You can’t perform that action at this time.
0 commit comments