@xmobitea/gn-typescript-client 2.6.12 → 2.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/gearn.js.client.js +183 -57
  2. package/dist/gearn.js.client.min.js +1 -1
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.js +183 -57
  5. package/dist/runtime/GNNetwork.d.ts +1 -1
  6. package/dist/runtime/helper/GNSupport.d.ts +20 -0
  7. package/dist/runtime/{entity → helper}/OperationHelper.d.ts +1 -1
  8. package/dist/runtime/helper/StorageService.d.ts +18 -0
  9. package/dist/runtime/networking/NetworkingPeer.d.ts +1 -1
  10. package/dist/runtime/typescript/ServiceUpdate.d.ts +2 -0
  11. package/docs/COCOS_CREATOR_INTEGRATION.md +116 -0
  12. package/examples/cocos-creator/GearNExample.ts.txt +176 -0
  13. package/package.json +3 -2
  14. package/srcSwift/Package.swift +32 -0
  15. package/srcSwift/Sources/GearN/runtime/GNNetwork.swift +530 -0
  16. package/srcSwift/Sources/GearN/runtime/GNNetworkAuthenticateApi.swift +178 -0
  17. package/srcSwift/Sources/GearN/runtime/GNNetworkCharacterPlayerApi.swift +1162 -0
  18. package/srcSwift/Sources/GearN/runtime/GNNetworkCloudScriptApi.swift +154 -0
  19. package/srcSwift/Sources/GearN/runtime/GNNetworkContentApi.swift +208 -0
  20. package/srcSwift/Sources/GearN/runtime/GNNetworkDashboardApi.swift +240 -0
  21. package/srcSwift/Sources/GearN/runtime/GNNetworkGamePlayerApi.swift +1369 -0
  22. package/srcSwift/Sources/GearN/runtime/GNNetworkGroupApi.swift +1100 -0
  23. package/srcSwift/Sources/GearN/runtime/GNNetworkInventoryApi.swift +937 -0
  24. package/srcSwift/Sources/GearN/runtime/GNNetworkMasterPlayerApi.swift +2323 -0
  25. package/srcSwift/Sources/GearN/runtime/GNNetworkMultiplayerApi.swift +298 -0
  26. package/srcSwift/Sources/GearN/runtime/GNNetworkStoreInventoryApi.swift +397 -0
  27. package/srcSwift/Sources/GearN/runtime/common/Action0.swift +3 -0
  28. package/srcSwift/Sources/GearN/runtime/common/Action1.swift +3 -0
  29. package/srcSwift/Sources/GearN/runtime/common/Action2.swift +3 -0
  30. package/srcSwift/Sources/GearN/runtime/common/Action3.swift +3 -0
  31. package/srcSwift/Sources/GearN/runtime/common/Action4.swift +3 -0
  32. package/srcSwift/Sources/GearN/runtime/common/GNArray.swift +204 -0
  33. package/srcSwift/Sources/GearN/runtime/common/GNData.swift +108 -0
  34. package/srcSwift/Sources/GearN/runtime/common/GNHashtable.swift +200 -0
  35. package/srcSwift/Sources/GearN/runtime/config/GNServerSettings.swift +95 -0
  36. package/srcSwift/Sources/GearN/runtime/constant/Commands.swift +28 -0
  37. package/srcSwift/Sources/GearN/runtime/constant/EventCode.swift +10 -0
  38. package/srcSwift/Sources/GearN/runtime/constant/OperationCode.swift +252 -0
  39. package/srcSwift/Sources/GearN/runtime/constant/ReturnCode.swift +19 -0
  40. package/srcSwift/Sources/GearN/runtime/constant/enumType/ExecuteResponseStatus.swift +9 -0
  41. package/srcSwift/Sources/GearN/runtime/constant/enumType/FriendStatus.swift +8 -0
  42. package/srcSwift/Sources/GearN/runtime/constant/enumType/GoogleLoginType.swift +6 -0
  43. package/srcSwift/Sources/GearN/runtime/constant/enumType/GroupStatus.swift +8 -0
  44. package/srcSwift/Sources/GearN/runtime/constant/enumType/InvalidMemberType.swift +19 -0
  45. package/srcSwift/Sources/GearN/runtime/constant/enumType/ItemType.swift +6 -0
  46. package/srcSwift/Sources/GearN/runtime/constant/enumType/MatchmakingMemberStatus.swift +7 -0
  47. package/srcSwift/Sources/GearN/runtime/constant/enumType/MatchmakingTicketStatus.swift +9 -0
  48. package/srcSwift/Sources/GearN/runtime/constant/enumType/OwnerType.swift +10 -0
  49. package/srcSwift/Sources/GearN/runtime/constant/enumType/PermissionDataItem.swift +6 -0
  50. package/srcSwift/Sources/GearN/runtime/constant/enumType/PushPlatformType.swift +6 -0
  51. package/srcSwift/Sources/GearN/runtime/constant/enumType/RequestRole.swift +7 -0
  52. package/srcSwift/Sources/GearN/runtime/constant/enumType/RequestType.swift +16 -0
  53. package/srcSwift/Sources/GearN/runtime/constant/enumType/StoreItemType.swift +6 -0
  54. package/srcSwift/Sources/GearN/runtime/constant/enumType/StoreReceiveType.swift +9 -0
  55. package/srcSwift/Sources/GearN/runtime/constant/errorCode/ErrorCode.swift +58 -0
  56. package/srcSwift/Sources/GearN/runtime/constant/parameterCode/ParameterCode.swift +672 -0
  57. package/srcSwift/Sources/GearN/runtime/entity/DataMember.swift +196 -0
  58. package/srcSwift/Sources/GearN/runtime/entity/GNMetadata.swift +9 -0
  59. package/srcSwift/Sources/GearN/runtime/entity/InvalidMember.swift +11 -0
  60. package/srcSwift/Sources/GearN/runtime/entity/OperationEvent.swift +38 -0
  61. package/srcSwift/Sources/GearN/runtime/entity/OperationHelper.swift +28 -0
  62. package/srcSwift/Sources/GearN/runtime/entity/OperationRequest.swift +62 -0
  63. package/srcSwift/Sources/GearN/runtime/entity/OperationResponse.swift +98 -0
  64. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateModels.swift +351 -0
  65. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateRequestModels.swift +81 -0
  66. package/srcSwift/Sources/GearN/runtime/entity/models/AuthenticateResponseModels.swift +108 -0
  67. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerModels.swift +1045 -0
  68. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerRequestModels.swift +821 -0
  69. package/srcSwift/Sources/GearN/runtime/entity/models/CharacterPlayerResponseModels.swift +588 -0
  70. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptModels.swift +187 -0
  71. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptRequestModels.swift +84 -0
  72. package/srcSwift/Sources/GearN/runtime/entity/models/CloudScriptResponseModels.swift +59 -0
  73. package/srcSwift/Sources/GearN/runtime/entity/models/ContentModels.swift +195 -0
  74. package/srcSwift/Sources/GearN/runtime/entity/models/ContentRequestModels.swift +116 -0
  75. package/srcSwift/Sources/GearN/runtime/entity/models/ContentResponseModels.swift +81 -0
  76. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardModels.swift +426 -0
  77. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardRequestModels.swift +160 -0
  78. package/srcSwift/Sources/GearN/runtime/entity/models/DashboardResponseModels.swift +82 -0
  79. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerModels.swift +1334 -0
  80. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerRequestModels.swift +643 -0
  81. package/srcSwift/Sources/GearN/runtime/entity/models/GamePlayerResponseModels.swift +213 -0
  82. package/srcSwift/Sources/GearN/runtime/entity/models/GenericModels.swift +171 -0
  83. package/srcSwift/Sources/GearN/runtime/entity/models/GroupModels.swift +850 -0
  84. package/srcSwift/Sources/GearN/runtime/entity/models/GroupRequestModels.swift +485 -0
  85. package/srcSwift/Sources/GearN/runtime/entity/models/GroupResponseModels.swift +165 -0
  86. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryModels.swift +679 -0
  87. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryRequestModels.swift +413 -0
  88. package/srcSwift/Sources/GearN/runtime/entity/models/InventoryResponseModels.swift +141 -0
  89. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerModels.swift +378 -0
  90. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerRequestModels.swift +147 -0
  91. package/srcSwift/Sources/GearN/runtime/entity/models/MasterPlayerResponseModels.swift +318 -0
  92. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerModels.swift +319 -0
  93. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerRequestModels.swift +125 -0
  94. package/srcSwift/Sources/GearN/runtime/entity/models/MultiplayerResponseModels.swift +45 -0
  95. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryModels.swift +633 -0
  96. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryRequestModels.swift +173 -0
  97. package/srcSwift/Sources/GearN/runtime/entity/models/StoreInventoryResponseModels.swift +61 -0
  98. package/srcSwift/Sources/GearN/runtime/entity/request/CustomOperationRequest.swift +42 -0
  99. package/srcSwift/Sources/GearN/runtime/entity/response/CustomOperationResponse.swift +49 -0
  100. package/srcSwift/Sources/GearN/runtime/entity/response/GetAuthInfoResponse.swift +43 -0
  101. package/srcSwift/Sources/GearN/runtime/entity/response/HealthCheckResponse.swift +86 -0
  102. package/srcSwift/Sources/GearN/runtime/entity/response/UploadFileResponse.swift +15 -0
  103. package/srcSwift/Sources/GearN/runtime/helper/CodeHelper.swift +107 -0
  104. package/srcSwift/Sources/GearN/runtime/helper/ConverterService.swift +98 -0
  105. package/srcSwift/Sources/GearN/runtime/helper/EnumUtility.swift +34 -0
  106. package/srcSwift/Sources/GearN/runtime/helper/GNSupport.swift +41 -0
  107. package/srcSwift/Sources/GearN/runtime/helper/GNUtils.swift +66 -0
  108. package/srcSwift/Sources/GearN/runtime/helper/MessagePackConverterService.swift +21 -0
  109. package/srcSwift/Sources/GearN/runtime/helper/StorageService.swift +29 -0
  110. package/srcSwift/Sources/GearN/runtime/logger/GNDebug.swift +33 -0
  111. package/srcSwift/Sources/GearN/runtime/networking/AuthenticateStatus.swift +24 -0
  112. package/srcSwift/Sources/GearN/runtime/networking/IPeer.swift +8 -0
  113. package/srcSwift/Sources/GearN/runtime/networking/NetworkingPeer.swift +368 -0
  114. package/srcSwift/Sources/GearN/runtime/networking/OperationPending.swift +81 -0
  115. package/srcSwift/Sources/GearN/runtime/networking/PeerBase.swift +228 -0
  116. package/srcSwift/Sources/GearN/runtime/networking/handler/IServerEventHandler.swift +20 -0
  117. package/srcSwift/Sources/GearN/runtime/networking/http/HttpPeer.swift +226 -0
  118. package/srcSwift/Sources/GearN/runtime/networking/http/HttpTypes.swift +24 -0
  119. package/srcSwift/Sources/GearN/runtime/networking/http/NetworkingHttpPeerBase.swift +13 -0
  120. package/srcSwift/Sources/GearN/runtime/networking/http/NetworkingPeerUrlSession.swift +125 -0
  121. package/srcSwift/Sources/GearN/runtime/networking/request/NetRequest.swift +19 -0
  122. package/srcSwift/Sources/GearN/runtime/networking/response/NetResponse.swift +13 -0
  123. package/srcSwift/Sources/GearN/runtime/networking/socket/NetworkingPeerSocketIOClient.swift +244 -0
  124. package/srcSwift/Sources/GearN/runtime/networking/socket/NetworkingSocketPeerBase.swift +59 -0
  125. package/srcSwift/Sources/GearN/runtime/networking/socket/SocketPeer.swift +136 -0
  126. package/tsconfig-build.cocos.json +31 -0
  127. package/webpack.config.cocos.mjs +78 -0
