@xmobitea/gn-server 2.3.1 → 2.4.0

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.
package/syncCode.js DELETED
@@ -1,1016 +0,0 @@
1
- var secretPermissionItem = {
2
- authenticate: {
3
- loginByAccount: {},
4
- loginByAndroidDeviceId: {},
5
- loginByApple: {},
6
- loginByCustomDeviceId: {},
7
- loginByCustomId: {},
8
- loginByFacebook: {},
9
- loginByGenericService: {},
10
- loginByGoogle: {},
11
- loginByiOSDeviceId: {},
12
- loginByWindowsPhoneDeviceId: {},
13
- registerAccount: {},
14
- loginByEditorDeviceId: {},
15
- loginByLinuxDeviceId: {},
16
- loginByMacOSDeviceId: {},
17
- loginByWindowsDeviceId: {},
18
- refreshAuthToken: {},
19
- },
20
- masterPlayer: {
21
- linkAccount: {},
22
- linkAndroidDeviceId: {},
23
- linkApple: {},
24
- linkCustomDeviceId: {},
25
- linkCustomId: {},
26
- linkEditorDeviceId: {},
27
- linkFacebook: {},
28
- linkGenericService: {},
29
- linkGoogle: {},
30
- linkiOSDeviceId: {},
31
- linkLinuxDeviceId: {},
32
- linkMacOSDeviceId: {},
33
- linkWindowsDeviceId: {},
34
- linkWindowsPhoneDeviceId: {},
35
-
36
- unlinkAccount: {},
37
- unlinkAndroidDeviceId: {},
38
- unlinkApple: {},
39
- unlinkCustomDeviceId: {},
40
- unlinkCustomId: {},
41
- unlinkEditorDeviceId: {},
42
- unlinkFacebook: {},
43
- unlinkGenericService: {},
44
- unlinkGoogle: {},
45
- unlinkiOSDeviceId: {},
46
- unlinkLinuxDeviceId: {},
47
- unlinkMacOSDeviceId: {},
48
- unlinkWindowsDeviceId: {},
49
- unlinkWindowsPhoneDeviceId: {},
50
-
51
- addSegment: {},
52
- removeSegment: {},
53
- getSegment: {},
54
-
55
- setTag: {},
56
- removeTag: {},
57
- getTag: {},
58
-
59
- getDisplayName: {},
60
- setDisplayName: {},
61
-
62
- getTsCreate: {},
63
- getIpAddressCreate: {},
64
-
65
- setTsLastLogin: {},
66
- getTsLastLogin: {},
67
-
68
- setPlayerBan: {},
69
- getPlayerBan: {},
70
-
71
- setCountryCode: {},
72
- getCountryCode: {},
73
-
74
- changeAccountPassword: {},
75
- resetAccountPassword: {},
76
-
77
- setAvatar: {},
78
- getAvatar: {},
79
-
80
- setPlayerCurrency: {},
81
- getPlayerCurrency: {},
82
-
83
- setPlayerStatistics: {},
84
- getPlayerStatistics: {},
85
-
86
- getStatisticsLeaderboard: {},
87
- getStatisticsLeaderboardAroundPlayer: {},
88
-
89
- getCustomData: {},
90
- setCustomData: {},
91
-
92
- setPlayerData: {},
93
- getPlayerData: {},
94
-
95
- getPlayerInformation: {},
96
-
97
- getPlayersWithApple: {},
98
- getPlayersWithFacebook: {},
99
- getPlayersWithGoogle: {},
100
- getPlayersWithGenericService: {},
101
- getPlayersWithSegment: {},
102
- getPlayersWithTag: {},
103
- getExternal: {},
104
-
105
- getPlayersWithDisplayName: {},
106
-
107
- setEmail: {},
108
- getEmail: {},
109
- },
110
- gamePlayer: {
111
- addSegment: {},
112
- removeSegment: {},
113
- getSegment: {},
114
-
115
- setTag: {},
116
- removeTag: {},
117
- getTag: {},
118
-
119
- getDisplayName: {},
120
- setDisplayName: {},
121
-
122
- getTsCreate: {},
123
- getIpAddressCreate: {},
124
- getTsLastLogin: {},
125
-
126
- setPlayerBan: {},
127
- getPlayerBan: {},
128
-
129
- setCountryCode: {},
130
- getCountryCode: {},
131
-
132
- setAvatar: {},
133
- getAvatar: {},
134
-
135
- setPlayerCurrency: {},
136
- getPlayerCurrency: {},
137
-
138
- setPlayerStatistics: {},
139
- getPlayerStatistics: {},
140
-
141
- getStatisticsLeaderboard: {},
142
- getStatisticsLeaderboardAroundPlayer: {},
143
-
144
- getCustomData: {},
145
- setCustomData: {},
146
-
147
- setPlayerData: {},
148
- getPlayerData: {},
149
-
150
- getPlayerInformation: {},
151
-
152
- getPlayersWithSegment: {},
153
- getPlayersWithTag: {},
154
-
155
- getPlayerCharacter: {},
156
- getPlayerInventory: {},
157
- getPlayerGroup: {},
158
- getPlayerFriend: {},
159
-
160
- removePlayerItem: {},
161
-
162
- getOnlineStatus: {},
163
- grantGroup: {},
164
- grantPlayerItem: {},
165
- grantPlayerCharacter: {},
166
-
167
- addPlayerFriend: {},
168
- removePlayerFriend: {},
169
-
170
- removePlayerCharacter: {},
171
-
172
- joinGroup: {},
173
- leaveGroup: {},
174
-
175
- getPlayersWithDisplayName: {},
176
-
177
- getFriendStatisticsLeaderboardAroundPlayer: {},
178
- getFriendStatisticsLeaderboard: {},
179
- },
180
- characterPlayer: {
181
- addSegment: {},
182
- removeSegment: {},
183
- getSegment: {},
184
-
185
- setTag: {},
186
- removeTag: {},
187
- getTag: {},
188
-
189
- getDisplayName: {},
190
- setDisplayName: {},
191
-
192
- getTsCreate: {},
193
- getIpAddressCreate: {},
194
- getTsLastLogin: {},
195
-
196
- setPlayerBan: {},
197
- getPlayerBan: {},
198
-
199
- setCountryCode: {},
200
- getCountryCode: {},
201
-
202
- setAvatar: {},
203
- getAvatar: {},
204
-
205
- setPlayerCurrency: {},
206
- getPlayerCurrency: {},
207
-
208
- setPlayerStatistics: {},
209
- getPlayerStatistics: {},
210
-
211
- getStatisticsLeaderboard: {},
212
- getStatisticsLeaderboardAroundPlayer: {},
213
-
214
- getCustomData: {},
215
- setCustomData: {},
216
-
217
- setPlayerData: {},
218
- getPlayerData: {},
219
-
220
- getPlayerInformation: {},
221
-
222
- getPlayersWithSegment: {},
223
- getPlayersWithTag: {},
224
-
225
- getCatalogId: {},
226
- getOwner: {},
227
- getRemoveStatus: {},
228
-
229
- getPlayerFriend: {},
230
- getPlayerGroup: {},
231
- getPlayerInventory: {},
232
- removePlayerItem: {},
233
- grantPlayerItem: {},
234
-
235
- grantGroup: {},
236
- joinGroup: {},
237
- leaveGroup: {},
238
-
239
- setOwner: {},
240
-
241
- addPlayerFriend: {},
242
- removePlayerFriend: {},
243
-
244
- getPlayersWithDisplayName: {},
245
-
246
- setRemoveStatus: {},
247
-
248
- getFriendStatisticsLeaderboardAroundPlayer: {},
249
- getFriendStatisticsLeaderboard: {},
250
- },
251
- content: {
252
- getContentData: {},
253
- setContentData: {},
254
- createNewFileUploadInfo: {},
255
- getFileUploadInfo: {},
256
- requestDownloadFileUploadInfo: {},
257
- removeFileUploadInfo: {},
258
- getFileUploadInfoList: {},
259
- },
260
- group: {
261
- addSegment: {},
262
- removeSegment: {},
263
- getSegment: {},
264
-
265
- setTag: {},
266
- removeTag: {},
267
- getTag: {},
268
-
269
- getDisplayName: {},
270
- setDisplayName: {},
271
-
272
- getTsCreate: {},
273
-
274
- setAvatar: {},
275
- getAvatar: {},
276
-
277
- setGroupCurrency: {},
278
- getGroupCurrency: {},
279
-
280
- setGroupStatistics: {},
281
- getGroupStatistics: {},
282
-
283
- getStatisticsLeaderboard: {},
284
- getStatisticsLeaderboardAroundGroup: {},
285
-
286
- getCustomData: {},
287
- setCustomData: {},
288
-
289
- setGroupData: {},
290
- getGroupData: {},
291
-
292
- getGroupInformation: {},
293
-
294
- getGroupsWithSegment: {},
295
- getGroupsWithTag: {},
296
-
297
- getCatalogId: {},
298
- getRemoveStatus: {},
299
-
300
- getGroupInventory: {},
301
- removeGroupItem: {},
302
- grantGroupItem: {},
303
-
304
- getMembers: {},
305
-
306
- addMember: {},
307
- removeMember: {},
308
- sendGroupMessage: {},
309
- getGroupMessage: {},
310
- setRemoveStatus: {},
311
-
312
- getGroupsWithDisplayName: {},
313
- },
314
- inventory: {
315
- addSegment: {},
316
- removeSegment: {},
317
- getSegment: {},
318
-
319
- setTag: {},
320
- removeTag: {},
321
- getTag: {},
322
-
323
- getDisplayName: {},
324
- setDisplayName: {},
325
-
326
- getTsCreate: {},
327
-
328
- setAvatar: {},
329
- getAvatar: {},
330
-
331
- setItemStatistics: {},
332
- getItemStatistics: {},
333
-
334
- getStatisticsLeaderboard: {},
335
- getStatisticsLeaderboardAroundItem: {},
336
-
337
- getCustomData: {},
338
- setCustomData: {},
339
-
340
- setItemData: {},
341
- getItemData: {},
342
-
343
- getItemInformation: {},
344
-
345
- getItemsWithSegment: {},
346
- getItemsWithTag: {},
347
-
348
- getCatalogId: {},
349
- getClassId: {},
350
- getItemType: {},
351
- getAmount: {},
352
- getOwner: {},
353
- getRemoveStatus: {},
354
-
355
- setAmount: {},
356
- setOwner: {},
357
-
358
- setRemoveStatus: {},
359
-
360
- getItemsWithDisplayName: {},
361
- },
362
- storeInventory: {
363
- buyStoreItem: {},
364
- getStoreItemInformation: {},
365
- getStoreItemsWithTag: {},
366
- grantStoreItem: {},
367
- setRemoveStatus: {},
368
- setStoreItemInformation: {},
369
- validateAppleAppStoreReceipt: {},
370
- validateGooglePlayStoreReceipt: {},
371
- validateFacebookStoreReceipt: {},
372
- },
373
- masterAdmin: {
374
- setMasterGameSettings: {},
375
- grantAdminAccount: {},
376
- removeAdminAccount: {},
377
- setPasswordAdminAccount: {},
378
- setSecretKeyAdminAccount: {},
379
- setGameInformation: {},
380
- grantGame: {},
381
- changePasswordAdminAccount: {},
382
- getAdminAccountList: {},
383
- getGameInformation: {},
384
- getGameList: {},
385
- getMasterGameSettings: {},
386
- getServerLog: {},
387
- getSecretInfoInformation: {},
388
- getSecretInfoList: {},
389
- grantSecretInfo: {},
390
- setSecretInfoInformation: {},
391
- }
392
- }
393
-
394
- const fs = require("fs");
395
-
396
- console.log("syncode running..........");
397
-
398
- //mainCSharp();
399
-
400
- //mainTypescript();
401
-
402
- mainGetSecretInformation();
403
-
404
- function mainGetSecretInformation() {
405
- let mainKeys = Object.keys(secretPermissionItem);
406
-
407
- let str = "\t\tlet gnPermission = new GNHashtable();\n\n";
408
-
409
- mainKeys.forEach(mainKey => {
410
- str += "\t\t{\n";
411
-
412
- let mainKeyName = mainKey[0].toUpperCase() + mainKey.substring(1);
413
-
414
- str += "\t\t\tlet gn" + mainKeyName + " = new GNHashtable();\n"
415
- str += "\t\t\tlet " + mainKey + " = permission." + mainKey + ";\n\n"
416
-
417
- let permissionItem = secretPermissionItem[mainKey];
418
-
419
- let childKeys = Object.keys(permissionItem);
420
-
421
- childKeys.forEach(childKey => {
422
-
423
- str += "\t\t\t{\n";
424
- str += "\t\t\t\tlet permissionRules = " + mainKey + "." + childKey + ";\n";
425
- str += "\t\t\t\tlet gnPermissionRules = new GNHashtable();\n\n";
426
-
427
- str += "\t\t\t\tgnPermissionRules.add(GNParameterCode.SelfEnable, permissionRules.selfEnable);\n";
428
- str += "\t\t\t\tgnPermissionRules.add(GNParameterCode.OtherSelfEnable, permissionRules.otherSelfEnable);\n";
429
- str += "\t\t\t\tgnPermissionRules.add(GNParameterCode.ServerSelfEnable, permissionRules.serverSelfEnable);\n";
430
- str += "\t\t\t\tgnPermissionRules.add(GNParameterCode.AdminSelfEnable, permissionRules.adminSelfEnable);\n\n";
431
-
432
- let childKeyName = childKey[0].toUpperCase() + childKey.substring(1);
433
-
434
- str += "\t\t\t\tgn" + mainKeyName + ".add(GNParameterCode." + childKeyName + ", permissionRules);\n"
435
-
436
- str += "\t\t\t}\n\n";
437
- });
438
-
439
- str += "\t\t}\n\n";
440
- });
441
-
442
- fs.writeFileSync("C:/GNServerFile/GetSecretInformation.ts", str);
443
- }
444
-
445
- function mainCSharp() {
446
- syncCodeCSharp("authenticate", ["LoginBaseRequestHandler.ts"], "Authenticate");
447
- syncCodeCSharp("characterPlayer", ["CharacterPlayerBaseRequestHandler.ts"], "CharacterPlayer");
448
- syncCodeCSharp("content", [], "Content");
449
- syncCodeCSharp("dashboard", [], "MasterAdmin");
450
- syncCodeCSharp("gamePlayer", ["GamePlayerBaseRequestHandler.ts"], "GamePlayer");
451
- syncCodeCSharp("group", ["GroupBaseRequestHandler.ts"], "Group");
452
- syncCodeCSharp("inventory", ["ItemBaseRequestHandler.ts"], "Inventory");
453
- syncCodeCSharp("masterPlayer", ["MasterPlayerBaseRequestHandler.ts"], "MasterPlayer");
454
- syncCodeCSharp("storeInventory", ["StoreItemBaseRequestHandler.ts"], "StoreInventory");
455
-
456
- syncModelCodeCSharp("authenticate", "Authenticate");
457
- syncModelCodeCSharp("characterPlayer", "CharacterPlayer");
458
- syncModelCodeCSharp("content", "Content");
459
- syncModelCodeCSharp("dashboard", "MasterAdmin");
460
- syncModelCodeCSharp("gamePlayer", "GamePlayer");
461
- syncModelCodeCSharp("group", "Group");
462
- syncModelCodeCSharp("inventory", "Inventory");
463
- syncModelCodeCSharp("masterPlayer", "MasterPlayer");
464
- syncModelCodeCSharp("storeInventory", "StoreInventory");
465
- }
466
-
467
- function syncCodeCSharp(dirName, ignoreFileLst, modelName) {
468
- let fileDir = __dirname + "/./src/GN-app-api/handler/controller/handler/" + dirName;
469
- let allFilePaths = fs.readdirSync(fileDir);
470
-
471
- let clientApiStr = "";
472
- clientApiStr += "public class " + modelName + "Api\n";
473
- clientApiStr += "{\n";
474
- clientApiStr += "\tpublic ServerApi server { get; } = new ServerApi();\n\n";
475
- clientApiStr += "\tpublic AdminApi admin { get; } = new AdminApi();\n\n";
476
-
477
- let serverApiStr = "";
478
- serverApiStr += "\tpublic class ServerApi\n";
479
- serverApiStr += "\t{\n";
480
-
481
- let adminApiStr = "";
482
- adminApiStr += "\tpublic class AdminApi\n";
483
- adminApiStr += "\t{\n";
484
-
485
- let clientModelFileStr = "";
486
- clientModelFileStr += "public partial class " + modelName + "Models\n";
487
- clientModelFileStr += "{\n";
488
-
489
- let clientRequestModelFileStr = "";
490
- clientRequestModelFileStr += "public class " + modelName + "RequestModels\n";
491
- clientRequestModelFileStr += "{\n";
492
-
493
- let clientResponseModelFileStr = "";
494
- clientResponseModelFileStr += "public class " + modelName + "ResponseModels\n";
495
- clientResponseModelFileStr += "{\n";
496
-
497
- for (let i = 0; i < allFilePaths.length; i++) {
498
- let filePath = allFilePaths[i];
499
-
500
- if (!filePath.includes(".ts"))
501
- continue;
502
-
503
- if (ignoreFileLst.indexOf(filePath) != -1)
504
- continue;
505
-
506
-
507
- let allLines = fs.readFileSync(fileDir + "/" + filePath).toString().split("\n");
508
-
509
- let name = filePath.replace(".ts", "").replace("RequestHandler", "");
510
-
511
- clientResponseModelFileStr += "\tpublic class " + name + "OperationResponse : CustomOperationResponse<" + modelName + "Models.ResponseData>\n";
512
- clientResponseModelFileStr += "\t{\n\n";
513
- clientResponseModelFileStr += "\t}\n\n";
514
-
515
- let hasServer = false;
516
- let hasAdmin = false;
517
-
518
- for (let j = 0; j < allLines.length; j++) {
519
- let lineJ = allLines[j].trim();
520
-
521
- if (lineJ.startsWith("class ")) {
522
- if (lineJ.includes("RequestHandler")) { // requestModelFileStr += "\tpublic class " + name + "OperationRequest : CustomOperationRequest<AuthenticateModels.LoginByAccountRequestData>"
523
- } else {
524
- let requestDataName = name + "RequestData";
525
- let newRequestDataName = requestDataName;
526
-
527
- let lineSpls = lineJ.split(" ");
528
-
529
- if (lineSpls[1].startsWith("Admin")) {
530
- newRequestDataName = "Admin" + requestDataName;
531
- hasAdmin = true;
532
- } else if (lineSpls[1].startsWith("Server")) {
533
- newRequestDataName = "Server" + requestDataName;
534
- hasServer = true;
535
- }
536
-
537
- if (lineSpls[3] == "OperationRequest") {
538
- clientModelFileStr += "\tpublic class " + requestDataName + "\n";
539
- } else {
540
- clientModelFileStr += "\tpublic class " + newRequestDataName + " : " + requestDataName + "\n";
541
- } clientModelFileStr += "\t{\n";
542
-
543
- for (let k = j + 1; k < allLines.length; k++) {
544
- let lineK = allLines[k];
545
-
546
- if (lineK.startsWith("class ") || lineK.startsWith("export class ")) {
547
- clientModelFileStr += "\t}\n\n";
548
-
549
- break;
550
- }
551
-
552
- if (lineK.includes("@")) {
553
- let lineKSpls = lineK.split("@"); // [ StringDataMember({ code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true }) ]
554
- let lineK2Spls = lineKSpls[1].split("("); // [ StringDataMember, { code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true }) ]
555
- let dataMemberName = lineK2Spls[0]; // StringDataMember
556
- let lineK3Spls = lineK2Spls[1].split("{")[1].split("}")[0].split(","); // [ code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true ]
557
-
558
- let hasMustInt = false;
559
- let isOptional = false;
560
-
561
- clientModelFileStr += "\t\t[" + dataMemberName + "(";
562
-
563
- for (let l = 0; l < lineK3Spls.length; l++) {
564
- let lineK4Spls = lineK3Spls[l].split(":");
565
-
566
- if (lineK4Spls.length <= 1) continue;
567
-
568
- let key = lineK4Spls[0].trim();
569
- let value = lineK4Spls[1].trim();
570
-
571
- if (key == "elementCls") {
572
- if (value == "String") value = "string";
573
- clientModelFileStr += key + " = typeof(" + value + ")";
574
- }
575
- else
576
- clientModelFileStr += key + " = " + value;
577
-
578
- if (l < lineK3Spls.length - 1)
579
- clientModelFileStr += ", ";
580
-
581
- if (key == "mustInt" && value == "true")
582
- hasMustInt = true;
583
- else if (key == "isOptional" && value == "true")
584
- isOptional = true;
585
- }
586
-
587
- clientModelFileStr += ")]\n";
588
-
589
- k += 1;
590
- let lineKNext = allLines[k];
591
-
592
- let lineKNextUse = lineKNext.trim().split(";")[0];
593
- let lineKNextUseSpls = lineKNextUse.split(":");
594
-
595
- let type = lineKNextUseSpls[1].trim();
596
-
597
- if (type == "boolean")
598
- type = "bool";
599
- else if (type == "number") {
600
- if (hasMustInt)
601
- type = "long";
602
- else
603
- type = "double";
604
-
605
- } else if (type.startsWith("Array"))
606
- type = type.replace("Array", "List");
607
- else if (type == "any") type = "object";
608
- //createPlayerIfNotExists?
609
- if (isOptional) {
610
- if (lineSpls[1].startsWith("Admin") || lineSpls[1].startsWith("Server"))
611
- clientModelFileStr += "\t\tpublic new " + type + "? " + lineKNextUseSpls[0].trim().split("?")[0] + ";\n\n";
612
- else
613
- clientModelFileStr += "\t\tpublic " + type + "? " + lineKNextUseSpls[0].trim().split("?")[0] + ";\n\n";
614
- }
615
- else {
616
- if (lineSpls[1].startsWith("Admin") || lineSpls[1].startsWith("Server"))
617
- clientModelFileStr += "\t\tpublic new " + type + " " + lineKNextUseSpls[0].trim().split("?")[0] + ";\n\n";
618
- else
619
- clientModelFileStr += "\t\tpublic " + type + " " + lineKNextUseSpls[0].trim().split("?")[0] + ";\n\n";
620
- }
621
-
622
- j = k;
623
- }
624
- }
625
- }
626
- }
627
- }
628
-
629
- let name2 = name[0].toLowerCase() + name.substring(1);
630
-
631
- clientApiStr += "\tpublic void " + name2 + "(" + modelName + "Models." + name + "RequestData requestData, Action<" + modelName + "ResponseModels." + name + "OperationResponse> response = null, string overrideAuthToken = null, string overrideSecretKey = null, GNHashtable customTags = null, int timeout = OperationRequest.defaultTimeOut)\n";
632
- clientApiStr += "\t{\n";
633
- clientApiStr += "\t\tGNNetwork.sendViaHttp(new " + modelName + "RequestModels." + name + "OperationRequest(requestData, timeout), response, overrideAuthToken, overrideSecretKey, customTags);\n";
634
- clientApiStr += "\t}\n\n";
635
-
636
- clientRequestModelFileStr += "\tpublic class " + name + "OperationRequest : CustomOperationRequest<" + modelName + "Models." + name + "RequestData>\n";
637
- clientRequestModelFileStr += "\t{\n";
638
- clientRequestModelFileStr += "\t\tprotected override int operationCode => OperationCode." + name + ";\n";
639
- clientRequestModelFileStr += "\t\tprotected override bool operationEncrypted => true;\n";
640
- clientRequestModelFileStr += "\t\tprotected override RequestType requestType => RequestType." + modelName + ";\n";
641
- clientRequestModelFileStr += "\t\tprotected override RequestRole requestRole => RequestRole.Client;\n\n";
642
-
643
- clientRequestModelFileStr += "\t\tpublic " + name + "OperationRequest(" + modelName + "Models." + name + "RequestData requestData, int timeout = OperationRequest.defaultTimeOut) : base(requestData, timeout) { }\n";
644
- clientRequestModelFileStr += "\t}\n\n";
645
-
646
- if (hasServer) {
647
- serverApiStr += "\t\tpublic void " + name2 + "(" + modelName + "Models.Server" + name + "RequestData requestData, Action<" + modelName + "ResponseModels." + name + "OperationResponse> response = null, string overrideAuthToken = null, string overrideSecretKey = null, GNHashtable customTags = null, int timeout = OperationRequest.defaultTimeOut)\n";
648
- serverApiStr += "\t\t{\n";
649
- serverApiStr += "\t\t\tGNNetwork.sendViaHttp(new " + modelName + "RequestModels.Server" + name + "OperationRequest(requestData, timeout), response, overrideAuthToken, overrideSecretKey, customTags);\n";
650
- serverApiStr += "\t\t}\n\n";
651
-
652
- clientRequestModelFileStr += "\tpublic class Server" + name + "OperationRequest : " + name + "OperationRequest\n";
653
- clientRequestModelFileStr += "\t{\n";
654
- clientRequestModelFileStr += "\t\tprotected override RequestRole requestRole => RequestRole.Server;\n\n";
655
-
656
- clientRequestModelFileStr += "\t\tpublic Server" + name + "OperationRequest(" + modelName + "Models.Server" + name + "RequestData requestData, int timeout = OperationRequest.defaultTimeOut) : base(requestData, timeout) { }\n";
657
- clientRequestModelFileStr += "\t}\n\n";
658
- }
659
-
660
- if (hasAdmin) {
661
- adminApiStr += "\t\tpublic void " + name2 + "(" + modelName + "Models.Admin" + name + "RequestData requestData, Action<" + modelName + "ResponseModels." + name + "OperationResponse> response = null, string overrideAuthToken = null, string overrideSecretKey = null, GNHashtable customTags = null, int timeout = OperationRequest.defaultTimeOut)\n";
662
- adminApiStr += "\t\t{\n";
663
- adminApiStr += "\t\t\tGNNetwork.sendViaHttp(new " + modelName + "RequestModels.Admin" + name + "OperationRequest(requestData, timeout), response, overrideAuthToken, overrideSecretKey, customTags);\n";
664
- adminApiStr += "\t\t}\n\n";
665
-
666
- clientRequestModelFileStr += "\tpublic class Admin" + name + "OperationRequest : " + name + "OperationRequest\n";
667
- clientRequestModelFileStr += "\t{\n";
668
- clientRequestModelFileStr += "\t\tprotected override RequestRole requestRole => RequestRole.Admin;\n\n";
669
-
670
- clientRequestModelFileStr += "\t\tpublic Admin" + name + "OperationRequest(" + modelName + "Models.Admin" + name + "RequestData requestData, int timeout = OperationRequest.defaultTimeOut) : base(requestData, timeout) { }\n";
671
- clientRequestModelFileStr += "\t}\n\n";
672
- }
673
-
674
- clientRequestModelFileStr += "\n";
675
- }
676
-
677
- serverApiStr += "\t}\n";
678
- adminApiStr += "\t}\n";
679
-
680
- clientApiStr += "\n";
681
- clientApiStr += serverApiStr;
682
- clientApiStr += "\n";
683
- clientApiStr += adminApiStr;
684
- clientApiStr += "\n";
685
-
686
- clientApiStr += "}\n";
687
- clientModelFileStr += "}\n";
688
- clientRequestModelFileStr += "}\n";
689
- clientResponseModelFileStr += "}\n";
690
-
691
- fs.writeFileSync("C:/GNServerFile/" + modelName + "Api.cs", clientApiStr);
692
- fs.writeFileSync("C:/GNServerFile/" + modelName + "Models.cs", clientModelFileStr);
693
- fs.writeFileSync("C:/GNServerFile/" + modelName + "RequestModels.cs", clientRequestModelFileStr);
694
- fs.writeFileSync("C:/GNServerFile/" + modelName + "ResponseModels.cs", clientResponseModelFileStr);
695
-
696
- // console.log(clientApiStr);
697
- // console.log(clientModelFileStr);
698
- // console.log(clientRequestModelFileStr);
699
- // console.log(clientResponseModelFileStr);
700
-
701
- // fs.readFileSync();
702
-
703
- }
704
-
705
- function syncModelCodeCSharp(dirName, modelName) {
706
- let fileDir = __dirname + "/./src/GN-app-api/handler/controller/handler/" + dirName;
707
- let allFilePaths = fs.readdirSync(fileDir);
708
-
709
- let clientModelFileStr = "";
710
- clientModelFileStr += "public partial class " + modelName + "Models\n";
711
- clientModelFileStr += "{\n";
712
-
713
- for (let i = 0; i < allFilePaths.length; i++) {
714
- let filePath0 = allFilePaths[i];
715
-
716
- if (filePath0.includes(".ts"))
717
- continue;
718
-
719
-
720
- let allFilePaths2 = fs.readdirSync(fileDir + "/" + filePath0);
721
-
722
- for (let m = 0; m < allFilePaths2.length; m++) {
723
- let filePath = allFilePaths2[m];
724
-
725
- let allLines = fs.readFileSync(fileDir + "/" + filePath0 + "/" + filePath).toString().split("\n");
726
-
727
- let name = filePath.replace(".ts", "").replace("RequestHandler", "");
728
-
729
- for (let j = 0; j < allLines.length; j++) {
730
- let lineJ = allLines[j].trim();
731
-
732
- if (lineJ.startsWith("export class ")) {
733
- let requestDataName = name;
734
-
735
- clientModelFileStr += "\tpublic class " + requestDataName + "\n";
736
-
737
- clientModelFileStr += "\t{\n";
738
-
739
- for (let k = j + 1; k < allLines.length; k++) {
740
- let lineK = allLines[k];
741
-
742
- if (lineK.startsWith("class ") || lineK.startsWith("export class ")) {
743
- clientModelFileStr += "\t}\n\n";
744
-
745
- break;
746
- }
747
-
748
- if (lineK.includes("@")) {
749
- let lineKSpls = lineK.split("@"); // [ StringDataMember({ code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true }) ]
750
- let lineK2Spls = lineKSpls[1].split("("); // [ StringDataMember, { code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true }) ]
751
- let dataMemberName = lineK2Spls[0]; // StringDataMember
752
- let lineK3Spls = lineK2Spls[1].split("{")[1].split("}")[0].split(","); // [ code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true ]
753
-
754
- let hasMustInt = false;
755
- let isOptional = false;
756
-
757
- clientModelFileStr += "\t\t[" + dataMemberName + "(";
758
-
759
- for (let l = 0; l < lineK3Spls.length; l++) {
760
- let lineK4Spls = lineK3Spls[l].split(":");
761
-
762
- if (lineK4Spls.length <= 1) continue;
763
-
764
- let key = lineK4Spls[0].trim();
765
- let value = lineK4Spls[1].trim();
766
-
767
- if (key == "elementCls") {
768
- if (value == "String") value = "string";
769
- clientModelFileStr += key + " = typeof(" + value + ")";
770
- }
771
- else
772
- clientModelFileStr += key + " = " + value;
773
-
774
-
775
- if (l < lineK3Spls.length - 1)
776
- clientModelFileStr += ", ";
777
-
778
- if (key == "mustInt" && value == "true")
779
- hasMustInt = true;
780
- else if (key == "isOptional" && value == "true")
781
- isOptional = true;
782
-
783
- }
784
-
785
- clientModelFileStr += ")]\n";
786
-
787
- k += 1;
788
- let lineKNext = allLines[k];
789
-
790
- let lineKNextUse = lineKNext.trim().split(";")[0];
791
- let lineKNextUseSpls = lineKNextUse.split(":");
792
-
793
- let type = lineKNextUseSpls[1].trim();
794
-
795
- if (type == "boolean")
796
- type = "bool";
797
- else if (type == "number") {
798
- if (hasMustInt)
799
- type = "long";
800
- else
801
- type = "double";
802
-
803
- } else if (type.startsWith("Array"))
804
- type = type.replace("Array", "List");
805
- else if (type == "any") type = "object";
806
-
807
- if (isOptional) {
808
- clientModelFileStr += "\t\tpublic " + type + "? " + lineKNextUseSpls[0].trim().split("?")[0] + ";\n\n";
809
- }
810
- else {
811
- clientModelFileStr += "\t\tpublic " + type + " " + lineKNextUseSpls[0].trim().split("?")[0] + ";\n\n";
812
- }
813
-
814
- j = k;
815
- }
816
- }
817
-
818
- clientModelFileStr += "\t}\n\n";
819
- }
820
- }
821
- }
822
- }
823
-
824
- clientModelFileStr += "}\n";
825
-
826
- fs.writeFileSync("C:/GNServerFile/" + modelName + "Models.Partial.cs", clientModelFileStr);
827
-
828
- // console.log(clientApiStr);
829
- // console.log(clientModelFileStr);
830
- // console.log(clientRequestModelFileStr);
831
- // console.log(clientResponseModelFileStr);
832
-
833
- // fs.readFileSync();
834
-
835
- }
836
-
837
-
838
- function mainTypescript() {
839
- fixCodeTypescript("authenticate", ["LoginBaseRequestHandler.ts"], "Authenticate");
840
- fixCodeTypescript("characterPlayer", ["CharacterPlayerBaseRequestHandler.ts"], "CharacterPlayer");
841
- fixCodeTypescript("content", [], "Content");
842
- fixCodeTypescript("dashboard", [], "MasterAdmin");
843
- fixCodeTypescript("gamePlayer", ["GamePlayerBaseRequestHandler.ts"], "GamePlayer");
844
- fixCodeTypescript("group", ["GroupBaseRequestHandler.ts"], "Group");
845
- fixCodeTypescript("inventory", ["ItemBaseRequestHandler.ts"], "Inventory");
846
- fixCodeTypescript("masterPlayer", ["MasterPlayerBaseRequestHandler.ts"], "MasterPlayer");
847
- fixCodeTypescript("storeInventory", ["StoreItemBaseRequestHandler.ts"], "StoreInventory");
848
-
849
- syncModelCodeTypescript("authenticate", "Authenticate");
850
- syncModelCodeTypescript("characterPlayer", "CharacterPlayer");
851
- syncModelCodeTypescript("content", "Content");
852
- syncModelCodeTypescript("dashboard", "MasterAdmin");
853
- syncModelCodeTypescript("gamePlayer", "GamePlayer");
854
- syncModelCodeTypescript("group", "Group");
855
- syncModelCodeTypescript("inventory", "Inventory");
856
- syncModelCodeTypescript("masterPlayer", "MasterPlayer");
857
- syncModelCodeTypescript("storeInventory", "StoreInventory");
858
- }
859
-
860
- function fixCodeTypescript(dirName, ignoreFileLst, modelName) {
861
- let fileDir = __dirname + "/./src/GN-app-api/handler/controller/handler/" + dirName;
862
- let allFilePaths = fs.readdirSync(fileDir);
863
-
864
- for (let i = 0; i < allFilePaths.length; i++) {
865
- let filePath = allFilePaths[i];
866
-
867
- if (!filePath.includes(".ts"))
868
- continue;
869
-
870
- if (ignoreFileLst.indexOf(filePath) != -1)
871
- continue;
872
-
873
- let allLines = fs.readFileSync(fileDir + "/" + filePath).toString().split("\n");
874
-
875
- for (let j = 0; j < allLines.length - 1; j++) {
876
- let lineJ = allLines[j];
877
-
878
- if (lineJ.includes("@GNHashtable")
879
- || lineJ.includes("@String")
880
- || lineJ.includes("@Number")
881
- || lineJ.includes("@GNArray")
882
- || lineJ.includes("@Boolean")
883
- || lineJ.includes("@DataMember")) {
884
- let isOptional = false;
885
-
886
- let lineK = lineJ;
887
-
888
- let lineKSpls = lineK.split("@"); // [ StringDataMember({ code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true }) ]
889
- let lineK2Spls = lineKSpls[1].split("("); // [ StringDataMember, { code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true }) ]
890
- let lineK3Spls = lineK2Spls[1].split("{")[1].split("}")[0].split(","); // [ code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true ]
891
-
892
- for (let l = 0; l < lineK3Spls.length; l++) {
893
- let lineK4Spls = lineK3Spls[l].split(":");
894
-
895
- if (lineK4Spls.length <= 1) continue;
896
-
897
- let key = lineK4Spls[0].trim();
898
- let value = lineK4Spls[1].trim();
899
-
900
- if (key == "mustInt" && value == "true")
901
- hasMustInt = true;
902
- else if (key == "isOptional" && value == "true")
903
- isOptional = true;
904
- }
905
-
906
- j += 1;
907
-
908
- if (isOptional) {
909
- let lineKNext = allLines[j];
910
-
911
- let lineKNextUse = lineKNext.split(";")[0];
912
- let lineKNextUseSpls = lineKNextUse.split(":");
913
-
914
- let type = lineKNextUseSpls[1];
915
- let fieldName = lineKNextUseSpls[0].split("?")[0];
916
-
917
- allLines[j] = fieldName + "?:" + type + ";";
918
- }
919
- }
920
- }
921
-
922
- let str = "";
923
- for (let j = 0; j < allLines.length; j++) {
924
- str += allLines[j];
925
-
926
- if (j < allLines.length - 1) str += "\n";
927
- }
928
-
929
- fs.writeFileSync(fileDir + "/" + filePath, str);
930
- }
931
- }
932
-
933
- function syncModelCodeTypescript(dirName, modelName) {
934
- let fileDir = __dirname + "/./src/GN-app-api/handler/controller/handler/" + dirName;
935
- let allFilePaths = fs.readdirSync(fileDir);
936
-
937
- for (let i = 0; i < allFilePaths.length; i++) {
938
- let filePath0 = allFilePaths[i];
939
-
940
- if (filePath0.includes(".ts"))
941
- continue;
942
-
943
- let allFilePaths2 = fs.readdirSync(fileDir + "/" + filePath0);
944
-
945
- for (let m = 0; m < allFilePaths2.length; m++) {
946
- let filePath = allFilePaths2[m];
947
-
948
- let allLines = fs.readFileSync(fileDir + "/" + filePath0 + "/" + filePath).toString().split("\n");
949
-
950
- for (let j = 0; j < allLines.length - 1; j++) {
951
- let lineJ = allLines[j];
952
-
953
- if (lineJ.includes("@GNHashtable")
954
- || lineJ.includes("@String")
955
- || lineJ.includes("@Number")
956
- || lineJ.includes("@GNArray")
957
- || lineJ.includes("@Boolean")
958
- || lineJ.includes("@DataMember")) {
959
- let isOptional = false;
960
-
961
- let lineK = lineJ;
962
-
963
- let lineKSpls = lineK.split("@"); // [ StringDataMember({ code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true }) ]
964
- let lineK2Spls = lineKSpls[1].split("("); // [ StringDataMember, { code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true }) ]
965
- let lineK3Spls = lineK2Spls[1].split("{")[1].split("}")[0].split(","); // [ code: GNParameterCode.Username, minLength: 6, maxLength: 32, mustNonNull: true ]
966
-
967
- for (let l = 0; l < lineK3Spls.length; l++) {
968
- let lineK4Spls = lineK3Spls[l].split(":");
969
-
970
- if (lineK4Spls.length <= 1) continue;
971
-
972
- let key = lineK4Spls[0].trim();
973
- let value = lineK4Spls[1].trim();
974
-
975
- if (key == "mustInt" && value == "true")
976
- hasMustInt = true;
977
- else if (key == "isOptional" && value == "true")
978
- isOptional = true;
979
- }
980
-
981
- j += 1;
982
-
983
- if (isOptional) {
984
- let lineKNext = allLines[j];
985
-
986
- let lineKNextUse = lineKNext.split(";")[0];
987
- let lineKNextUseSpls = lineKNextUse.split(":");
988
-
989
- let type = lineKNextUseSpls[1];
990
- let fieldName = lineKNextUseSpls[0].split("?")[0];
991
-
992
- allLines[j] = fieldName + "?:" + type + ";";
993
- }
994
- }
995
- }
996
-
997
- let str = "";
998
- for (let j = 0; j < allLines.length; j++) {
999
- str += allLines[j];
1000
-
1001
- if (j < allLines.length - 1) str += "\n";
1002
- }
1003
-
1004
- fs.writeFileSync(fileDir + "/" + filePath0 + "/" + filePath, str);
1005
- }
1006
- }
1007
-
1008
- // console.log(clientApiStr);
1009
- // console.log(clientModelFileStr);
1010
- // console.log(clientRequestModelFileStr);
1011
- // console.log(clientResponseModelFileStr);
1012
-
1013
- // fs.readFileSync();
1014
-
1015
- }
1016
-