@smartico/public-api 0.0.47 → 0.0.49

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.
@@ -121,6 +121,16 @@ class IntUtils {
121
121
  return v;
122
122
  }
123
123
  }
124
+ IntUtils.JsonOrText = str => {
125
+ if (str && str.includes && (str.includes('{') || str.includes('['))) {
126
+ try {
127
+ return JSON.parse(str);
128
+ } catch (e) {
129
+ return str;
130
+ }
131
+ }
132
+ return str;
133
+ };
124
134
 
125
135
  var SAWBuyInType;
126
136
  (function (SAWBuyInType) {
@@ -379,14 +389,47 @@ var AchievementType;
379
389
  AchievementType[AchievementType["Badge"] = 2] = "Badge";
380
390
  })(AchievementType || (AchievementType = {}));
381
391
 
382
- /** @hidden */
383
- const levelCleaner = levels => {
392
+ const UserAchievementTransform = items => {
393
+ return items.filter(r => r.ach_id >= 1).map(r => ({
394
+ id: r.ach_id,
395
+ name: r.ach_public_meta.name,
396
+ desription: r.ach_public_meta.description,
397
+ unlock_mission_description: r.ach_public_meta.unlock_mission_description,
398
+ image: r.ach_public_meta.image_url,
399
+ is_completed: r.isCompleted,
400
+ is_locked: r.isLocked,
401
+ is_requires_optin: r.requiresOptin,
402
+ is_opted_in: r.isOptedIn,
403
+ time_limit_ms: r.time_limit_ms,
404
+ dt_start: r.start_date_ts,
405
+ reward: r.ach_public_meta.reward,
406
+ progress: r.progress,
407
+ type: r.ach_type_id === AchievementType.Mission ? 'mission' : 'badge',
408
+ cta_action: r.ach_public_meta.cta_action,
409
+ cta_text: r.ach_public_meta.cta_text,
410
+ custom_section_id: r.ach_public_meta.custom_section_id,
411
+ only_in_custom_section: r.ach_public_meta.only_in_custom_section,
412
+ custom_data: IntUtils.JsonOrText(r.ach_public_meta.custom_data),
413
+ tasks: (r.achievementTasks || []).filter(t => t.task_type_id === AchievementTaskType.CompleteAchievement).map(t => {
414
+ var _t$task_public_meta;
415
+ return {
416
+ id: t.task_id,
417
+ name: (_t$task_public_meta = t.task_public_meta) == null ? void 0 : _t$task_public_meta.name,
418
+ is_completed: t.isCompleted,
419
+ progress: t.userProgress
420
+ };
421
+ })
422
+ }));
423
+ };
424
+
425
+ const GetLevelMapResponseTransform = levels => {
384
426
  return levels == null ? void 0 : levels.levels.map(l => ({
385
427
  id: l.level_id,
386
428
  name: l.level_public_meta.name,
387
429
  description: l.level_public_meta.description,
388
430
  image: l.level_public_meta.image_url,
389
431
  required_points: l.required_points,
432
+ visibility_points: parseInt(l.level_public_meta.visibility_points),
390
433
  required_level_counter_1: l.required_level_counter_1,
391
434
  required_level_counter_2: l.required_level_counter_2
392
435
  }));
@@ -396,14 +439,28 @@ const levelCleaner = levels => {
396
439
  class WSAPI {
397
440
  /** @private */
398
441
  constructor(api) {
399
- WSAPI.api = api;
442
+ this.api = void 0;
443
+ this.api = api;
444
+ }
445
+ /** Returns all the levels available the current user */
446
+ async getUserProfile() {
447
+ if (this.api.tracker) {
448
+ const o = Object.assign({}, this.api.tracker.userPublicProps);
449
+ o.avatar_url = CoreUtils.avatarUrl(this.api.tracker.userPublicProps.avatar_id, this.api.avatarDomain);
450
+ return o;
451
+ } else {
452
+ throw new Error('Tracker is not initialized, cannot getUserProfile');
453
+ }
400
454
  }
401
- async getLevelsTransformed() {
402
- const levels = await WSAPI.api.levelsGet(null);
403
- return levelCleaner(levels);
455
+ /** Returns all the levels available the current user */
456
+ async getLevels() {
457
+ return this.api.levelsGetT(null);
458
+ }
459
+ /** Returns all the missions available the current user */
460
+ async getMissions() {
461
+ return this.api.missionsGetItemsT(null);
404
462
  }
405
463
  }
406
- WSAPI.api = void 0;
407
464
 
408
465
  const PUBLIC_API_URL = 'https://papi{ENV_ID}.smartico.ai/services/public';
409
466
  const C_SOCKET_PROD = 'wss://api{ENV_ID}.smartico.ai/websocket/services';
@@ -411,6 +468,7 @@ const AVATAR_DOMAIN = 'https://img{ENV_ID}.smr.vc';
411
468
  const DEFAULT_LANG_EN = "EN";
412
469
  class SmarticoAPI {
413
470
  constructor(label_api_key, brand_api_key, messageSender, options = {}) {
471
+ var _options$tracker;
414
472
  this.label_api_key = void 0;
415
473
  this.brand_api_key = void 0;
416
474
  this.messageSender = void 0;
@@ -421,6 +479,7 @@ class SmarticoAPI {
421
479
  this.logger = void 0;
422
480
  this.logCIDs = void 0;
423
481
  this.logHTTPTiming = void 0;
482
+ this.tracker = void 0;
424
483
  this.label_api_key = label_api_key;
425
484
  this.brand_api_key = brand_api_key;
426
485
  this.messageSender = messageSender;
@@ -430,9 +489,10 @@ class SmarticoAPI {
430
489
  }
431
490
  this.logCIDs = options.logCIDs || [];
432
491
  this.logHTTPTiming = options.logHTTPTiming || false;
492
+ this.tracker = options.tracker;
433
493
  this.publicUrl = SmarticoAPI.getPublicUrl(label_api_key);
434
494
  this.wsUrl = SmarticoAPI.getPublicWsUrl(label_api_key);
435
- this.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key);
495
+ this.avatarDomain = SmarticoAPI.getAvatarUrl(label_api_key || ((_options$tracker = options.tracker) == null ? void 0 : _options$tracker.label_api_key));
436
496
  this.label_api_key = SmarticoAPI.getCleanLabelApiKey(label_api_key);
437
497
  }
438
498
  static getEnvId(label_api_key) {
@@ -549,7 +609,7 @@ class SmarticoAPI {
549
609
  hash_code: 0,
550
610
  areas
551
611
  });
552
- const trBase = await _this.send(tsBaseRQ);
612
+ const trBase = await _this.send(tsBaseRQ, ClassId.GET_TRANSLATIONS_RESPONSE);
553
613
  if (lang_code !== DEFAULT_LANG_EN) {
554
614
  var _trUser$translations;
555
615
  const trUserRQ = _this.buildMessage(user_ext_id, ClassId.GET_TRANSLATIONS_REQUEST, {
@@ -557,7 +617,7 @@ class SmarticoAPI {
557
617
  hash_code: 0,
558
618
  areas
559
619
  });
560
- const trUser = await _this.send(trUserRQ);
620
+ const trUser = await _this.send(trUserRQ, ClassId.GET_TRANSLATIONS_RESPONSE);
561
621
  Object.keys((_trUser$translations = trUser == null ? void 0 : trUser.translations) != null ? _trUser$translations : {}).forEach(k => {
562
622
  trBase.translations[k] = trUser.translations[k];
563
623
  });
@@ -595,7 +655,7 @@ class SmarticoAPI {
595
655
  } : {
596
656
  is_visitor_mode
597
657
  });
598
- const response = await this.send(message);
658
+ const response = await this.send(message, ClassId.SAW_GET_SPINS_RESPONSE);
599
659
  if (response && response.templates) {
600
660
  response.templates.forEach(t => {
601
661
  if (t.jackpot_current !== undefined && t.jackpot_current !== null) {
@@ -640,23 +700,26 @@ class SmarticoAPI {
640
700
  limit,
641
701
  offset
642
702
  });
643
- return await this.send(message);
703
+ return await this.send(message, ClassId.GET_INBOX_MESSAGES_RESPONSE);
644
704
  }
645
705
  async storeGetItems(user_ext_id) {
646
706
  const message = this.buildMessage(user_ext_id, ClassId.GET_SHOP_ITEMS_REQUEST);
647
- return await this.send(message);
707
+ return await this.send(message, ClassId.GET_SHOP_ITEMS_RESPONSE);
648
708
  }
649
709
  async missionsGetItems(user_ext_id) {
650
710
  const message = this.buildMessage(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);
651
- const response = await this.send(message);
711
+ const response = await this.send(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE);
652
712
  if (response.achievements) {
653
713
  response.achievements = response.achievements.filter(a => a.ach_type_id === AchievementType.Mission);
654
714
  }
655
715
  return response;
656
716
  }
717
+ async missionsGetItemsT(user_ext_id) {
718
+ return UserAchievementTransform((await this.missionsGetItems(user_ext_id)).achievements);
719
+ }
657
720
  async badgetsGetItems(user_ext_id) {
658
721
  const message = this.buildMessage(user_ext_id, ClassId.GET_ACHIEVEMENT_MAP_REQUEST);
659
- const response = await this.send(message);
722
+ const response = await this.send(message, ClassId.GET_ACHIEVEMENT_MAP_RESPONSE);
660
723
  if (response.achievements) {
661
724
  response.achievements = response.achievements.filter(a => a.ach_type_id === AchievementType.Badge);
662
725
  }
@@ -664,14 +727,14 @@ class SmarticoAPI {
664
727
  }
665
728
  async tournamentsGetLobby(user_ext_id) {
666
729
  const message = this.buildMessage(user_ext_id, ClassId.GET_TOURNAMENT_LOBBY_REQUEST);
667
- return await this.send(message);
730
+ return await this.send(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE);
668
731
  }
669
732
  async tournamentsGetInfo(user_ext_id, tournamentInstanceId) {
670
733
  var _response$userPositio, _response$tournamentI;
671
734
  const message = this.buildMessage(user_ext_id, ClassId.GET_TOURNAMENT_INFO_REQUEST, {
672
735
  tournamentInstanceId
673
736
  });
674
- const response = await this.send(message);
737
+ const response = await this.send(message, ClassId.GET_TOURNAMENT_LOBBY_RESPONSE);
675
738
  if ((_response$userPositio = response.userPosition) != null && _response$userPositio.avatar_id) {
676
739
  response.userPosition.avatar_url = CoreUtils.avatarUrl(response.userPosition.avatar_id, this.avatarDomain);
677
740
  }
@@ -689,7 +752,7 @@ class SmarticoAPI {
689
752
  snapshot_offset: prevPeriod ? 1 : 0,
690
753
  include_users: true
691
754
  });
692
- const response = await this.send(message);
755
+ const response = await this.send(message, ClassId.GET_LEADERS_BOARD_RESPONSE);
693
756
  const boardKey = Object.keys(response.map).find(k => period_type_id === undefined || k === (period_type_id == null ? void 0 : period_type_id.toString()));
694
757
  if (boardKey === undefined) {
695
758
  return undefined;
@@ -708,6 +771,9 @@ class SmarticoAPI {
708
771
  const message = this.buildMessage(user_ext_id, ClassId.GET_LEVEL_MAP_REQUEST);
709
772
  return await this.send(message, ClassId.GET_LEVEL_MAP_RESPONSE);
710
773
  }
774
+ async levelsGetT(user_ext_id) {
775
+ return GetLevelMapResponseTransform(await this.levelsGet(user_ext_id));
776
+ }
711
777
  getWSCalls() {
712
778
  return new WSAPI(this);
713
779
  }
@@ -867,5 +933,5 @@ TournamentUtils.isUpcoming = tournament => {
867
933
  return false;
868
934
  };
869
935
 
870
- export { AchievementStatus, AchievementTaskType, AchievementType, ActivityTypeLimited, BuyStoreItemErrorCode, ClassId, CookieStore, CoreUtils, InboxMessageType, LeaderBoardPeriodType, PublicLabelSettings, SAWAcknowledgeType, SAWAskForUsername, SAWBuyInType, SAWBuyInTypeName, SAWGameType, SAWGameTypeName, SAWPrizeType, SAWSpinErrorCode, SAWUtils, SAWWinSoundFiles, SAWWinSoundType, SmarticoAPI, StoreItemType, TournamentInstanceStatus, TournamentInstanceStatusName, TournamentRegistrationError, TournamentRegistrationStatus, TournamentRegistrationType, TournamentType, TournamentUtils, TranslationArea };
936
+ export { AchievementStatus, AchievementTaskType, AchievementType, ActivityTypeLimited, BuyStoreItemErrorCode, ClassId, CookieStore, CoreUtils, GetLevelMapResponseTransform, InboxMessageType, LeaderBoardPeriodType, PublicLabelSettings, SAWAcknowledgeType, SAWAskForUsername, SAWBuyInType, SAWBuyInTypeName, SAWGameType, SAWGameTypeName, SAWPrizeType, SAWSpinErrorCode, SAWUtils, SAWWinSoundFiles, SAWWinSoundType, SmarticoAPI, StoreItemType, TournamentInstanceStatus, TournamentInstanceStatusName, TournamentRegistrationError, TournamentRegistrationStatus, TournamentRegistrationType, TournamentType, TournamentUtils, TranslationArea, UserAchievementTransform };
871
937
  //# sourceMappingURL=index.modern.mjs.map