@@ -0,0 +1,196 @@
1
+ import Foundation
2
+
3
+ public protocol IGNAnyDataMember: AnyObject {
4
+ var intCode: Int? { get }
5
+ var stringCode: String? { get }
6
+ var isOptional: Bool { get }
7
+ func setValue(from data: GNHashtable)
8
+ func getValue() -> Any?
9
+ }
10
+
11
+ @propertyWrapper
12
+ public class DataMember<T>: IGNAnyDataMember {
13
+ public let intCode: Int?
14
+ public let stringCode: String?
15
+ public let isOptional: Bool
16
+ public let defaultValue: T?
17
+
18
+ public var wrappedValue: T
19
+
20
+ public init(wrappedValue: T, code: Int? = nil, key: String? = nil, isOptional: Bool = false, defaultValue: T? = nil) {
21
+ self.wrappedValue = wrappedValue
22
+ self.intCode = code
23
+ self.stringCode = key
24
+ self.isOptional = isOptional
25
+ self.defaultValue = defaultValue
26
+ }
27
+
28
+ // Convenience init for optional types initialized as nil
29
+ public init(code: Int? = nil, key: String? = nil, isOptional: Bool = false, defaultValue: T? = nil) where T: ExpressibleByNilLiteral {
30
+ self.wrappedValue = nil
31
+ self.intCode = code
32
+ self.stringCode = key
33
+ self.isOptional = isOptional
34
+ self.defaultValue = defaultValue
35
+ }
36
+
37
+ public func setValue(from data: GNHashtable) {
38
+ var val: Any? = nil
39
+ if let code = intCode {
40
+ val = data.getObject(code)
41
+ } else if let key = stringCode {
42
+ val = data.getObject(key)
43
+ }
44
+
45
+ if let v = val as? T {
46
+ self.wrappedValue = v
47
+ } else if let def = self.defaultValue {
48
+ self.wrappedValue = def
49
+ }
50
+ }
51
+
52
+ public func getValue() -> Any? {
53
+ return self.wrappedValue
54
+ }
55
+
56
+ public var code: Int { return intCode ?? 0 } // Legacy support if needed, or remove protocol requirement for non-optional code
57
+ }
58
+
59
+ // MARK: - Specialized Wrappers
60
+
61
+ @propertyWrapper
62
+ public class StringDataMember: DataMember<String?> {
63
+ public init(wrappedValue: String? = nil, code: Int? = nil, key: String? = nil, minLength: Int = 0, maxLength: Int = Int.max, mustNonNull: Bool = false, isOptional: Bool = true, defaultValue: String? = nil) {
64
+ super.init(wrappedValue: wrappedValue, code: code, key: key, isOptional: isOptional, defaultValue: defaultValue)
65
+ }
66
+
67
+ public override func setValue(from data: GNHashtable) {
68
+ var val: String? = nil
69
+ if let c = intCode { val = data.getString(c) }
70
+ else if let k = stringCode { val = data.getString(k) }
71
+
72
+ if let v = val {
73
+ self.wrappedValue = v
74
+ } else {
75
+ self.wrappedValue = self.defaultValue
76
+ }
77
+ }
78
+ }
79
+
80
+ @propertyWrapper
81
+ public class BooleanDataMember: DataMember<Bool?> {
82
+ public init(wrappedValue: Bool? = nil, code: Int? = nil, key: String? = nil, isOptional: Bool = true, defaultValue: Bool? = nil) {
83
+ super.init(wrappedValue: wrappedValue, code: code, key: key, isOptional: isOptional, defaultValue: defaultValue)
84
+ }
85
+
86
+ public override func setValue(from data: GNHashtable) {
87
+ var val: Bool? = nil
88
+ if let c = intCode { val = data.getBool(c) }
89
+ else if let k = stringCode { val = data.getBool(k) }
90
+
91
+ if let v = val {
92
+ self.wrappedValue = v
93
+ } else {
94
+ self.wrappedValue = self.defaultValue
95
+ }
96
+ }
97
+ }
98
+
99
+ @propertyWrapper
100
+ public class NumberDataMember: DataMember<Int> {
101
+ public init(wrappedValue: Int = 0, code: Int? = nil, key: String? = nil, isOptional: Bool = false, defaultValue: Int = 0, minValue: Int = Int.min, maxValue: Int = Int.max, mustInt: Bool = true) {
102
+ super.init(wrappedValue: wrappedValue, code: code, key: key, isOptional: isOptional, defaultValue: defaultValue)
103
+ }
104
+
105
+ public override func setValue(from data: GNHashtable) {
106
+ var val: Int? = nil
107
+ if let c = intCode { val = data.getInt(c) }
108
+ else if let k = stringCode { val = data.getInt(k) }
109
+
110
+ if let v = val {
111
+ self.wrappedValue = v
112
+ } else {
113
+ self.wrappedValue = self.defaultValue ?? 0
114
+ }
115
+ }
116
+ }
117
+
118
+ @propertyWrapper
119
+ public class GNHashtableDataMember<T: Initiable>: DataMember<T?> {
120
+ public init(wrappedValue: T? = nil, code: Int? = nil, key: String? = nil, isOptional: Bool = true, mustNonNull: Bool = false) {
121
+ super.init(wrappedValue: wrappedValue, code: code, key: key, isOptional: isOptional, defaultValue: nil)
122
+ }
123
+
124
+ public override func setValue(from data: GNHashtable) {
125
+ var val: GNHashtable? = nil
126
+ if let c = intCode { val = data.getGNHashtable(c) }
127
+ else if let k = stringCode { val = data.getGNHashtable(k) }
128
+
129
+ if let v = val {
130
+ self.wrappedValue = ConverterService.deserializeObject(gnHashtable: v, cls: T.self)
131
+ } else {
132
+ self.wrappedValue = nil
133
+ }
134
+ }
135
+
136
+ public override func getValue() -> Any? {
137
+ if let v = self.wrappedValue {
138
+ return ConverterService.serializeObject(object: v)
139
+ }
140
+ return nil
141
+ }
142
+ }
143
+
144
+ @propertyWrapper
145
+ public class GNArrayDataMember<T>: DataMember<[T]?> {
146
+ public let elementCls: Any.Type?
147
+
148
+ public init(wrappedValue: [T]? = nil, code: Int? = nil, key: String? = nil, isOptional: Bool = true, elementCls: Any.Type? = nil) {
149
+ self.elementCls = elementCls
150
+ super.init(wrappedValue: wrappedValue, code: code, key: key, isOptional: isOptional, defaultValue: nil)
151
+ }
152
+
153
+ public override func setValue(from data: GNHashtable) {
154
+ var list: GNArray? = nil
155
+ if let c = intCode { list = data.getGNArray(c) }
156
+ else if let k = stringCode { list = data.getGNArray(k) }
157
+
158
+ guard let validList = list else {
159
+ self.wrappedValue = nil
160
+ return
161
+ }
162
+
163
+ if let _ = T.self as? String.Type {
164
+ self.wrappedValue = validList.toArray() as? [T]
165
+ } else if let _ = T.self as? Int.Type {
166
+ self.wrappedValue = validList.toArray() as? [T]
167
+ } else {
168
+ if let elType = elementCls as? Initiable.Type {
169
+ var res: [T] = []
170
+ for i in 0..<validList.count {
171
+ if let ht = validList.getGNHashtable(i), let obj = ConverterService.deserializeObject(gnHashtable: ht, cls: elType) as? T {
172
+ res.append(obj)
173
+ }
174
+ }
175
+ self.wrappedValue = res
176
+ } else {
177
+ self.wrappedValue = validList.toArray() as? [T]
178
+ }
179
+ }
180
+ }
181
+
182
+ public override func getValue() -> Any? {
183
+ guard let list = self.wrappedValue else { return nil }
184
+ let gnParams = GNArray()
185
+ for item in list {
186
+ if let validItem = item as? Initiable {
187
+ if let ser = ConverterService.serializeObject(object: validItem) {
188
+ gnParams.add(ser)
189
+ }
190
+ } else {
191
+ gnParams.add(item)
192
+ }
193
+ }
194
+ return gnParams
195
+ }
196
+ }
@@ -0,0 +1,9 @@
1
+ import Foundation
2
+
3
+ public enum FieldDataType: Int {
4
+ case Boolean = 0
5
+ case Number = 1
6
+ case String = 2
7
+ case Array = 3
8
+ case Object = 4
9
+ }
@@ -0,0 +1,11 @@
1
+ import Foundation
2
+
3
+ public struct InvalidMember {
4
+ public var code: String
5
+ public var invalidMemberType: InvalidMemberType
6
+
7
+ public init(code: String, invalidMemberType: InvalidMemberType) {
8
+ self.code = code
9
+ self.invalidMemberType = invalidMemberType
10
+ }
11
+ }
@@ -0,0 +1,38 @@
1
+ import Foundation
2
+
3
+ public class OperationEvent {
4
+ private var eventCode: String
5
+ private var parameters: GNHashtable?
6
+
7
+ public init(eventCode: String, parameters: GNHashtable? = nil) {
8
+ self.eventCode = eventCode
9
+ self.parameters = parameters
10
+ }
11
+
12
+ public func getEventCode() -> String {
13
+ return self.eventCode
14
+ }
15
+
16
+ public func getParameters() -> GNHashtable? {
17
+ return self.parameters
18
+ }
19
+
20
+ @discardableResult
21
+ public func setParameter(key: String, value: Any) -> OperationEvent {
22
+ if self.parameters == nil {
23
+ self.parameters = GNHashtable()
24
+ }
25
+ self.parameters?.add(key, value)
26
+ return self
27
+ }
28
+
29
+ @discardableResult
30
+ public func setParameters(parameters: GNHashtable) -> OperationEvent {
31
+ self.parameters = parameters
32
+ return self
33
+ }
34
+
35
+ public var description: String {
36
+ return "EventCode: \(self.eventCode), parameters: \(self.parameters?.toData().description ?? "nil")"
37
+ }
38
+ }
@@ -0,0 +1,28 @@
1
+ import Foundation
2
+
3
+ public class OperationHelper {
4
+ public static func toSocketData(requestType: RequestType, role: RequestRole, request: OperationRequest) -> [Any?] {
5
+ let requestId = request.getRequestId()
6
+
7
+ if requestId == -1 || requestId == 0 { // 0 might be default unchecked value
8
+ return [
9
+ CodeHelper.getRequestTypeName(requestType.rawValue),
10
+ CodeHelper.getRequestRoleName(role.rawValue),
11
+ request.getOperationCode(),
12
+ (request.getParameters() == nil) ? nil : request.getParameters()!.toData()
13
+ ]
14
+ } else {
15
+ return [
16
+ CodeHelper.getRequestTypeName(requestType.rawValue),
17
+ CodeHelper.getRequestRoleName(role.rawValue),
18
+ request.getOperationCode(),
19
+ (request.getParameters() == nil) ? nil : request.getParameters()!.toData(),
20
+ requestId
21
+ ]
22
+ }
23
+ }
24
+
25
+ public static func toHttpData(requestType: RequestType, role: RequestRole, request: OperationRequest) -> Any? {
26
+ return nil
27
+ }
28
+ }
@@ -0,0 +1,62 @@
1
+ import Foundation
2
+
3
+ public class OperationRequest {
4
+ public static let defaultTimeOut: Int = 20
5
+
6
+ private var operationCode: String
7
+ private var requestId: Int = 0
8
+ private var parameters: GNHashtable?
9
+ private var timeout: Int
10
+
11
+ public init(operationCode: String, timeout: Int = OperationRequest.defaultTimeOut) {
12
+ self.operationCode = operationCode
13
+ self.timeout = timeout
14
+ }
15
+
16
+ public func getOperationCode() -> String {
17
+ return self.operationCode
18
+ }
19
+
20
+ public func getRequestId() -> Int {
21
+ return self.requestId
22
+ }
23
+
24
+ public func getParameters() -> GNHashtable? {
25
+ return self.parameters
26
+ }
27
+
28
+ public func getTimeout() -> Int {
29
+ return self.timeout
30
+ }
31
+
32
+ @discardableResult
33
+ public func setRequestId(_ requestId: Int) -> OperationRequest {
34
+ self.requestId = requestId
35
+ return self
36
+ }
37
+
38
+ @discardableResult
39
+ public func setParameter(key: String, value: Any) -> OperationRequest {
40
+ if self.parameters == nil {
41
+ self.parameters = GNHashtable()
42
+ }
43
+ self.parameters?.add(key, value)
44
+ return self
45
+ }
46
+
47
+ @discardableResult
48
+ public func setParameters(_ parameters: GNHashtable) -> OperationRequest {
49
+ self.parameters = parameters
50
+ return self
51
+ }
52
+
53
+ @discardableResult
54
+ public func setTimeout(_ timeout: Int) -> OperationRequest {
55
+ self.timeout = timeout
56
+ return self
57
+ }
58
+
59
+ public var description: String {
60
+ return "OperationCode: \(self.operationCode), requestId: \(self.requestId), parameters: \(self.parameters?.toData().description ?? "nil")"
61
+ }
62
+ }
@@ -0,0 +1,98 @@
1
+ import Foundation
2
+
3
+ public class OperationResponse {
4
+ private var operationCode: String
5
+ private var responseId: Int
6
+ private var returnCode: Int = 0
7
+ private var debugMessage: String?
8
+ private var parameters: GNHashtable?
9
+
10
+ private var invalidMembers: [InvalidMember]?
11
+
12
+ public init(operationCode: String, responseId: Int) {
13
+ self.operationCode = operationCode
14
+ self.responseId = responseId
15
+ self.parameters = GNHashtable()
16
+ self.debugMessage = nil
17
+ }
18
+
19
+ public func getOperationCode() -> String {
20
+ return self.operationCode
21
+ }
22
+
23
+ public func getReturnCode() -> Int {
24
+ return self.returnCode
25
+ }
26
+
27
+ public func getParameters() -> GNHashtable? {
28
+ return self.parameters
29
+ }
30
+
31
+ public func getResponseId() -> Int {
32
+ return self.responseId
33
+ }
34
+
35
+ public func getDebugMessage() -> String? {
36
+ return self.debugMessage
37
+ }
38
+
39
+ public func getInvalidMembers() -> [InvalidMember]? {
40
+ return self.invalidMembers
41
+ }
42
+
43
+ public func hasError() -> Bool {
44
+ return self.returnCode != ReturnCode.Ok
45
+ }
46
+
47
+ @discardableResult
48
+ public func setReturnCode(_ returnCode: Int) -> OperationResponse {
49
+ self.returnCode = returnCode
50
+ return self
51
+ }
52
+
53
+ @discardableResult
54
+ public func setDebugMessage(_ debugMessage: String?) -> OperationResponse {
55
+ self.debugMessage = debugMessage
56
+ return self
57
+ }
58
+
59
+ @discardableResult
60
+ public func setParameter(key: String, value: Any) -> OperationResponse {
61
+ if self.parameters == nil {
62
+ self.parameters = GNHashtable()
63
+ }
64
+ self.parameters?.add(key, value)
65
+ return self
66
+ }
67
+
68
+ @discardableResult
69
+ public func setParameters(_ parameters: GNHashtable) -> OperationResponse {
70
+ self.parameters = parameters
71
+ return self
72
+ }
73
+
74
+ @discardableResult
75
+ public func setInvalidMembers(_ invalidMembers: [InvalidMember]?) -> OperationResponse {
76
+ self.invalidMembers = invalidMembers
77
+ return self
78
+ }
79
+
80
+ public var description: String {
81
+ var stringBuilder = "OperationCode: \(self.operationCode), responseId: \(self.responseId), returnCode: \(CodeHelper.getReturnCodeName(self.returnCode))"
82
+
83
+ if self.returnCode == ReturnCode.Ok {
84
+ stringBuilder += ", parameters: \(self.parameters?.toData().description ?? "nil")"
85
+ } else if self.returnCode == ReturnCode.InvalidRequestParameters {
86
+ if let invalidMembers = self.invalidMembers {
87
+ let invalidStr = invalidMembers.map { "\($0.code) (\($0.invalidMemberType))" }.joined(separator: ", ")
88
+ stringBuilder += ", invalidMembers: \(invalidStr)"
89
+ } else {
90
+ stringBuilder += ", invalidMembers: nil"
91
+ }
92
+ } else {
93
+ stringBuilder += ", debugMessage: \(self.debugMessage ?? "nil")"
94
+ }
95
+
96
+ return stringBuilder
97
+ }
98
+ }