@vertikalx/vtx-backend-client 1.0.0-dev.5 → 1.0.0-dev.50

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.
@@ -4,11 +4,17 @@ exports.VTXBaseAPI = void 0;
4
4
  const package_json_1 = require("../../package.json");
5
5
  const client_1 = require("../client");
6
6
  const api_call_headers_1 = require("./api-call-headers");
7
+ const response_builder_1 = require("./response-builder");
8
+ const domains_1 = require("./domains");
9
+ const vtx_core_common_1 = require("@vertikalx/vtx-core-common");
7
10
  class VTXBaseAPI {
8
11
  constructor(headers, backendUrl) {
9
12
  this.headers = headers ?? api_call_headers_1.DEFAULT_HEADERS;
10
13
  this.backendUrl = backendUrl ?? VTXBaseAPI.getDefaultBackendUrl();
11
14
  }
15
+ setHeader(key, value) {
16
+ this.headers[key] = value;
17
+ }
12
18
  static getDefaultBackendUrl() {
13
19
  let retValue = api_call_headers_1.DEFAULT_PROD_URL;
14
20
  switch (process.env?.NODE_ENV) {
@@ -46,7 +52,7 @@ class VTXBaseAPI {
46
52
  }
47
53
  return false;
48
54
  }
49
- async findNonTenantedUserByEmail(email, system) {
55
+ async findUserByEmail(email) {
50
56
  const client = (0, client_1.createClient)({
51
57
  url: this.backendUrl + '/graphql',
52
58
  headers: this.headers,
@@ -55,60 +61,3032 @@ class VTXBaseAPI {
55
61
  let retValue = {};
56
62
  try {
57
63
  const response = await client.query({
58
- nontenantedUserByEmail: {
64
+ findUserByEmail: {
59
65
  __args: {
60
66
  email: curatedEmail,
61
67
  },
62
68
  _id: true,
63
69
  loginEmail: true,
64
70
  suspended: true,
71
+ domains: {
72
+ _id: true,
73
+ name: true,
74
+ description: true
75
+ }
76
+ },
77
+ });
78
+ VTXBaseAPI.Logger.debug('findUserByEmail Response:');
79
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
80
+ retValue = (0, response_builder_1.buildResponse)(response, 'findUserByEmail', (r) => {
81
+ const isResponseOk = true && response?.findUserByEmail?._id;
82
+ return isResponseOk;
83
+ });
84
+ }
85
+ catch (err1) {
86
+ VTXBaseAPI.Logger.error('findUserByEmail err1:');
87
+ VTXBaseAPI.Logger.error(err1);
88
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
89
+ }
90
+ return retValue;
91
+ }
92
+ async loginUserFromEmail(loginEmail, loginMethod = "") {
93
+ const client = (0, client_1.createClient)({
94
+ url: this.backendUrl + '/graphql',
95
+ headers: this.headers,
96
+ });
97
+ const curatedEmail = loginEmail.trim().toLocaleLowerCase();
98
+ let retValue = {};
99
+ try {
100
+ const response = await client.mutation({
101
+ loginUserFromEmail: {
102
+ __args: {
103
+ email: curatedEmail,
104
+ loginMethod: loginMethod
105
+ },
106
+ actualToken: true,
107
+ refreshToken: true,
65
108
  },
66
109
  });
67
- console.log(JSON.stringify(response, null, 2));
68
- if (response?.nontenantedUserByEmail?._id) {
69
- try {
70
- retValue.data = response.nontenantedUserByEmail;
110
+ VTXBaseAPI.Logger.debug('loginUserFromEmail Response:');
111
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
112
+ retValue = (0, response_builder_1.buildResponse)(response, 'loginUserFromEmail', (r) => {
113
+ const isResponseOk = true && response?.loginUserFromEmail?.actualToken;
114
+ return isResponseOk;
115
+ });
116
+ }
117
+ catch (err1) {
118
+ VTXBaseAPI.Logger.error('loginUserFromEmail err1:');
119
+ VTXBaseAPI.Logger.error(err1);
120
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
121
+ }
122
+ return retValue;
123
+ }
124
+ async createUserAndLogin(loginEmail) {
125
+ const client = (0, client_1.createClient)({
126
+ url: this.backendUrl + "/graphql",
127
+ headers: this.headers,
128
+ });
129
+ const curatedEmail = loginEmail.trim().toLowerCase();
130
+ const payload = {
131
+ loginEmail: curatedEmail
132
+ };
133
+ let retValue = {};
134
+ try {
135
+ const response = await client.mutation({
136
+ createUserAndLogin: {
137
+ __args: {
138
+ user: payload
139
+ },
140
+ _id: true,
141
+ loginEmail: true,
142
+ suspended: true,
143
+ token: {
144
+ actualToken: true,
145
+ refreshToken: true
146
+ }
71
147
  }
72
- catch (casterr) {
73
- console.log('Error trying to cast to User');
74
- retValue.errors = ['Error: Obtained incorrect data from Backend'];
148
+ });
149
+ VTXBaseAPI.Logger.debug('createUserAndLogin Response:');
150
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
151
+ retValue = (0, response_builder_1.buildResponse)(response, 'createUserAndLogin', (r) => {
152
+ const isResponseOk = true && response?.createUserAndLogin?._id;
153
+ return isResponseOk;
154
+ });
155
+ }
156
+ catch (err1) {
157
+ VTXBaseAPI.Logger.error('createUserAndLogin err1:');
158
+ VTXBaseAPI.Logger.error(err1);
159
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
160
+ }
161
+ return retValue;
162
+ }
163
+ async registerAthlete(payload) {
164
+ const client = (0, client_1.createClient)({
165
+ url: this.backendUrl + "/graphql",
166
+ headers: this.headers,
167
+ });
168
+ let retValue = {};
169
+ const fields = {
170
+ _id: true,
171
+ firstName: true,
172
+ lastName: true,
173
+ screenName: true,
174
+ dob: true,
175
+ lgbt: true,
176
+ competitionGender: true,
177
+ country: {
178
+ _id: true,
179
+ name: true
180
+ },
181
+ location: {
182
+ userProvidedLatitude: true,
183
+ userProvidedLongitude: true,
184
+ cityNameGeocode: true,
185
+ stateNameGeocode: true,
186
+ countryIso2CodeGeocode: true,
187
+ timeZoneGeocode: true,
188
+ latitudeGeocode: true,
189
+ longitudeGeocode: true,
190
+ city: {
191
+ _id: true,
192
+ name: true,
193
+ localizedName: true,
194
+ state: {
195
+ _id: true,
196
+ name: true,
197
+ country: {
198
+ _id: true,
199
+ name: true
200
+ }
201
+ },
202
+ latitude: true,
203
+ longitude: true,
204
+ timezone: true,
75
205
  }
76
- }
77
- else if (response?.errors) {
78
- if (Array.isArray(response.errors)) {
79
- retValue.errors = response.errors;
206
+ },
207
+ trainer: true,
208
+ trainerUrl: true,
209
+ followStats: {
210
+ followers: true,
211
+ followed: true,
212
+ raves: true,
213
+ favorites: true
214
+ },
215
+ mainSport: {
216
+ _id: true,
217
+ name: true
218
+ },
219
+ mainSportLevel: {
220
+ _id: true,
221
+ label: true,
222
+ index: true
223
+ },
224
+ scores: {
225
+ vtxScore: true,
226
+ socialScore: true,
227
+ trainingScore: true,
228
+ competitionScore: true
229
+ },
230
+ rankings: {
231
+ worldRanking: {
232
+ scope: true,
233
+ scopeId: true,
234
+ scopeName: true,
235
+ position: true,
236
+ total: true
237
+ },
238
+ countryRanking: {
239
+ scope: true,
240
+ scopeId: true,
241
+ scopeName: true,
242
+ position: true,
243
+ total: true
244
+ },
245
+ stateRanking: {
246
+ scope: true,
247
+ scopeId: true,
248
+ scopeName: true,
249
+ position: true,
250
+ total: true
251
+ },
252
+ cityRanking: {
253
+ scope: true,
254
+ scopeId: true,
255
+ scopeName: true,
256
+ position: true,
257
+ total: true
258
+ },
259
+ },
260
+ allSports: {
261
+ _id: true,
262
+ name: true
263
+ },
264
+ teams: {
265
+ _id: true,
266
+ name: true,
267
+ description: true,
268
+ approved: true,
269
+ logo: {
270
+ _id: true,
271
+ name: true,
272
+ contentType: true,
273
+ size: true,
274
+ useType: true,
275
+ url: true,
276
+ key: true
277
+ },
278
+ banner: {
279
+ _id: true,
280
+ name: true,
281
+ contentType: true,
282
+ size: true,
283
+ useType: true,
284
+ url: true,
285
+ key: true
80
286
  }
81
- else {
82
- retValue.errors = [response.errors];
287
+ },
288
+ sponsorBrands: {
289
+ _id: true,
290
+ name: true,
291
+ slogan: true,
292
+ website: true,
293
+ description: true,
294
+ approved: true,
295
+ published: true,
296
+ logo: {
297
+ _id: true,
298
+ name: true,
299
+ contentType: true,
300
+ size: true,
301
+ useType: true,
302
+ url: true,
303
+ key: true
304
+ },
305
+ stats: {
306
+ campaigns: true,
307
+ sponsorships: true,
308
+ sports: true,
309
+ athletes: true
310
+ },
311
+ operatorIds: true,
312
+ },
313
+ competitions: {
314
+ _id: true,
315
+ event: {
316
+ _id: true,
317
+ name: true,
318
+ eventWebSite: true,
319
+ startDate: true,
320
+ endDate: true,
321
+ verified: true,
322
+ banner: {
323
+ _id: true,
324
+ name: true,
325
+ contentType: true,
326
+ size: true,
327
+ useType: true,
328
+ url: true,
329
+ key: true
330
+ }
331
+ },
332
+ eventName: true,
333
+ date: true,
334
+ result: {
335
+ _id: true,
336
+ type: true,
337
+ position: true,
338
+ score: true,
339
+ timems: true,
340
+ resultWebLink: true
83
341
  }
342
+ },
343
+ totalUpcomingCompetitions: true,
344
+ totalPastCompetitions: true,
345
+ profilePicture: {
346
+ _id: true,
347
+ name: true,
348
+ contentType: true,
349
+ size: true,
350
+ useType: true,
351
+ url: true,
352
+ key: true
353
+ },
354
+ cardPicture: {
355
+ _id: true,
356
+ name: true,
357
+ contentType: true,
358
+ size: true,
359
+ useType: true,
360
+ url: true,
361
+ key: true
84
362
  }
85
- else if (response?.error) {
86
- if (Array.isArray(response.error)) {
87
- retValue.errors = response.error;
88
- }
89
- else {
90
- retValue.errors = [response.error];
363
+ };
364
+ try {
365
+ const response = await client.mutation({
366
+ registerAthlete: {
367
+ __args: {
368
+ input: payload
369
+ },
370
+ ...fields
91
371
  }
372
+ });
373
+ VTXBaseAPI.Logger.debug('registerAthlete Response:');
374
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
375
+ retValue = (0, response_builder_1.buildResponse)(response, 'registerAthlete', (r) => {
376
+ const isResponseOk = true && response?.registerAthlete?._id;
377
+ return isResponseOk;
378
+ });
379
+ }
380
+ catch (err1) {
381
+ VTXBaseAPI.Logger.error('registerAthlete err1:');
382
+ VTXBaseAPI.Logger.error(err1);
383
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
384
+ }
385
+ return retValue;
386
+ }
387
+ async findBrandByName(name, translations = false) {
388
+ const client = (0, client_1.createClient)({
389
+ url: this.backendUrl + "/graphql",
390
+ headers: this.headers,
391
+ });
392
+ let retValue = {};
393
+ try {
394
+ let response = null;
395
+ if (translations) {
396
+ response = await client.query({
397
+ getBrandByName: {
398
+ __args: {
399
+ name: name,
400
+ translations: true
401
+ },
402
+ _id: true,
403
+ name: true,
404
+ slogan: true,
405
+ website: true,
406
+ description: true,
407
+ logo: {
408
+ name: true,
409
+ contentType: true,
410
+ size: true,
411
+ useType: true,
412
+ url: true,
413
+ key: true
414
+ },
415
+ banner: {
416
+ name: true,
417
+ contentType: true,
418
+ size: true,
419
+ useType: true,
420
+ url: true,
421
+ key: true
422
+ },
423
+ translations: {
424
+ name: true,
425
+ slogan: true,
426
+ description: true,
427
+ language: true
428
+ },
429
+ }
430
+ });
92
431
  }
93
432
  else {
94
- retValue.errors = ['Error: Obtained incorrect data from Backend'];
433
+ response = await client.query({
434
+ getBrandByName: {
435
+ __args: {
436
+ name: name,
437
+ translations: false
438
+ },
439
+ _id: true,
440
+ name: true,
441
+ slogan: true,
442
+ website: true,
443
+ description: true,
444
+ logo: {
445
+ name: true,
446
+ contentType: true,
447
+ size: true,
448
+ useType: true,
449
+ url: true,
450
+ key: true
451
+ },
452
+ banner: {
453
+ name: true,
454
+ contentType: true,
455
+ size: true,
456
+ useType: true,
457
+ url: true,
458
+ key: true
459
+ }
460
+ }
461
+ });
462
+ }
463
+ VTXBaseAPI.Logger.debug('getBrandByName Response:');
464
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
465
+ retValue = (0, response_builder_1.buildResponse)(response, 'getBrandByName', (r) => {
466
+ const isResponseOk = true && response?.getBrandByName?._id;
467
+ return isResponseOk;
468
+ });
469
+ }
470
+ catch (err1) {
471
+ VTXBaseAPI.Logger.error('getBrandByName err1:');
472
+ VTXBaseAPI.Logger.error(err1);
473
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
474
+ }
475
+ return retValue;
476
+ }
477
+ async createBrand(dto, desiredFields) {
478
+ const client = (0, client_1.createClient)({
479
+ url: this.backendUrl + "/graphql",
480
+ headers: this.headers,
481
+ });
482
+ let retValue = {};
483
+ const fields = desiredFields ?? { _id: true };
484
+ try {
485
+ const response = await client.mutation({
486
+ createBrand: {
487
+ __args: {
488
+ input: dto
489
+ },
490
+ ...fields
491
+ }
492
+ });
493
+ VTXBaseAPI.Logger.debug('createBrand Response:');
494
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
495
+ retValue = (0, response_builder_1.buildResponse)(response, 'createBrand', (r) => {
496
+ const isResponseOk = true && response?.createBrand?._id;
497
+ return isResponseOk;
498
+ });
499
+ }
500
+ catch (err1) {
501
+ VTXBaseAPI.Logger.error('createBrand err1:');
502
+ VTXBaseAPI.Logger.error(err1);
503
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
504
+ }
505
+ return retValue;
506
+ }
507
+ async createSponsorship(dto, desiredFields) {
508
+ const client = (0, client_1.createClient)({
509
+ url: this.backendUrl + "/graphql",
510
+ headers: this.headers,
511
+ });
512
+ let retValue = {};
513
+ const fields = desiredFields ?? { _id: true };
514
+ try {
515
+ const response = await client.mutation({
516
+ createSponsorship: {
517
+ __args: {
518
+ input: dto
519
+ },
520
+ ...fields
521
+ }
522
+ });
523
+ VTXBaseAPI.Logger.debug('createSponsorship Response:');
524
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
525
+ retValue = (0, response_builder_1.buildResponse)(response, 'createSponsorship', (r) => {
526
+ const isResponseOk = true && response?.createSponsorship?._id;
527
+ return isResponseOk;
528
+ });
529
+ }
530
+ catch (err1) {
531
+ VTXBaseAPI.Logger.error('createSponsorship err1:');
532
+ VTXBaseAPI.Logger.error(err1);
533
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
534
+ }
535
+ return retValue;
536
+ }
537
+ async getS3UploadUrl(dto) {
538
+ const client = (0, client_1.createClient)({
539
+ url: this.backendUrl + "/graphql",
540
+ headers: this.headers,
541
+ });
542
+ let retValue = {};
543
+ const fields = {
544
+ uploadUrl: true,
545
+ fields: {
546
+ key: true,
547
+ value: true
548
+ },
549
+ downloadUrl: true,
550
+ bucket: true,
551
+ key: true
552
+ };
553
+ try {
554
+ const response = await client.query({
555
+ getUploadUrl: {
556
+ __args: {
557
+ input: dto
558
+ },
559
+ ...fields
560
+ }
561
+ });
562
+ VTXBaseAPI.Logger.debug('getUploadUrl Response:');
563
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
564
+ retValue = (0, response_builder_1.buildResponse)(response, 'getUploadUrl', (r) => {
565
+ const isResponseOk = true && ((response?.getUploadUrl?.uploadUrl !== undefined) && (response?.getUploadUrl?.uploadUrl !== null));
566
+ return isResponseOk;
567
+ });
568
+ }
569
+ catch (err1) {
570
+ VTXBaseAPI.Logger.error('createSponsorship err1:');
571
+ VTXBaseAPI.Logger.error(err1);
572
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
573
+ }
574
+ return retValue;
575
+ }
576
+ async refreshToken(currentToken, refreshToken) {
577
+ const client = (0, client_1.createClient)({
578
+ url: this.backendUrl + "/graphql",
579
+ headers: this.headers,
580
+ });
581
+ VTXBaseAPI.Logger.debug('HEADERS:');
582
+ VTXBaseAPI.Logger.debug(JSON.stringify(this.headers, null, 2));
583
+ const fields = {
584
+ actualToken: true,
585
+ refreshToken: true
586
+ };
587
+ const dto = {
588
+ refreshToken: refreshToken
589
+ };
590
+ let retValue;
591
+ try {
592
+ const response = await client.mutation({
593
+ refreshToken: {
594
+ __args: {
595
+ dto: dto
596
+ },
597
+ ...fields
598
+ }
599
+ });
600
+ VTXBaseAPI.Logger.debug('refreshToken Response:');
601
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
602
+ retValue = (0, response_builder_1.buildResponse)(response, 'refreshToken', (r) => {
603
+ const isResponseOk = true && response?.refreshToken?.refreshToken;
604
+ return isResponseOk;
605
+ });
606
+ }
607
+ catch (err1) {
608
+ VTXBaseAPI.Logger.error('refreshToken err1:');
609
+ VTXBaseAPI.Logger.error(err1);
610
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
611
+ }
612
+ return retValue;
613
+ }
614
+ async registerNewDomainTenant(input) {
615
+ const client = (0, client_1.createClient)({
616
+ url: this.backendUrl + "/graphql",
617
+ headers: this.headers,
618
+ });
619
+ const fields = {
620
+ _id: true,
621
+ name: true,
622
+ email: true,
623
+ tenant_uri: true,
624
+ owner: {
625
+ _id: true,
626
+ loginEmail: true,
627
+ suspended: true
628
+ },
629
+ domain: {
630
+ _id: true,
631
+ name: true,
632
+ description: true
95
633
  }
634
+ };
635
+ let retValue;
636
+ try {
637
+ const response = await client.mutation({
638
+ registerNewDomainTenant: {
639
+ __args: {
640
+ tenant: input
641
+ },
642
+ ...fields
643
+ }
644
+ });
645
+ VTXBaseAPI.Logger.debug('registerNewDomainTenant Response:');
646
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
647
+ retValue = (0, response_builder_1.buildResponse)(response, 'registerNewDomainTenant', (r) => {
648
+ const isResponseOk = true && response?.registerNewDomainTenant?._id;
649
+ return isResponseOk;
650
+ });
96
651
  }
97
652
  catch (err1) {
98
- try {
99
- console.log('ERROR trying to call server');
100
- console.log(JSON.stringify(err1, null, 2));
653
+ VTXBaseAPI.Logger.error('registerNewDomainTenant err1:');
654
+ VTXBaseAPI.Logger.error(err1);
655
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
656
+ }
657
+ return retValue;
658
+ }
659
+ async registerNewDomainTenantWithLogin(input) {
660
+ const client = (0, client_1.createClient)({
661
+ url: this.backendUrl + "/graphql",
662
+ headers: this.headers,
663
+ });
664
+ const fields = {
665
+ _id: true,
666
+ name: true,
667
+ email: true,
668
+ tenant_uri: true,
669
+ owner: {
670
+ _id: true,
671
+ loginEmail: true,
672
+ suspended: true
673
+ },
674
+ domain: {
675
+ _id: true,
676
+ name: true,
677
+ description: true
678
+ },
679
+ user: {
680
+ _id: true,
681
+ loginEmail: true,
682
+ suspended: true,
683
+ domains: {
684
+ _id: true,
685
+ name: true,
686
+ description: true
687
+ },
688
+ token: {
689
+ actualToken: true,
690
+ refreshToken: true
691
+ }
101
692
  }
102
- catch (ex) { }
103
- if (Array.isArray(err1)) {
104
- retValue.errors = err1;
693
+ };
694
+ let retValue;
695
+ try {
696
+ const response = await client.mutation({
697
+ registerNewDomainTenantWithLogin: {
698
+ __args: {
699
+ tenant: input
700
+ },
701
+ ...fields
702
+ }
703
+ });
704
+ VTXBaseAPI.Logger.debug('registerNewDomainTenant Response:');
705
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
706
+ retValue = (0, response_builder_1.buildResponse)(response, 'TenantWithUserLogin', (r) => {
707
+ const isResponseOk = true && response?.TenantWithUserLogin?._id;
708
+ return isResponseOk;
709
+ });
710
+ }
711
+ catch (err1) {
712
+ VTXBaseAPI.Logger.error('registerNewDomainTenantWithLogin err1:');
713
+ VTXBaseAPI.Logger.error(err1);
714
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
715
+ }
716
+ return retValue;
717
+ }
718
+ async registerUserToDomainFromEmail(input) {
719
+ const client = (0, client_1.createClient)({
720
+ url: this.backendUrl + "/graphql",
721
+ headers: this.headers,
722
+ });
723
+ const fields = {
724
+ _id: true,
725
+ loginEmail: true,
726
+ suspended: true,
727
+ domains: {
728
+ _id: true,
729
+ name: true,
730
+ description: true,
731
+ tenant: {
732
+ _id: true,
733
+ name: true,
734
+ tenant_uri: true
735
+ }
105
736
  }
106
- else {
107
- retValue.errors = [err1];
737
+ };
738
+ let retValue;
739
+ try {
740
+ const response = await client.mutation({
741
+ registerUserToDomainFromEmail: {
742
+ __args: {
743
+ input: input
744
+ },
745
+ ...fields
746
+ }
747
+ });
748
+ VTXBaseAPI.Logger.debug('registerUserToDomainFromEmail Response:');
749
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
750
+ retValue = (0, response_builder_1.buildResponse)(response, 'registerUserToDomainFromEmail', (r) => {
751
+ const isResponseOk = true && response?.registerUserToDomainFromEmail?.loginEmail;
752
+ return isResponseOk;
753
+ });
754
+ }
755
+ catch (err1) {
756
+ VTXBaseAPI.Logger.error('registerUserToDomainFromEmail err1:');
757
+ VTXBaseAPI.Logger.error(err1);
758
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
759
+ }
760
+ return retValue;
761
+ }
762
+ async getPublicSponsorships() {
763
+ const client = (0, client_1.createClient)({
764
+ url: this.backendUrl + "/graphql",
765
+ headers: this.headers,
766
+ });
767
+ const fields = {
768
+ _id: true,
769
+ title: true,
770
+ description: true,
771
+ cashValue: true,
772
+ otherValue: true,
773
+ brand: {
774
+ _id: true,
775
+ name: true,
776
+ slogan: true,
777
+ website: true,
778
+ description: true,
779
+ approved: true,
780
+ published: true,
781
+ logo: {
782
+ _id: true,
783
+ name: true,
784
+ contentType: true,
785
+ size: true,
786
+ useType: true,
787
+ url: true,
788
+ key: true
789
+ },
790
+ banner: {
791
+ _id: true,
792
+ name: true,
793
+ contentType: true,
794
+ size: true,
795
+ useType: true,
796
+ url: true,
797
+ key: true
798
+ },
799
+ stats: {
800
+ campaigns: true,
801
+ sponsorships: true,
802
+ sports: true,
803
+ athletes: true
804
+ },
805
+ operatorIds: true
806
+ },
807
+ banner: {
808
+ _id: true,
809
+ name: true,
810
+ contentType: true,
811
+ size: true,
812
+ useType: true,
813
+ url: true,
814
+ key: true
815
+ },
816
+ criteria: {
817
+ _id: true,
818
+ label: true,
819
+ qualifications: {
820
+ on_AgeQualification: {
821
+ type: true,
822
+ value: true,
823
+ operator: true
824
+ },
825
+ on_DistanceQualification: {
826
+ type: true,
827
+ maxDistance: true,
828
+ latitude: true,
829
+ longitude: true
830
+ },
831
+ on_GenderQualification: {
832
+ type: true,
833
+ operator: true,
834
+ values: true
835
+ },
836
+ on_LocationQualification: {
837
+ type: true,
838
+ operator: true,
839
+ countries: {
840
+ _id: true,
841
+ name: true
842
+ },
843
+ states: {
844
+ _id: true,
845
+ name: true,
846
+ country: {
847
+ _id: true,
848
+ name: true
849
+ }
850
+ },
851
+ cities: {
852
+ _id: true,
853
+ name: true,
854
+ localizedName: true,
855
+ state: {
856
+ _id: true,
857
+ name: true,
858
+ country: {
859
+ _id: true,
860
+ name: true
861
+ }
862
+ },
863
+ latitude: true,
864
+ longitude: true,
865
+ timezone: true
866
+ }
867
+ },
868
+ on_NationalityQualification: {
869
+ type: true,
870
+ operator: true,
871
+ countries: {
872
+ _id: true,
873
+ name: true
874
+ }
875
+ },
876
+ on_ScoreQualification: {
877
+ type: true,
878
+ scoreType: true,
879
+ operator: true,
880
+ value: true
881
+ },
882
+ on_SportsLevelQualification: {
883
+ type: true,
884
+ operator: true,
885
+ level: true
886
+ },
887
+ on_SportsQualification: {
888
+ type: true,
889
+ sports: true,
890
+ operator: true
891
+ }
892
+ }
893
+ },
894
+ sponsorshipItems: {
895
+ _id: true,
896
+ quantity: true,
897
+ title: true,
898
+ value: true,
899
+ type: true
900
+ },
901
+ deadline: true,
902
+ startDate: true,
903
+ duration: {
904
+ length: true,
905
+ unit: true
906
+ },
907
+ terms: true,
908
+ isPrivate: true,
909
+ stats: {
910
+ totalApplications: true,
911
+ newApplications: true,
912
+ discardedApplications: true,
913
+ selectedApplications: true,
914
+ approvedApplications: true,
915
+ grantedSponsorships: true,
916
+ remainingSponsorships: true
917
+ },
918
+ approved: true,
919
+ published: true
920
+ };
921
+ let retValue;
922
+ try {
923
+ const response = await client.query({
924
+ getPublicSponsorships: {
925
+ __args: {},
926
+ ...fields
927
+ }
928
+ });
929
+ VTXBaseAPI.Logger.debug('getPublicSponsorships Response:');
930
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
931
+ retValue = (0, response_builder_1.buildResponse)(response, 'getPublicSponsorships', (r) => {
932
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
933
+ const isResponseOk = true;
934
+ return isResponseOk;
935
+ });
936
+ }
937
+ catch (err1) {
938
+ VTXBaseAPI.Logger.error('getPublicSponsorships err1:');
939
+ VTXBaseAPI.Logger.error(err1);
940
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
941
+ }
942
+ return retValue;
943
+ }
944
+ async getTenantSponsorshipsFromUri(tenantUri, token) {
945
+ if ((!tenantUri) || (tenantUri.trim() === "")) {
946
+ return {
947
+ error: {
948
+ httpStatus: 400,
949
+ code: vtx_core_common_1.VTX_ERRORS.INVALID_TENANT_URI.code,
950
+ message: vtx_core_common_1.VTX_ERRORS.INVALID_TENANT_URI.description
951
+ }
952
+ };
953
+ }
954
+ const credential = token.domains.find(c => {
955
+ if (c.tenant) {
956
+ if ((c.tenant.tenant_uri == tenantUri) && (c._id == domains_1.DOMAIN_SPONSOR)) {
957
+ return true;
958
+ }
108
959
  }
960
+ return false;
961
+ });
962
+ if (!credential) {
963
+ return {
964
+ error: {
965
+ httpStatus: 400,
966
+ code: vtx_core_common_1.VTX_ERRORS.INVALID_TENANT_URI_FOR_SPONSOR.code,
967
+ message: "Tenant in domain SPONSOR not found in domains with URI " + tenantUri
968
+ }
969
+ };
970
+ }
971
+ const tenantId = credential.tenant?._id ?? null;
972
+ if ((!tenantId) || (tenantId == "ALL")) {
973
+ return {
974
+ error: {
975
+ httpStatus: 400,
976
+ code: vtx_core_common_1.VTX_ERRORS.INVALID_TENANT_ID.code,
977
+ message: vtx_core_common_1.VTX_ERRORS.INVALID_TENANT_ID.description
978
+ }
979
+ };
980
+ }
981
+ return this.getTenantSponsorships(tenantId);
982
+ }
983
+ async getTenantSponsorships(tenantId) {
984
+ const client = (0, client_1.createClient)({
985
+ url: this.backendUrl + "/graphql",
986
+ headers: this.headers,
987
+ });
988
+ const fields = {
989
+ _id: true,
990
+ title: true,
991
+ description: true,
992
+ cashValue: true,
993
+ otherValue: true,
994
+ brand: {
995
+ _id: true,
996
+ name: true,
997
+ slogan: true,
998
+ website: true,
999
+ description: true,
1000
+ approved: true,
1001
+ published: true,
1002
+ logo: {
1003
+ _id: true,
1004
+ name: true,
1005
+ contentType: true,
1006
+ size: true,
1007
+ useType: true,
1008
+ url: true,
1009
+ key: true
1010
+ },
1011
+ banner: {
1012
+ _id: true,
1013
+ name: true,
1014
+ contentType: true,
1015
+ size: true,
1016
+ useType: true,
1017
+ url: true,
1018
+ key: true
1019
+ },
1020
+ stats: {
1021
+ campaigns: true,
1022
+ sponsorships: true,
1023
+ sports: true,
1024
+ athletes: true
1025
+ },
1026
+ operatorIds: true
1027
+ },
1028
+ banner: {
1029
+ _id: true,
1030
+ name: true,
1031
+ contentType: true,
1032
+ size: true,
1033
+ useType: true,
1034
+ url: true,
1035
+ key: true
1036
+ },
1037
+ criteria: {
1038
+ _id: true,
1039
+ label: true,
1040
+ qualifications: {
1041
+ on_AgeQualification: {
1042
+ type: true,
1043
+ value: true,
1044
+ operator: true
1045
+ },
1046
+ on_DistanceQualification: {
1047
+ type: true,
1048
+ maxDistance: true,
1049
+ latitude: true,
1050
+ longitude: true
1051
+ },
1052
+ on_GenderQualification: {
1053
+ type: true,
1054
+ operator: true,
1055
+ values: true
1056
+ },
1057
+ on_LocationQualification: {
1058
+ type: true,
1059
+ operator: true,
1060
+ countries: {
1061
+ _id: true,
1062
+ name: true
1063
+ },
1064
+ states: {
1065
+ _id: true,
1066
+ name: true,
1067
+ country: {
1068
+ _id: true,
1069
+ name: true
1070
+ }
1071
+ },
1072
+ cities: {
1073
+ _id: true,
1074
+ name: true,
1075
+ localizedName: true,
1076
+ state: {
1077
+ _id: true,
1078
+ name: true,
1079
+ country: {
1080
+ _id: true,
1081
+ name: true
1082
+ }
1083
+ },
1084
+ latitude: true,
1085
+ longitude: true,
1086
+ timezone: true
1087
+ }
1088
+ },
1089
+ on_NationalityQualification: {
1090
+ type: true,
1091
+ operator: true,
1092
+ countries: {
1093
+ _id: true,
1094
+ name: true
1095
+ }
1096
+ },
1097
+ on_ScoreQualification: {
1098
+ type: true,
1099
+ scoreType: true,
1100
+ operator: true,
1101
+ value: true
1102
+ },
1103
+ on_SportsLevelQualification: {
1104
+ type: true,
1105
+ operator: true,
1106
+ level: true
1107
+ },
1108
+ on_SportsQualification: {
1109
+ type: true,
1110
+ sports: true,
1111
+ operator: true
1112
+ }
1113
+ }
1114
+ },
1115
+ sponsorshipItems: {
1116
+ _id: true,
1117
+ quantity: true,
1118
+ title: true,
1119
+ value: true,
1120
+ type: true
1121
+ },
1122
+ deadline: true,
1123
+ startDate: true,
1124
+ duration: {
1125
+ length: true,
1126
+ unit: true
1127
+ },
1128
+ terms: true,
1129
+ isPrivate: true,
1130
+ stats: {
1131
+ totalApplications: true,
1132
+ newApplications: true,
1133
+ discardedApplications: true,
1134
+ selectedApplications: true,
1135
+ approvedApplications: true,
1136
+ grantedSponsorships: true,
1137
+ remainingSponsorships: true
1138
+ },
1139
+ approved: true,
1140
+ published: true
1141
+ };
1142
+ let retValue;
1143
+ try {
1144
+ const response = await client.query({
1145
+ getTenantSponsorships: {
1146
+ __args: {},
1147
+ ...fields
1148
+ }
1149
+ });
1150
+ VTXBaseAPI.Logger.debug('getTenantSponsorships Response:');
1151
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1152
+ retValue = (0, response_builder_1.buildResponse)(response, 'getTenantSponsorships', (r) => {
1153
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1154
+ const isResponseOk = true;
1155
+ return isResponseOk;
1156
+ });
1157
+ }
1158
+ catch (err1) {
1159
+ VTXBaseAPI.Logger.error('getTenantSponsorships err1:');
1160
+ VTXBaseAPI.Logger.error(err1);
1161
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1162
+ }
1163
+ return retValue;
1164
+ }
1165
+ async sendAthleteInvitations(input) {
1166
+ const client = (0, client_1.createClient)({
1167
+ url: this.backendUrl + "/graphql",
1168
+ headers: this.headers,
1169
+ });
1170
+ const fields = {
1171
+ _id: true,
1172
+ name: true,
1173
+ email: true,
1174
+ dateSent: true,
1175
+ sponsor: {
1176
+ _id: true,
1177
+ name: true,
1178
+ tenant: {
1179
+ _id: true,
1180
+ name: true,
1181
+ tenant_uri: true
1182
+ }
1183
+ },
1184
+ magicLink: {
1185
+ _id: true,
1186
+ code: true,
1187
+ type: true,
1188
+ url: true,
1189
+ expires: true,
1190
+ data: true,
1191
+ isExpired: true
1192
+ },
1193
+ brand: {
1194
+ _id: true,
1195
+ name: true,
1196
+ logo: {
1197
+ _id: true,
1198
+ name: true,
1199
+ contentType: true,
1200
+ url: true,
1201
+ useType: true
1202
+ },
1203
+ website: true
1204
+ },
1205
+ status: true
1206
+ };
1207
+ let retValue;
1208
+ try {
1209
+ const response = await client.mutation({
1210
+ sendAthleteInvitations: {
1211
+ __args: {
1212
+ input: input
1213
+ },
1214
+ ...fields
1215
+ }
1216
+ });
1217
+ VTXBaseAPI.Logger.debug('sendAthleteInvitations Response:');
1218
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1219
+ retValue = (0, response_builder_1.buildResponse)(response, 'sendAthleteInvitations', (r) => {
1220
+ const isResponseOk = true && Array.isArray(response?.sendAthleteInvitations);
1221
+ return isResponseOk;
1222
+ });
1223
+ }
1224
+ catch (err1) {
1225
+ VTXBaseAPI.Logger.error('sendAthleteInvitations err1:');
1226
+ VTXBaseAPI.Logger.error(err1);
1227
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1228
+ }
1229
+ return retValue;
1230
+ }
1231
+ async registerSponsorUser(input) {
1232
+ const client = (0, client_1.createClient)({
1233
+ url: this.backendUrl + "/graphql",
1234
+ headers: this.headers,
1235
+ });
1236
+ const fields = {
1237
+ _id: true,
1238
+ loginEmail: true,
1239
+ suspended: true,
1240
+ domains: {
1241
+ _id: true,
1242
+ name: true,
1243
+ description: true,
1244
+ tenant: {
1245
+ _id: true,
1246
+ name: true,
1247
+ tenant_uri: true,
1248
+ domain: {
1249
+ _id: true,
1250
+ name: true,
1251
+ description: true
1252
+ }
1253
+ }
1254
+ }
1255
+ };
1256
+ let retValue;
1257
+ try {
1258
+ const response = await client.mutation({
1259
+ registerSponsorUser: {
1260
+ __args: {
1261
+ input: input
1262
+ },
1263
+ ...fields
1264
+ }
1265
+ });
1266
+ VTXBaseAPI.Logger.debug('registerSponsorUser Response:');
1267
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1268
+ retValue = (0, response_builder_1.buildResponse)(response, 'registerSponsorUser', (r) => {
1269
+ const isResponseOk = true && response?.registerSponsorUser._id;
1270
+ return isResponseOk;
1271
+ });
1272
+ }
1273
+ catch (err1) {
1274
+ VTXBaseAPI.Logger.error('registerSponsorUser err1:');
1275
+ VTXBaseAPI.Logger.error(err1);
1276
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1277
+ }
1278
+ return retValue;
1279
+ }
1280
+ async registerAthleteUser(input) {
1281
+ const client = (0, client_1.createClient)({
1282
+ url: this.backendUrl + "/graphql",
1283
+ headers: this.headers,
1284
+ });
1285
+ const fields = {
1286
+ _id: true,
1287
+ loginEmail: true,
1288
+ suspended: true,
1289
+ domains: {
1290
+ _id: true,
1291
+ name: true,
1292
+ description: true,
1293
+ tenant: {
1294
+ _id: true,
1295
+ name: true,
1296
+ tenant_uri: true,
1297
+ domain: {
1298
+ _id: true,
1299
+ name: true,
1300
+ description: true
1301
+ }
1302
+ }
1303
+ }
1304
+ };
1305
+ let retValue;
1306
+ try {
1307
+ const response = await client.mutation({
1308
+ registerAthleteUser: {
1309
+ __args: {
1310
+ input: input
1311
+ },
1312
+ ...fields
1313
+ }
1314
+ });
1315
+ VTXBaseAPI.Logger.debug('registerAthleteUser Response:');
1316
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1317
+ retValue = (0, response_builder_1.buildResponse)(response, 'registerAthleteUser', (r) => {
1318
+ const isResponseOk = true && response?.registerAthleteUser._id;
1319
+ return isResponseOk;
1320
+ });
1321
+ }
1322
+ catch (err1) {
1323
+ VTXBaseAPI.Logger.error('registerAthleteUser err1:');
1324
+ VTXBaseAPI.Logger.error(err1);
1325
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1326
+ }
1327
+ return retValue;
1328
+ }
1329
+ async preRegisterAthleteUser(input) {
1330
+ const client = (0, client_1.createClient)({
1331
+ url: this.backendUrl + "/graphql",
1332
+ headers: this.headers,
1333
+ });
1334
+ const fields = {
1335
+ _id: true,
1336
+ type: true,
1337
+ recipient: true,
1338
+ expires: true,
1339
+ isExpired: true,
1340
+ createdDate: true
1341
+ };
1342
+ let retValue;
1343
+ try {
1344
+ const response = await client.mutation({
1345
+ preRegisterAthleteUser: {
1346
+ __args: {
1347
+ input: input
1348
+ },
1349
+ ...fields
1350
+ }
1351
+ });
1352
+ VTXBaseAPI.Logger.debug('preRegisterAthleteUser Response:');
1353
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1354
+ retValue = (0, response_builder_1.buildResponse)(response, 'preRegisterAthleteUser', (r) => {
1355
+ const isResponseOk = true && response?.preRegisterAthleteUser._id;
1356
+ return isResponseOk;
1357
+ });
1358
+ }
1359
+ catch (err1) {
1360
+ VTXBaseAPI.Logger.error('preRegisterAthleteUser err1:');
1361
+ VTXBaseAPI.Logger.error(err1);
1362
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1363
+ }
1364
+ return retValue;
1365
+ }
1366
+ async confirmAthleteUserRegistrationAndLogin(input) {
1367
+ const client = (0, client_1.createClient)({
1368
+ url: this.backendUrl + "/graphql",
1369
+ headers: this.headers,
1370
+ });
1371
+ const fields = {
1372
+ _id: true,
1373
+ loginEmail: true,
1374
+ suspended: true,
1375
+ domains: {
1376
+ _id: true,
1377
+ name: true,
1378
+ description: true,
1379
+ tenant: {
1380
+ _id: true,
1381
+ name: true,
1382
+ tenant_uri: true,
1383
+ domain: {
1384
+ _id: true,
1385
+ name: true,
1386
+ description: true
1387
+ }
1388
+ }
1389
+ },
1390
+ token: {
1391
+ actualToken: true,
1392
+ refreshToken: true
1393
+ }
1394
+ };
1395
+ let retValue;
1396
+ try {
1397
+ const response = await client.mutation({
1398
+ confirmAthleteUserRegistrationAndLogin: {
1399
+ __args: {
1400
+ input: input
1401
+ },
1402
+ ...fields
1403
+ }
1404
+ });
1405
+ VTXBaseAPI.Logger.debug('confirmAthleteUserRegistrationAndLogin Response:');
1406
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1407
+ retValue = (0, response_builder_1.buildResponse)(response, 'confirmAthleteUserRegistrationAndLogin', (r) => {
1408
+ const isResponseOk = true && response?.confirmAthleteUserRegistrationAndLogin._id;
1409
+ return isResponseOk;
1410
+ });
1411
+ }
1412
+ catch (err1) {
1413
+ VTXBaseAPI.Logger.error('confirmAthleteUserRegistrationAndLogin err1:');
1414
+ VTXBaseAPI.Logger.error(err1);
1415
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1416
+ }
1417
+ return retValue;
1418
+ }
1419
+ async confirmAthleteUserRegistration(input) {
1420
+ const client = (0, client_1.createClient)({
1421
+ url: this.backendUrl + "/graphql",
1422
+ headers: this.headers,
1423
+ });
1424
+ const fields = {
1425
+ _id: true,
1426
+ loginEmail: true,
1427
+ suspended: true,
1428
+ domains: {
1429
+ _id: true,
1430
+ name: true,
1431
+ description: true,
1432
+ tenant: {
1433
+ _id: true,
1434
+ name: true,
1435
+ tenant_uri: true,
1436
+ domain: {
1437
+ _id: true,
1438
+ name: true,
1439
+ description: true
1440
+ }
1441
+ }
1442
+ }
1443
+ };
1444
+ let retValue;
1445
+ try {
1446
+ const response = await client.mutation({
1447
+ confirmAthleteUserRegistration: {
1448
+ __args: {
1449
+ input: input
1450
+ },
1451
+ ...fields
1452
+ }
1453
+ });
1454
+ VTXBaseAPI.Logger.debug('confirmAthleteUserRegistration Response:');
1455
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1456
+ retValue = (0, response_builder_1.buildResponse)(response, 'confirmAthleteUserRegistration', (r) => {
1457
+ const isResponseOk = true && response?.confirmAthleteUserRegistration._id;
1458
+ return isResponseOk;
1459
+ });
1460
+ }
1461
+ catch (err1) {
1462
+ VTXBaseAPI.Logger.error('confirmAthleteUserRegistration err1:');
1463
+ VTXBaseAPI.Logger.error(err1);
1464
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1465
+ }
1466
+ return retValue;
1467
+ }
1468
+ async findSponsorAthleteInvitation(dto) {
1469
+ const client = (0, client_1.createClient)({
1470
+ url: this.backendUrl + "/graphql",
1471
+ headers: this.headers,
1472
+ });
1473
+ const fields = {
1474
+ _id: true,
1475
+ name: true,
1476
+ email: true,
1477
+ dateSent: true,
1478
+ sponsor: {
1479
+ _id: true,
1480
+ name: true,
1481
+ description: true,
1482
+ approved: true
1483
+ },
1484
+ magicLink: {
1485
+ _id: true,
1486
+ code: true,
1487
+ type: true,
1488
+ url: true,
1489
+ expires: true,
1490
+ isExpired: true
1491
+ },
1492
+ brand: {
1493
+ _id: true,
1494
+ name: true,
1495
+ slogan: true,
1496
+ website: true,
1497
+ description: true,
1498
+ approved: true,
1499
+ published: true,
1500
+ logo: {
1501
+ _id: true,
1502
+ name: true,
1503
+ contentType: true,
1504
+ size: true,
1505
+ useType: true,
1506
+ url: true,
1507
+ key: true
1508
+ },
1509
+ banner: {
1510
+ _id: true,
1511
+ name: true,
1512
+ contentType: true,
1513
+ size: true,
1514
+ useType: true,
1515
+ url: true,
1516
+ key: true
1517
+ }
1518
+ },
1519
+ status: true
1520
+ };
1521
+ let retValue;
1522
+ try {
1523
+ const response = await client.query({
1524
+ findSponsorAthleteInvitation: {
1525
+ __args: {
1526
+ input: dto
1527
+ },
1528
+ ...fields
1529
+ }
1530
+ });
1531
+ VTXBaseAPI.Logger.debug('findSponsorAthleteInvitation Response:');
1532
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1533
+ retValue = (0, response_builder_1.buildResponse)(response, 'findSponsorAthleteInvitation', (r) => {
1534
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1535
+ const isResponseOk = true && response?.findSponsorAthleteInvitation?._id;
1536
+ return isResponseOk;
1537
+ });
1538
+ }
1539
+ catch (err1) {
1540
+ VTXBaseAPI.Logger.error('findSponsorAthleteInvitation err1:');
1541
+ VTXBaseAPI.Logger.error(err1);
1542
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1543
+ }
1544
+ return retValue;
1545
+ }
1546
+ async findVtxUser(dto) {
1547
+ const client = (0, client_1.createClient)({
1548
+ url: this.backendUrl + "/graphql",
1549
+ headers: this.headers,
1550
+ });
1551
+ const fields = {
1552
+ _id: true,
1553
+ loginEmail: true,
1554
+ suspended: true,
1555
+ domains: {
1556
+ _id: true,
1557
+ name: true,
1558
+ description: true,
1559
+ tenant: {
1560
+ _id: true,
1561
+ name: true,
1562
+ tenant_uri: true,
1563
+ domain: {
1564
+ _id: true,
1565
+ name: true,
1566
+ description: true
1567
+ }
1568
+ }
1569
+ }
1570
+ };
1571
+ let retValue;
1572
+ try {
1573
+ const response = await client.query({
1574
+ findVtxUser: {
1575
+ __args: {
1576
+ input: dto
1577
+ },
1578
+ ...fields
1579
+ }
1580
+ });
1581
+ VTXBaseAPI.Logger.debug('findVtxUser Response:');
1582
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1583
+ retValue = (0, response_builder_1.buildResponse)(response, 'findVtxUser', (r) => {
1584
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1585
+ const isResponseOk = true && response?.findVtxUser?._id;
1586
+ return isResponseOk;
1587
+ });
1588
+ }
1589
+ catch (err1) {
1590
+ VTXBaseAPI.Logger.error('findVtxUser err1:');
1591
+ VTXBaseAPI.Logger.error(err1);
1592
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1593
+ }
1594
+ return retValue;
1595
+ }
1596
+ async findCitiesStartingWith(pattern) {
1597
+ const client = (0, client_1.createClient)({
1598
+ url: this.backendUrl + "/graphql",
1599
+ headers: this.headers,
1600
+ });
1601
+ const fields = {
1602
+ _id: true,
1603
+ name: true,
1604
+ localizedName: true,
1605
+ state: {
1606
+ _id: true,
1607
+ name: true,
1608
+ country: {
1609
+ _id: true,
1610
+ name: true
1611
+ }
1612
+ },
1613
+ latitude: true,
1614
+ longitude: true,
1615
+ timezone: true
1616
+ };
1617
+ let retValue;
1618
+ try {
1619
+ const response = await client.query({
1620
+ findCitiesStartingWith: {
1621
+ __args: {
1622
+ text: pattern
1623
+ },
1624
+ ...fields
1625
+ }
1626
+ });
1627
+ VTXBaseAPI.Logger.debug('findCitiesStartingWith Response:');
1628
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1629
+ retValue = (0, response_builder_1.buildResponse)(response, 'findCitiesStartingWith', (r) => {
1630
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1631
+ const isResponseOk = true && Array.isArray(response?.findCitiesStartingWith);
1632
+ return isResponseOk;
1633
+ });
1634
+ }
1635
+ catch (err1) {
1636
+ VTXBaseAPI.Logger.error('findCitiesStartingWith err1:');
1637
+ VTXBaseAPI.Logger.error(err1);
1638
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1639
+ }
1640
+ return retValue;
1641
+ }
1642
+ async findCityById(cityId) {
1643
+ const client = (0, client_1.createClient)({
1644
+ url: this.backendUrl + "/graphql",
1645
+ headers: this.headers,
1646
+ });
1647
+ const fields = {
1648
+ _id: true,
1649
+ name: true,
1650
+ localizedName: true,
1651
+ state: {
1652
+ _id: true,
1653
+ name: true,
1654
+ country: {
1655
+ _id: true,
1656
+ name: true
1657
+ }
1658
+ },
1659
+ latitude: true,
1660
+ longitude: true,
1661
+ timezone: true
1662
+ };
1663
+ let retValue;
1664
+ try {
1665
+ const response = await client.query({
1666
+ findCityById: {
1667
+ __args: {
1668
+ cityId: cityId
1669
+ },
1670
+ ...fields
1671
+ }
1672
+ });
1673
+ VTXBaseAPI.Logger.debug('findCityById Response:');
1674
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1675
+ retValue = (0, response_builder_1.buildResponse)(response, 'findCityById', (r) => {
1676
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1677
+ const isResponseOk = true && response?.findCityById?._id;
1678
+ return isResponseOk;
1679
+ });
1680
+ }
1681
+ catch (err1) {
1682
+ VTXBaseAPI.Logger.error('findCityById err1:');
1683
+ VTXBaseAPI.Logger.error(err1);
1684
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1685
+ }
1686
+ return retValue;
1687
+ }
1688
+ async getSportLevels() {
1689
+ const client = (0, client_1.createClient)({
1690
+ url: this.backendUrl + "/graphql",
1691
+ headers: this.headers,
1692
+ });
1693
+ const fields = {
1694
+ _id: true,
1695
+ label: true,
1696
+ index: true
1697
+ };
1698
+ let retValue;
1699
+ try {
1700
+ const response = await client.query({
1701
+ getSportLevels: {
1702
+ __args: {},
1703
+ ...fields
1704
+ }
1705
+ });
1706
+ VTXBaseAPI.Logger.debug('getSportLevels Response:');
1707
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1708
+ retValue = (0, response_builder_1.buildResponse)(response, 'getSportLevels', (r) => {
1709
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1710
+ const isResponseOk = true && Array.isArray(response?.getSportLevels);
1711
+ return isResponseOk;
1712
+ });
1713
+ }
1714
+ catch (err1) {
1715
+ VTXBaseAPI.Logger.error('getSportLevels err1:');
1716
+ VTXBaseAPI.Logger.error(err1);
1717
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1718
+ }
1719
+ return retValue;
1720
+ }
1721
+ async getSports() {
1722
+ const client = (0, client_1.createClient)({
1723
+ url: this.backendUrl + "/graphql",
1724
+ headers: this.headers,
1725
+ });
1726
+ const fields = {
1727
+ _id: true,
1728
+ name: true
1729
+ };
1730
+ let retValue;
1731
+ try {
1732
+ const response = await client.query({
1733
+ getSports: {
1734
+ __args: {},
1735
+ ...fields
1736
+ }
1737
+ });
1738
+ VTXBaseAPI.Logger.debug('getSports Response:');
1739
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1740
+ retValue = (0, response_builder_1.buildResponse)(response, 'getSports', (r) => {
1741
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1742
+ const isResponseOk = true && Array.isArray(response?.getSports);
1743
+ return isResponseOk;
1744
+ });
1745
+ }
1746
+ catch (err1) {
1747
+ VTXBaseAPI.Logger.error('getSports err1:');
1748
+ VTXBaseAPI.Logger.error(err1);
1749
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1750
+ }
1751
+ return retValue;
1752
+ }
1753
+ async loginUserFromCredentialsVtx(username, password) {
1754
+ const client = (0, client_1.createClient)({
1755
+ url: this.backendUrl + '/graphql',
1756
+ headers: this.headers,
1757
+ });
1758
+ const curatedEmail = username.trim().toLocaleLowerCase();
1759
+ let retValue = {};
1760
+ const fields = {
1761
+ _id: true,
1762
+ loginEmail: true,
1763
+ suspended: true,
1764
+ domains: {
1765
+ _id: true,
1766
+ name: true,
1767
+ description: true,
1768
+ tenant: {
1769
+ _id: true,
1770
+ name: true,
1771
+ tenant_uri: true,
1772
+ domain: {
1773
+ _id: true,
1774
+ name: true,
1775
+ description: true
1776
+ }
1777
+ }
1778
+ },
1779
+ loginMethods: true,
1780
+ token: {
1781
+ actualToken: true,
1782
+ refreshToken: true
1783
+ }
1784
+ };
1785
+ try {
1786
+ const response = await client.mutation({
1787
+ loginUserFromCredentialsVtx: {
1788
+ __args: {
1789
+ username: curatedEmail,
1790
+ password: password
1791
+ },
1792
+ ...fields
1793
+ },
1794
+ });
1795
+ VTXBaseAPI.Logger.debug('loginUserFromCredentialsVtx Response:');
1796
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1797
+ retValue = (0, response_builder_1.buildResponse)(response, 'loginUserFromCredentialsVtx', (r) => {
1798
+ const isResponseOk = true && response?.loginUserFromCredentialsVtx?.actualToken;
1799
+ return isResponseOk;
1800
+ });
1801
+ }
1802
+ catch (err1) {
1803
+ VTXBaseAPI.Logger.error('loginUserFromCredentialsVtx err1:');
1804
+ VTXBaseAPI.Logger.error(err1);
1805
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1806
+ }
1807
+ return retValue;
1808
+ }
1809
+ async validateUserCredentialsVtx(username, password) {
1810
+ const client = (0, client_1.createClient)({
1811
+ url: this.backendUrl + '/graphql',
1812
+ headers: this.headers,
1813
+ });
1814
+ const curatedEmail = username.trim().toLocaleLowerCase();
1815
+ let retValue = {};
1816
+ const fields = {
1817
+ _id: true,
1818
+ loginEmail: true,
1819
+ suspended: true,
1820
+ domains: {
1821
+ _id: true,
1822
+ name: true,
1823
+ description: true,
1824
+ tenant: {
1825
+ _id: true,
1826
+ name: true,
1827
+ tenant_uri: true,
1828
+ domain: {
1829
+ _id: true,
1830
+ name: true,
1831
+ description: true
1832
+ }
1833
+ }
1834
+ },
1835
+ loginMethods: true
1836
+ };
1837
+ try {
1838
+ const response = await client.query({
1839
+ validateUserCredentials: {
1840
+ __args: {
1841
+ username: curatedEmail,
1842
+ password: password
1843
+ },
1844
+ ...fields
1845
+ },
1846
+ });
1847
+ VTXBaseAPI.Logger.debug('validateUserCredentials Response:');
1848
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
1849
+ retValue = (0, response_builder_1.buildResponse)(response, 'validateUserCredentials', (r) => {
1850
+ const isResponseOk = true && response?.validateUserCredentials?._id;
1851
+ return isResponseOk;
1852
+ });
1853
+ }
1854
+ catch (err1) {
1855
+ VTXBaseAPI.Logger.error('validateUserCredentials err1:');
1856
+ VTXBaseAPI.Logger.error(err1);
1857
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
1858
+ }
1859
+ return retValue;
1860
+ }
1861
+ async findAthleteForUser(loginEmail) {
1862
+ const client = (0, client_1.createClient)({
1863
+ url: this.backendUrl + "/graphql",
1864
+ headers: this.headers,
1865
+ });
1866
+ let retValue = {};
1867
+ const fields = {
1868
+ _id: true,
1869
+ firstName: true,
1870
+ lastName: true,
1871
+ screenName: true,
1872
+ dob: true,
1873
+ lgbt: true,
1874
+ competitionGender: true,
1875
+ country: {
1876
+ _id: true,
1877
+ name: true
1878
+ },
1879
+ location: {
1880
+ userProvidedLatitude: true,
1881
+ userProvidedLongitude: true,
1882
+ cityNameGeocode: true,
1883
+ stateNameGeocode: true,
1884
+ countryIso2CodeGeocode: true,
1885
+ timeZoneGeocode: true,
1886
+ latitudeGeocode: true,
1887
+ longitudeGeocode: true,
1888
+ city: {
1889
+ _id: true,
1890
+ name: true,
1891
+ localizedName: true,
1892
+ state: {
1893
+ _id: true,
1894
+ name: true,
1895
+ country: {
1896
+ _id: true,
1897
+ name: true
1898
+ }
1899
+ },
1900
+ latitude: true,
1901
+ longitude: true,
1902
+ timezone: true,
1903
+ }
1904
+ },
1905
+ trainer: true,
1906
+ trainerUrl: true,
1907
+ followStats: {
1908
+ followers: true,
1909
+ followed: true,
1910
+ raves: true,
1911
+ favorites: true
1912
+ },
1913
+ mainSport: {
1914
+ _id: true,
1915
+ name: true
1916
+ },
1917
+ mainSportLevel: {
1918
+ _id: true,
1919
+ label: true,
1920
+ index: true
1921
+ },
1922
+ scores: {
1923
+ vtxScore: true,
1924
+ socialScore: true,
1925
+ trainingScore: true,
1926
+ competitionScore: true
1927
+ },
1928
+ rankings: {
1929
+ worldRanking: {
1930
+ scope: true,
1931
+ scopeId: true,
1932
+ scopeName: true,
1933
+ position: true,
1934
+ total: true
1935
+ },
1936
+ countryRanking: {
1937
+ scope: true,
1938
+ scopeId: true,
1939
+ scopeName: true,
1940
+ position: true,
1941
+ total: true
1942
+ },
1943
+ stateRanking: {
1944
+ scope: true,
1945
+ scopeId: true,
1946
+ scopeName: true,
1947
+ position: true,
1948
+ total: true
1949
+ },
1950
+ cityRanking: {
1951
+ scope: true,
1952
+ scopeId: true,
1953
+ scopeName: true,
1954
+ position: true,
1955
+ total: true
1956
+ },
1957
+ },
1958
+ allSports: {
1959
+ _id: true,
1960
+ name: true
1961
+ },
1962
+ teams: {
1963
+ _id: true,
1964
+ name: true,
1965
+ description: true,
1966
+ approved: true,
1967
+ logo: {
1968
+ _id: true,
1969
+ name: true,
1970
+ contentType: true,
1971
+ size: true,
1972
+ useType: true,
1973
+ url: true,
1974
+ key: true
1975
+ },
1976
+ banner: {
1977
+ _id: true,
1978
+ name: true,
1979
+ contentType: true,
1980
+ size: true,
1981
+ useType: true,
1982
+ url: true,
1983
+ key: true
1984
+ }
1985
+ },
1986
+ sponsorBrands: {
1987
+ _id: true,
1988
+ name: true,
1989
+ slogan: true,
1990
+ website: true,
1991
+ description: true,
1992
+ approved: true,
1993
+ published: true,
1994
+ logo: {
1995
+ _id: true,
1996
+ name: true,
1997
+ contentType: true,
1998
+ size: true,
1999
+ useType: true,
2000
+ url: true,
2001
+ key: true
2002
+ },
2003
+ stats: {
2004
+ campaigns: true,
2005
+ sponsorships: true,
2006
+ sports: true,
2007
+ athletes: true
2008
+ },
2009
+ operatorIds: true,
2010
+ },
2011
+ competitions: {
2012
+ _id: true,
2013
+ event: {
2014
+ _id: true,
2015
+ name: true,
2016
+ eventWebSite: true,
2017
+ startDate: true,
2018
+ endDate: true,
2019
+ verified: true,
2020
+ banner: {
2021
+ _id: true,
2022
+ name: true,
2023
+ contentType: true,
2024
+ size: true,
2025
+ useType: true,
2026
+ url: true,
2027
+ key: true
2028
+ }
2029
+ },
2030
+ eventName: true,
2031
+ date: true,
2032
+ result: {
2033
+ _id: true,
2034
+ type: true,
2035
+ position: true,
2036
+ score: true,
2037
+ timems: true,
2038
+ resultWebLink: true
2039
+ }
2040
+ },
2041
+ totalUpcomingCompetitions: true,
2042
+ totalPastCompetitions: true,
2043
+ profilePicture: {
2044
+ _id: true,
2045
+ name: true,
2046
+ contentType: true,
2047
+ size: true,
2048
+ useType: true,
2049
+ url: true,
2050
+ key: true
2051
+ },
2052
+ cardPicture: {
2053
+ _id: true,
2054
+ name: true,
2055
+ contentType: true,
2056
+ size: true,
2057
+ useType: true,
2058
+ url: true,
2059
+ key: true
2060
+ }
2061
+ };
2062
+ try {
2063
+ let response = null;
2064
+ response = await client.query({
2065
+ findAthleteForUser: {
2066
+ __args: {
2067
+ loginEmail: loginEmail
2068
+ },
2069
+ ...fields
2070
+ }
2071
+ });
2072
+ VTXBaseAPI.Logger.debug('findAthleteForUser Response:');
2073
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2074
+ retValue = (0, response_builder_1.buildResponse)(response, 'findAthleteForUser', (r) => {
2075
+ const isResponseOk = true && response?.findAthleteForUser?._id;
2076
+ return isResponseOk;
2077
+ });
2078
+ }
2079
+ catch (err1) {
2080
+ VTXBaseAPI.Logger.error('findAthleteForUser err1:');
2081
+ VTXBaseAPI.Logger.error(err1);
2082
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
2083
+ }
2084
+ return retValue;
2085
+ }
2086
+ async getBrands() {
2087
+ const client = (0, client_1.createClient)({
2088
+ url: this.backendUrl + "/graphql",
2089
+ headers: this.headers,
2090
+ });
2091
+ const fields = {
2092
+ _id: true,
2093
+ name: true,
2094
+ slogan: true,
2095
+ website: true,
2096
+ description: true,
2097
+ approved: true,
2098
+ published: true,
2099
+ logo: {
2100
+ _id: true,
2101
+ name: true,
2102
+ contentType: true,
2103
+ size: true,
2104
+ useType: true,
2105
+ url: true,
2106
+ key: true
2107
+ },
2108
+ banner: {
2109
+ _id: true,
2110
+ name: true,
2111
+ contentType: true,
2112
+ size: true,
2113
+ useType: true,
2114
+ url: true,
2115
+ key: true
2116
+ },
2117
+ stats: {
2118
+ campaigns: true,
2119
+ sponsorships: true,
2120
+ sports: true,
2121
+ athletes: true
2122
+ },
2123
+ operatorIds: true
2124
+ };
2125
+ let retValue;
2126
+ try {
2127
+ const response = await client.query({
2128
+ brands: {
2129
+ __args: {},
2130
+ ...fields
2131
+ }
2132
+ });
2133
+ VTXBaseAPI.Logger.debug('brands Response:');
2134
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2135
+ retValue = (0, response_builder_1.buildResponse)(response, 'brands', (r) => {
2136
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2137
+ const isResponseOk = true && Array.isArray(response?.brands);
2138
+ return isResponseOk;
2139
+ });
2140
+ }
2141
+ catch (err1) {
2142
+ VTXBaseAPI.Logger.error('brands err1:');
2143
+ VTXBaseAPI.Logger.error(err1);
2144
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
2145
+ }
2146
+ return retValue;
2147
+ }
2148
+ async getAthletes() {
2149
+ const client = (0, client_1.createClient)({
2150
+ url: this.backendUrl + "/graphql",
2151
+ headers: this.headers,
2152
+ });
2153
+ const fields = {
2154
+ _id: true,
2155
+ firstName: true,
2156
+ lastName: true,
2157
+ screenName: true,
2158
+ dob: true,
2159
+ lgbt: true,
2160
+ competitionGender: true,
2161
+ country: {
2162
+ _id: true,
2163
+ name: true
2164
+ },
2165
+ location: {
2166
+ userProvidedLatitude: true,
2167
+ userProvidedLongitude: true,
2168
+ cityNameGeocode: true,
2169
+ stateNameGeocode: true,
2170
+ countryIso2CodeGeocode: true,
2171
+ timeZoneGeocode: true,
2172
+ latitudeGeocode: true,
2173
+ longitudeGeocode: true,
2174
+ city: {
2175
+ _id: true,
2176
+ name: true,
2177
+ localizedName: true,
2178
+ state: {
2179
+ _id: true,
2180
+ name: true,
2181
+ country: {
2182
+ _id: true,
2183
+ name: true
2184
+ }
2185
+ },
2186
+ latitude: true,
2187
+ longitude: true,
2188
+ timezone: true,
2189
+ }
2190
+ },
2191
+ trainer: true,
2192
+ trainerUrl: true,
2193
+ followStats: {
2194
+ followers: true,
2195
+ followed: true,
2196
+ raves: true,
2197
+ favorites: true
2198
+ },
2199
+ mainSport: {
2200
+ _id: true,
2201
+ name: true
2202
+ },
2203
+ mainSportLevel: {
2204
+ _id: true,
2205
+ label: true,
2206
+ index: true
2207
+ },
2208
+ scores: {
2209
+ vtxScore: true,
2210
+ socialScore: true,
2211
+ trainingScore: true,
2212
+ competitionScore: true
2213
+ },
2214
+ rankings: {
2215
+ worldRanking: {
2216
+ scope: true,
2217
+ scopeId: true,
2218
+ scopeName: true,
2219
+ position: true,
2220
+ total: true
2221
+ },
2222
+ countryRanking: {
2223
+ scope: true,
2224
+ scopeId: true,
2225
+ scopeName: true,
2226
+ position: true,
2227
+ total: true
2228
+ },
2229
+ stateRanking: {
2230
+ scope: true,
2231
+ scopeId: true,
2232
+ scopeName: true,
2233
+ position: true,
2234
+ total: true
2235
+ },
2236
+ cityRanking: {
2237
+ scope: true,
2238
+ scopeId: true,
2239
+ scopeName: true,
2240
+ position: true,
2241
+ total: true
2242
+ },
2243
+ },
2244
+ allSports: {
2245
+ _id: true,
2246
+ name: true
2247
+ },
2248
+ teams: {
2249
+ _id: true,
2250
+ name: true,
2251
+ description: true,
2252
+ approved: true,
2253
+ logo: {
2254
+ _id: true,
2255
+ name: true,
2256
+ contentType: true,
2257
+ size: true,
2258
+ useType: true,
2259
+ url: true,
2260
+ key: true
2261
+ },
2262
+ banner: {
2263
+ _id: true,
2264
+ name: true,
2265
+ contentType: true,
2266
+ size: true,
2267
+ useType: true,
2268
+ url: true,
2269
+ key: true
2270
+ }
2271
+ },
2272
+ sponsorBrands: {
2273
+ _id: true,
2274
+ name: true,
2275
+ slogan: true,
2276
+ website: true,
2277
+ description: true,
2278
+ approved: true,
2279
+ published: true,
2280
+ logo: {
2281
+ _id: true,
2282
+ name: true,
2283
+ contentType: true,
2284
+ size: true,
2285
+ useType: true,
2286
+ url: true,
2287
+ key: true
2288
+ },
2289
+ stats: {
2290
+ campaigns: true,
2291
+ sponsorships: true,
2292
+ sports: true,
2293
+ athletes: true
2294
+ },
2295
+ operatorIds: true,
2296
+ },
2297
+ competitions: {
2298
+ _id: true,
2299
+ event: {
2300
+ _id: true,
2301
+ name: true,
2302
+ eventWebSite: true,
2303
+ startDate: true,
2304
+ endDate: true,
2305
+ verified: true,
2306
+ banner: {
2307
+ _id: true,
2308
+ name: true,
2309
+ contentType: true,
2310
+ size: true,
2311
+ useType: true,
2312
+ url: true,
2313
+ key: true
2314
+ }
2315
+ },
2316
+ eventName: true,
2317
+ date: true,
2318
+ result: {
2319
+ _id: true,
2320
+ type: true,
2321
+ position: true,
2322
+ score: true,
2323
+ timems: true,
2324
+ resultWebLink: true
2325
+ }
2326
+ },
2327
+ totalUpcomingCompetitions: true,
2328
+ totalPastCompetitions: true,
2329
+ profilePicture: {
2330
+ _id: true,
2331
+ name: true,
2332
+ contentType: true,
2333
+ size: true,
2334
+ useType: true,
2335
+ url: true,
2336
+ key: true
2337
+ },
2338
+ cardPicture: {
2339
+ _id: true,
2340
+ name: true,
2341
+ contentType: true,
2342
+ size: true,
2343
+ useType: true,
2344
+ url: true,
2345
+ key: true
2346
+ }
2347
+ };
2348
+ let retValue;
2349
+ try {
2350
+ const response = await client.query({
2351
+ getAthletes: {
2352
+ __args: {},
2353
+ ...fields
2354
+ }
2355
+ });
2356
+ VTXBaseAPI.Logger.debug('getAthletes Response:');
2357
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2358
+ retValue = (0, response_builder_1.buildResponse)(response, 'getAthletes', (r) => {
2359
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2360
+ const isResponseOk = true && Array.isArray(response?.getAthletes);
2361
+ return isResponseOk;
2362
+ });
2363
+ }
2364
+ catch (err1) {
2365
+ VTXBaseAPI.Logger.error('getAthletes err1:');
2366
+ VTXBaseAPI.Logger.error(err1);
2367
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
2368
+ }
2369
+ return retValue;
2370
+ }
2371
+ async searchAthletes(searchString) {
2372
+ const client = (0, client_1.createClient)({
2373
+ url: this.backendUrl + "/graphql",
2374
+ headers: this.headers,
2375
+ });
2376
+ const fields = {
2377
+ _id: true,
2378
+ firstName: true,
2379
+ lastName: true,
2380
+ screenName: true,
2381
+ dob: true,
2382
+ lgbt: true,
2383
+ competitionGender: true,
2384
+ country: {
2385
+ _id: true,
2386
+ name: true
2387
+ },
2388
+ location: {
2389
+ userProvidedLatitude: true,
2390
+ userProvidedLongitude: true,
2391
+ cityNameGeocode: true,
2392
+ stateNameGeocode: true,
2393
+ countryIso2CodeGeocode: true,
2394
+ timeZoneGeocode: true,
2395
+ latitudeGeocode: true,
2396
+ longitudeGeocode: true,
2397
+ city: {
2398
+ _id: true,
2399
+ name: true,
2400
+ localizedName: true,
2401
+ state: {
2402
+ _id: true,
2403
+ name: true,
2404
+ country: {
2405
+ _id: true,
2406
+ name: true
2407
+ }
2408
+ },
2409
+ latitude: true,
2410
+ longitude: true,
2411
+ timezone: true,
2412
+ }
2413
+ },
2414
+ trainer: true,
2415
+ trainerUrl: true,
2416
+ followStats: {
2417
+ followers: true,
2418
+ followed: true,
2419
+ raves: true,
2420
+ favorites: true
2421
+ },
2422
+ mainSport: {
2423
+ _id: true,
2424
+ name: true
2425
+ },
2426
+ mainSportLevel: {
2427
+ _id: true,
2428
+ label: true,
2429
+ index: true
2430
+ },
2431
+ scores: {
2432
+ vtxScore: true,
2433
+ socialScore: true,
2434
+ trainingScore: true,
2435
+ competitionScore: true
2436
+ },
2437
+ rankings: {
2438
+ worldRanking: {
2439
+ scope: true,
2440
+ scopeId: true,
2441
+ scopeName: true,
2442
+ position: true,
2443
+ total: true
2444
+ },
2445
+ countryRanking: {
2446
+ scope: true,
2447
+ scopeId: true,
2448
+ scopeName: true,
2449
+ position: true,
2450
+ total: true
2451
+ },
2452
+ stateRanking: {
2453
+ scope: true,
2454
+ scopeId: true,
2455
+ scopeName: true,
2456
+ position: true,
2457
+ total: true
2458
+ },
2459
+ cityRanking: {
2460
+ scope: true,
2461
+ scopeId: true,
2462
+ scopeName: true,
2463
+ position: true,
2464
+ total: true
2465
+ },
2466
+ },
2467
+ allSports: {
2468
+ _id: true,
2469
+ name: true
2470
+ },
2471
+ teams: {
2472
+ _id: true,
2473
+ name: true,
2474
+ description: true,
2475
+ approved: true,
2476
+ logo: {
2477
+ _id: true,
2478
+ name: true,
2479
+ contentType: true,
2480
+ size: true,
2481
+ useType: true,
2482
+ url: true,
2483
+ key: true
2484
+ },
2485
+ banner: {
2486
+ _id: true,
2487
+ name: true,
2488
+ contentType: true,
2489
+ size: true,
2490
+ useType: true,
2491
+ url: true,
2492
+ key: true
2493
+ }
2494
+ },
2495
+ sponsorBrands: {
2496
+ _id: true,
2497
+ name: true,
2498
+ slogan: true,
2499
+ website: true,
2500
+ description: true,
2501
+ approved: true,
2502
+ published: true,
2503
+ logo: {
2504
+ _id: true,
2505
+ name: true,
2506
+ contentType: true,
2507
+ size: true,
2508
+ useType: true,
2509
+ url: true,
2510
+ key: true
2511
+ },
2512
+ stats: {
2513
+ campaigns: true,
2514
+ sponsorships: true,
2515
+ sports: true,
2516
+ athletes: true
2517
+ },
2518
+ operatorIds: true,
2519
+ },
2520
+ competitions: {
2521
+ _id: true,
2522
+ event: {
2523
+ _id: true,
2524
+ name: true,
2525
+ eventWebSite: true,
2526
+ startDate: true,
2527
+ endDate: true,
2528
+ verified: true,
2529
+ banner: {
2530
+ _id: true,
2531
+ name: true,
2532
+ contentType: true,
2533
+ size: true,
2534
+ useType: true,
2535
+ url: true,
2536
+ key: true
2537
+ }
2538
+ },
2539
+ eventName: true,
2540
+ date: true,
2541
+ result: {
2542
+ _id: true,
2543
+ type: true,
2544
+ position: true,
2545
+ score: true,
2546
+ timems: true,
2547
+ resultWebLink: true
2548
+ }
2549
+ },
2550
+ totalUpcomingCompetitions: true,
2551
+ totalPastCompetitions: true,
2552
+ profilePicture: {
2553
+ _id: true,
2554
+ name: true,
2555
+ contentType: true,
2556
+ size: true,
2557
+ useType: true,
2558
+ url: true,
2559
+ key: true
2560
+ },
2561
+ cardPicture: {
2562
+ _id: true,
2563
+ name: true,
2564
+ contentType: true,
2565
+ size: true,
2566
+ useType: true,
2567
+ url: true,
2568
+ key: true
2569
+ }
2570
+ };
2571
+ let retValue;
2572
+ try {
2573
+ const response = await client.query({
2574
+ searchAthletes: {
2575
+ __args: {
2576
+ searchString: searchString
2577
+ },
2578
+ ...fields
2579
+ }
2580
+ });
2581
+ VTXBaseAPI.Logger.debug('searchAthletes Response:');
2582
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2583
+ retValue = (0, response_builder_1.buildResponse)(response, 'searchAthletes', (r) => {
2584
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2585
+ const isResponseOk = true && Array.isArray(response?.searchAthletes);
2586
+ return isResponseOk;
2587
+ });
2588
+ }
2589
+ catch (err1) {
2590
+ VTXBaseAPI.Logger.error('searchAthletes err1:');
2591
+ VTXBaseAPI.Logger.error(err1);
2592
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
2593
+ }
2594
+ return retValue;
2595
+ }
2596
+ async getRecommendedAthletes(loginEmail) {
2597
+ const client = (0, client_1.createClient)({
2598
+ url: this.backendUrl + "/graphql",
2599
+ headers: this.headers,
2600
+ });
2601
+ const fields = {
2602
+ _id: true,
2603
+ firstName: true,
2604
+ lastName: true,
2605
+ screenName: true,
2606
+ dob: true,
2607
+ lgbt: true,
2608
+ competitionGender: true,
2609
+ country: {
2610
+ _id: true,
2611
+ name: true
2612
+ },
2613
+ location: {
2614
+ userProvidedLatitude: true,
2615
+ userProvidedLongitude: true,
2616
+ cityNameGeocode: true,
2617
+ stateNameGeocode: true,
2618
+ countryIso2CodeGeocode: true,
2619
+ timeZoneGeocode: true,
2620
+ latitudeGeocode: true,
2621
+ longitudeGeocode: true,
2622
+ city: {
2623
+ _id: true,
2624
+ name: true,
2625
+ localizedName: true,
2626
+ state: {
2627
+ _id: true,
2628
+ name: true,
2629
+ country: {
2630
+ _id: true,
2631
+ name: true
2632
+ }
2633
+ },
2634
+ latitude: true,
2635
+ longitude: true,
2636
+ timezone: true,
2637
+ }
2638
+ },
2639
+ trainer: true,
2640
+ trainerUrl: true,
2641
+ followStats: {
2642
+ followers: true,
2643
+ followed: true,
2644
+ raves: true,
2645
+ favorites: true
2646
+ },
2647
+ mainSport: {
2648
+ _id: true,
2649
+ name: true
2650
+ },
2651
+ mainSportLevel: {
2652
+ _id: true,
2653
+ label: true,
2654
+ index: true
2655
+ },
2656
+ scores: {
2657
+ vtxScore: true,
2658
+ socialScore: true,
2659
+ trainingScore: true,
2660
+ competitionScore: true
2661
+ },
2662
+ rankings: {
2663
+ worldRanking: {
2664
+ scope: true,
2665
+ scopeId: true,
2666
+ scopeName: true,
2667
+ position: true,
2668
+ total: true
2669
+ },
2670
+ countryRanking: {
2671
+ scope: true,
2672
+ scopeId: true,
2673
+ scopeName: true,
2674
+ position: true,
2675
+ total: true
2676
+ },
2677
+ stateRanking: {
2678
+ scope: true,
2679
+ scopeId: true,
2680
+ scopeName: true,
2681
+ position: true,
2682
+ total: true
2683
+ },
2684
+ cityRanking: {
2685
+ scope: true,
2686
+ scopeId: true,
2687
+ scopeName: true,
2688
+ position: true,
2689
+ total: true
2690
+ },
2691
+ },
2692
+ allSports: {
2693
+ _id: true,
2694
+ name: true
2695
+ },
2696
+ teams: {
2697
+ _id: true,
2698
+ name: true,
2699
+ description: true,
2700
+ approved: true,
2701
+ logo: {
2702
+ _id: true,
2703
+ name: true,
2704
+ contentType: true,
2705
+ size: true,
2706
+ useType: true,
2707
+ url: true,
2708
+ key: true
2709
+ },
2710
+ banner: {
2711
+ _id: true,
2712
+ name: true,
2713
+ contentType: true,
2714
+ size: true,
2715
+ useType: true,
2716
+ url: true,
2717
+ key: true
2718
+ }
2719
+ },
2720
+ sponsorBrands: {
2721
+ _id: true,
2722
+ name: true,
2723
+ slogan: true,
2724
+ website: true,
2725
+ description: true,
2726
+ approved: true,
2727
+ published: true,
2728
+ logo: {
2729
+ _id: true,
2730
+ name: true,
2731
+ contentType: true,
2732
+ size: true,
2733
+ useType: true,
2734
+ url: true,
2735
+ key: true
2736
+ },
2737
+ stats: {
2738
+ campaigns: true,
2739
+ sponsorships: true,
2740
+ sports: true,
2741
+ athletes: true
2742
+ },
2743
+ operatorIds: true,
2744
+ },
2745
+ competitions: {
2746
+ _id: true,
2747
+ event: {
2748
+ _id: true,
2749
+ name: true,
2750
+ eventWebSite: true,
2751
+ startDate: true,
2752
+ endDate: true,
2753
+ verified: true,
2754
+ banner: {
2755
+ _id: true,
2756
+ name: true,
2757
+ contentType: true,
2758
+ size: true,
2759
+ useType: true,
2760
+ url: true,
2761
+ key: true
2762
+ }
2763
+ },
2764
+ eventName: true,
2765
+ date: true,
2766
+ result: {
2767
+ _id: true,
2768
+ type: true,
2769
+ position: true,
2770
+ score: true,
2771
+ timems: true,
2772
+ resultWebLink: true
2773
+ }
2774
+ },
2775
+ totalUpcomingCompetitions: true,
2776
+ totalPastCompetitions: true,
2777
+ profilePicture: {
2778
+ _id: true,
2779
+ name: true,
2780
+ contentType: true,
2781
+ size: true,
2782
+ useType: true,
2783
+ url: true,
2784
+ key: true
2785
+ },
2786
+ cardPicture: {
2787
+ _id: true,
2788
+ name: true,
2789
+ contentType: true,
2790
+ size: true,
2791
+ useType: true,
2792
+ url: true,
2793
+ key: true
2794
+ }
2795
+ };
2796
+ let retValue;
2797
+ try {
2798
+ const response = await client.query({
2799
+ getRecommendedAthletes: {
2800
+ __args: {
2801
+ loginEmail: loginEmail
2802
+ },
2803
+ ...fields
2804
+ }
2805
+ });
2806
+ VTXBaseAPI.Logger.debug('getRecommendedAthletes Response:');
2807
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2808
+ retValue = (0, response_builder_1.buildResponse)(response, 'getRecommendedAthletes', (r) => {
2809
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
2810
+ const isResponseOk = true && Array.isArray(response?.getRecommendedAthletes);
2811
+ return isResponseOk;
2812
+ });
2813
+ }
2814
+ catch (err1) {
2815
+ VTXBaseAPI.Logger.error('getRecommendedAthletes err1:');
2816
+ VTXBaseAPI.Logger.error(err1);
2817
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
2818
+ }
2819
+ return retValue;
2820
+ }
2821
+ async getSponsorAthletesForTenant() {
2822
+ const client = (0, client_1.createClient)({
2823
+ url: this.backendUrl + "/graphql",
2824
+ headers: this.headers,
2825
+ });
2826
+ const fields = {
2827
+ _id: true,
2828
+ firstName: true,
2829
+ lastName: true,
2830
+ screenName: true,
2831
+ dob: true,
2832
+ lgbt: true,
2833
+ competitionGender: true,
2834
+ country: {
2835
+ _id: true,
2836
+ name: true
2837
+ },
2838
+ location: {
2839
+ userProvidedLatitude: true,
2840
+ userProvidedLongitude: true,
2841
+ cityNameGeocode: true,
2842
+ stateNameGeocode: true,
2843
+ countryIso2CodeGeocode: true,
2844
+ timeZoneGeocode: true,
2845
+ latitudeGeocode: true,
2846
+ longitudeGeocode: true,
2847
+ city: {
2848
+ _id: true,
2849
+ name: true,
2850
+ localizedName: true,
2851
+ state: {
2852
+ _id: true,
2853
+ name: true,
2854
+ country: {
2855
+ _id: true,
2856
+ name: true
2857
+ }
2858
+ },
2859
+ latitude: true,
2860
+ longitude: true,
2861
+ timezone: true,
2862
+ }
2863
+ },
2864
+ trainer: true,
2865
+ trainerUrl: true,
2866
+ followStats: {
2867
+ followers: true,
2868
+ followed: true,
2869
+ raves: true,
2870
+ favorites: true
2871
+ },
2872
+ mainSport: {
2873
+ _id: true,
2874
+ name: true
2875
+ },
2876
+ mainSportLevel: {
2877
+ _id: true,
2878
+ label: true,
2879
+ index: true
2880
+ },
2881
+ scores: {
2882
+ vtxScore: true,
2883
+ socialScore: true,
2884
+ trainingScore: true,
2885
+ competitionScore: true
2886
+ },
2887
+ rankings: {
2888
+ worldRanking: {
2889
+ scope: true,
2890
+ scopeId: true,
2891
+ scopeName: true,
2892
+ position: true,
2893
+ total: true
2894
+ },
2895
+ countryRanking: {
2896
+ scope: true,
2897
+ scopeId: true,
2898
+ scopeName: true,
2899
+ position: true,
2900
+ total: true
2901
+ },
2902
+ stateRanking: {
2903
+ scope: true,
2904
+ scopeId: true,
2905
+ scopeName: true,
2906
+ position: true,
2907
+ total: true
2908
+ },
2909
+ cityRanking: {
2910
+ scope: true,
2911
+ scopeId: true,
2912
+ scopeName: true,
2913
+ position: true,
2914
+ total: true
2915
+ },
2916
+ },
2917
+ allSports: {
2918
+ _id: true,
2919
+ name: true
2920
+ },
2921
+ teams: {
2922
+ _id: true,
2923
+ name: true,
2924
+ description: true,
2925
+ approved: true,
2926
+ logo: {
2927
+ _id: true,
2928
+ name: true,
2929
+ contentType: true,
2930
+ size: true,
2931
+ useType: true,
2932
+ url: true,
2933
+ key: true
2934
+ },
2935
+ banner: {
2936
+ _id: true,
2937
+ name: true,
2938
+ contentType: true,
2939
+ size: true,
2940
+ useType: true,
2941
+ url: true,
2942
+ key: true
2943
+ }
2944
+ },
2945
+ sponsorBrands: {
2946
+ _id: true,
2947
+ name: true,
2948
+ slogan: true,
2949
+ website: true,
2950
+ description: true,
2951
+ approved: true,
2952
+ published: true,
2953
+ logo: {
2954
+ _id: true,
2955
+ name: true,
2956
+ contentType: true,
2957
+ size: true,
2958
+ useType: true,
2959
+ url: true,
2960
+ key: true
2961
+ },
2962
+ stats: {
2963
+ campaigns: true,
2964
+ sponsorships: true,
2965
+ sports: true,
2966
+ athletes: true
2967
+ },
2968
+ operatorIds: true,
2969
+ },
2970
+ competitions: {
2971
+ _id: true,
2972
+ event: {
2973
+ _id: true,
2974
+ name: true,
2975
+ eventWebSite: true,
2976
+ startDate: true,
2977
+ endDate: true,
2978
+ verified: true,
2979
+ banner: {
2980
+ _id: true,
2981
+ name: true,
2982
+ contentType: true,
2983
+ size: true,
2984
+ useType: true,
2985
+ url: true,
2986
+ key: true
2987
+ }
2988
+ },
2989
+ eventName: true,
2990
+ date: true,
2991
+ result: {
2992
+ _id: true,
2993
+ type: true,
2994
+ position: true,
2995
+ score: true,
2996
+ timems: true,
2997
+ resultWebLink: true
2998
+ }
2999
+ },
3000
+ totalUpcomingCompetitions: true,
3001
+ totalPastCompetitions: true,
3002
+ profilePicture: {
3003
+ _id: true,
3004
+ name: true,
3005
+ contentType: true,
3006
+ size: true,
3007
+ useType: true,
3008
+ url: true,
3009
+ key: true
3010
+ },
3011
+ cardPicture: {
3012
+ _id: true,
3013
+ name: true,
3014
+ contentType: true,
3015
+ size: true,
3016
+ useType: true,
3017
+ url: true,
3018
+ key: true
3019
+ }
3020
+ };
3021
+ let retValue;
3022
+ try {
3023
+ const response = await client.query({
3024
+ getSponsorAthletesForTenant: {
3025
+ __args: {},
3026
+ ...fields
3027
+ }
3028
+ });
3029
+ VTXBaseAPI.Logger.debug('getSponsorAthletesForTenant Response:');
3030
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
3031
+ retValue = (0, response_builder_1.buildResponse)(response, 'getSponsorAthletesForTenant', (r) => {
3032
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
3033
+ const isResponseOk = true && Array.isArray(response?.getSponsorAthletesForTenant);
3034
+ return isResponseOk;
3035
+ });
3036
+ }
3037
+ catch (err1) {
3038
+ VTXBaseAPI.Logger.error('getSponsorAthletesForTenant err1:');
3039
+ VTXBaseAPI.Logger.error(err1);
3040
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
3041
+ }
3042
+ return retValue;
3043
+ }
3044
+ async getUserImagesFromEmail(loginEmail) {
3045
+ const client = (0, client_1.createClient)({
3046
+ url: this.backendUrl + "/graphql",
3047
+ headers: this.headers,
3048
+ });
3049
+ const fields = {
3050
+ profilePictureUrl: true,
3051
+ cardPictureUrl: true,
3052
+ bannerPictureUrl: true
3053
+ };
3054
+ let retValue;
3055
+ try {
3056
+ const response = await client.query({
3057
+ getUserImagesFromEmail: {
3058
+ __args: {
3059
+ loginEmail: loginEmail
3060
+ },
3061
+ ...fields
3062
+ }
3063
+ });
3064
+ VTXBaseAPI.Logger.debug('getUserImagesFromEmail Response:');
3065
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
3066
+ retValue = (0, response_builder_1.buildResponse)(response, 'getUserImagesFromEmail', (r) => {
3067
+ VTXBaseAPI.Logger.debug(JSON.stringify(response, null, 2));
3068
+ const isResponseOk = true && response?.getUserImagesFromEmail;
3069
+ return isResponseOk;
3070
+ });
3071
+ }
3072
+ catch (err1) {
3073
+ VTXBaseAPI.Logger.error('getUserImagesFromEmail err1:');
3074
+ VTXBaseAPI.Logger.error(err1);
3075
+ retValue = (0, response_builder_1.buildErrorResponse)(err1);
109
3076
  }
110
3077
  return retValue;
111
3078
  }
112
3079
  }
113
3080
  exports.VTXBaseAPI = VTXBaseAPI;
3081
+ VTXBaseAPI.Logger = {
3082
+ debug: (str) => {
3083
+ },
3084
+ log: (str) => {
3085
+ },
3086
+ warn: (str) => {
3087
+ },
3088
+ error: (str) => {
3089
+ console.error(str);
3090
+ },
3091
+ };
114
3092
  //# sourceMappingURL=vtx-base-api.js.map