@esolve/ng-esolve-connect 0.72.0 → 0.73.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2022/index.mjs +4 -2
  2. package/esm2022/lib/competitions/classes/esolve-competition-dates.model.mjs +15 -0
  3. package/esm2022/lib/competitions/classes/esolve-competition-entry-result.model.mjs +9 -0
  4. package/esm2022/lib/competitions/classes/esolve-competition-winner.model.mjs +22 -0
  5. package/esm2022/lib/competitions/classes/esolve-competition.model.mjs +97 -0
  6. package/esm2022/lib/competitions/classes/index.mjs +5 -0
  7. package/esm2022/lib/competitions/index.mjs +7 -0
  8. package/esm2022/lib/competitions/interfaces/esolve-competition-options.interface.mjs +2 -0
  9. package/esm2022/lib/competitions/interfaces/esolve-competition-record.interface.mjs +2 -0
  10. package/esm2022/lib/competitions/interfaces/esolve-competition-winner-record.interface.mjs +2 -0
  11. package/esm2022/lib/competitions/interfaces/index.mjs +4 -0
  12. package/esm2022/lib/competitions/services/esolve-competitions.service.mjs +122 -0
  13. package/esm2022/lib/competitions/services/index.mjs +2 -0
  14. package/esm2022/lib/competitions/types/esolve-competition-entry-response.type.mjs +2 -0
  15. package/esm2022/lib/competitions/types/index.mjs +2 -0
  16. package/esm2022/lib/wallet/classes/esolve-wallet-transaction.model.mjs +2 -1
  17. package/esm2022/lib/wallet/esolve-wallet.service.mjs +4 -1
  18. package/fesm2022/esolve-ng-esolve-connect.mjs +262 -1
  19. package/fesm2022/esolve-ng-esolve-connect.mjs.map +1 -1
  20. package/index.d.ts +1 -0
  21. package/lib/competitions/classes/esolve-competition-dates.model.d.ts +19 -0
  22. package/lib/competitions/classes/esolve-competition-entry-result.model.d.ts +6 -0
  23. package/lib/competitions/classes/esolve-competition-winner.model.d.ts +16 -0
  24. package/lib/competitions/classes/esolve-competition.model.d.ts +66 -0
  25. package/lib/competitions/classes/index.d.ts +4 -0
  26. package/lib/competitions/index.d.ts +3 -0
  27. package/lib/competitions/interfaces/esolve-competition-options.interface.d.ts +4 -0
  28. package/lib/competitions/interfaces/esolve-competition-record.interface.d.ts +25 -0
  29. package/lib/competitions/interfaces/esolve-competition-winner-record.interface.d.ts +5 -0
  30. package/lib/competitions/interfaces/index.d.ts +3 -0
  31. package/lib/competitions/services/esolve-competitions.service.d.ts +50 -0
  32. package/lib/competitions/services/index.d.ts +1 -0
  33. package/lib/competitions/types/esolve-competition-entry-response.type.d.ts +2 -0
  34. package/lib/competitions/types/index.d.ts +1 -0
  35. package/package.json +1 -1
@@ -7504,6 +7504,7 @@ class EsolveWalletTransaction {
7504
7504
  this.description = record.description ?? '';
7505
7505
  this.cart_id = record.cart_id ?? 0;
7506
7506
  this.amount = record.amount ?? 0;
7507
+ this.reliable = !!+(record.reliable ?? false);
7507
7508
  if (record.type &&
7508
7509
  (record.type === 'credit' || record.type === 'debit')) {
7509
7510
  this.type = record.type;
@@ -7571,6 +7572,9 @@ class EsolveWalletService {
7571
7572
  if (options.rows) {
7572
7573
  params = params.set('rows', options.rows);
7573
7574
  }
7575
+ if (options.transaction_id) {
7576
+ params = params.set('transaction_id', options.transaction_id);
7577
+ }
7574
7578
  if (options.from_date) {
7575
7579
  params = params.set('from_date', options.from_date);
7576
7580
  }
@@ -7790,6 +7794,263 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
7790
7794
  }]
7791
7795
  }] });
7792
7796
 
7797
+ class EsolveCompetitionDates {
7798
+ constructor(
7799
+ /**
7800
+ * Competition start date
7801
+ */
7802
+ start,
7803
+ /**
7804
+ * Competition end date
7805
+ */
7806
+ end) {
7807
+ this.start = start;
7808
+ this.end = end;
7809
+ }
7810
+ }
7811
+
7812
+ class EsolveCompetitionEntryResult extends EsolveResponseResult {
7813
+ constructor(response) {
7814
+ super(response);
7815
+ this.id = 0;
7816
+ this.id = +response.esolve_id;
7817
+ }
7818
+ }
7819
+
7820
+ class EsolveCompetitionWinner {
7821
+ constructor(record) {
7822
+ /**
7823
+ * eSolve Generated ID
7824
+ */
7825
+ this.esolve_id = 0;
7826
+ /**
7827
+ * Competition winner's first name
7828
+ */
7829
+ this.first_name = '';
7830
+ /**
7831
+ * Competition winner's surname
7832
+ */
7833
+ this.surname = '';
7834
+ if (record) {
7835
+ this.esolve_id = +(record.userid ?? 0);
7836
+ this.first_name = record.firstname ?? '';
7837
+ this.surname = record.surname ?? '';
7838
+ }
7839
+ }
7840
+ }
7841
+
7842
+ class EsolveCompetition {
7843
+ constructor(record) {
7844
+ /**
7845
+ * eSolve Generated ID
7846
+ */
7847
+ this.id = 0;
7848
+ /**
7849
+ * Identifier linking competition to a media article
7850
+ */
7851
+ this.identifier = '';
7852
+ /**
7853
+ * Identifier linking an active competition to a media article
7854
+ */
7855
+ this.active_identifier = '';
7856
+ /**
7857
+ * Identifier linking an expired competition to a media article
7858
+ */
7859
+ this.expired_identifier = '';
7860
+ /**
7861
+ * Identifier linking a finished competition to a media article
7862
+ */
7863
+ this.completed_identifier = '';
7864
+ /**
7865
+ * Competition run interval
7866
+ */
7867
+ this.dates = new EsolveCompetitionDates(new Date(0), new Date(0));
7868
+ /**
7869
+ * Competition Description
7870
+ */
7871
+ this.description = '';
7872
+ /**
7873
+ * Caption used by the submit button of the competition form
7874
+ */
7875
+ this.button_caption = '';
7876
+ /**
7877
+ * Competition's terms and conditions article
7878
+ */
7879
+ this.terms_and_conditions = '';
7880
+ /**
7881
+ * Competition featured image url
7882
+ */
7883
+ this.image_url = '';
7884
+ /**
7885
+ * Requires audio submission
7886
+ */
7887
+ this.require_audio = false;
7888
+ /**
7889
+ * Requires video submission
7890
+ */
7891
+ this.require_video = false;
7892
+ /**
7893
+ * Requires image submission
7894
+ */
7895
+ this.require_image = false;
7896
+ /**
7897
+ * Competition requires text submission
7898
+ */
7899
+ this.require_text = false;
7900
+ /**
7901
+ * List of competition winners
7902
+ */
7903
+ this.winners = [];
7904
+ if (record) {
7905
+ this.id = +(record.id ?? 0);
7906
+ this.identifier = record.identifier ?? '';
7907
+ this.active_identifier = record.active_identifier ?? '';
7908
+ this.expired_identifier = record.expired_identifier ?? '';
7909
+ this.completed_identifier = record.completed_identifier ?? '';
7910
+ const start_date_timestamp = (record.from_date_timestamp ?? 0) * 1000;
7911
+ const end_date_timestamp = (record.to_date_timestamp ?? 0) * 1000;
7912
+ const start_date = new Date(start_date_timestamp);
7913
+ const end_date = new Date(end_date_timestamp);
7914
+ this.dates = new EsolveCompetitionDates(start_date, end_date);
7915
+ this.description = record.description ?? '';
7916
+ this.button_caption = record.button_caption ?? '';
7917
+ this.terms_and_conditions = record.terms_and_conditions ?? '';
7918
+ this.image_url = record.image_url ?? '';
7919
+ if (this.image_url !== '' && record.image_checksum) {
7920
+ this.image_url =
7921
+ this.image_url + '?cs=' + record.image_checksum;
7922
+ }
7923
+ this.require_audio = !!+(record.audio_attachment ?? false);
7924
+ this.require_video = !!+(record.video_attachment ?? false);
7925
+ this.require_image = !!+(record.image_attachment ?? false);
7926
+ this.require_text = !!+(record.text ?? false);
7927
+ const winners = record.winners;
7928
+ if (winners && winners.length > 0) {
7929
+ for (const winner of winners) {
7930
+ this.winners.push(new EsolveCompetitionWinner(winner));
7931
+ }
7932
+ }
7933
+ }
7934
+ }
7935
+ }
7936
+
7937
+ class EsolveCompetitionsService {
7938
+ constructor() {
7939
+ this.http = inject(HttpClient);
7940
+ this.config = inject(EsolveConfigService);
7941
+ this.errorHandler = inject(EsolveErrorHandlerService);
7942
+ this.responseHandler = inject(EsolveResponseHandlerService);
7943
+ }
7944
+ /**
7945
+ * Retrieve a competition based on its ID.
7946
+ *
7947
+ * @param competition_id - number that represents the unique
7948
+ * id of a competition.
7949
+ *
7950
+ * @returns an Observable of type EsolveCompetition
7951
+ */
7952
+ getCompetition(competition_id) {
7953
+ const params = new HttpParams({
7954
+ fromObject: { competition_id },
7955
+ });
7956
+ return this.getCompetitionSingle(params);
7957
+ }
7958
+ /**
7959
+ * Retrieves a competition based on its identifier.
7960
+ *
7961
+ * @param identifier - string that represents the identifier of the competition.
7962
+ *
7963
+ * @returns an Observable of type EsolveCompetition.
7964
+ */
7965
+ getCompetitionFromIdentifier(identifier) {
7966
+ const params = new HttpParams({
7967
+ fromObject: { identifier },
7968
+ });
7969
+ return this.getCompetitionSingle(params);
7970
+ }
7971
+ /**
7972
+ * Retrieve a list of competitions based on the provided options
7973
+ *
7974
+ * @param options - Optional options for filtering competitions
7975
+ *
7976
+ * @returns an Observable of type EsolveCompetition[].
7977
+ */
7978
+ getCompetitions(options) {
7979
+ let params = new HttpParams();
7980
+ if (options?.competition_id) {
7981
+ params = params.set('competition_id', options.competition_id);
7982
+ }
7983
+ if (options?.identifier) {
7984
+ params = params.set('identifier', options.identifier);
7985
+ }
7986
+ return this.getCompetitionRecords(params).pipe(map((records) => {
7987
+ const competitions = [];
7988
+ for (const record of records) {
7989
+ competitions.push(this.processCompetition(record));
7990
+ }
7991
+ return competitions;
7992
+ }), catchError$1(() => {
7993
+ return of([]);
7994
+ }));
7995
+ }
7996
+ /**
7997
+ * Submit a competition entry
7998
+ *
7999
+ * @param competitions_id - eSolve id of competition.
8000
+ *
8001
+ * @param form_data - competition entry data
8002
+ *
8003
+ * @returns an Observable of type EsolveCompetitionEntryResult
8004
+ */
8005
+ setCompetitionEntry(competitions_id, form_data) {
8006
+ if (!form_data.has('email')) {
8007
+ return this.errorHandler.emitError('email_required', 'Email is required');
8008
+ }
8009
+ const params = new HttpParams({
8010
+ fromObject: { competitions_id },
8011
+ });
8012
+ return this.http
8013
+ .post(`${this.config.api_url}/set-competition-entry.php`, form_data, {
8014
+ responseType: 'json',
8015
+ observe: 'body',
8016
+ params,
8017
+ })
8018
+ .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveCompetitionEntryResult(response))), catchError$1((errorRes) => {
8019
+ return this.errorHandler.handleHttpPostError('set-competition-entry', errorRes);
8020
+ }));
8021
+ }
8022
+ getCompetitionSingle(params) {
8023
+ return this.getCompetitionRecords(params).pipe(map((records) => {
8024
+ const record = records[0];
8025
+ return this.processCompetition(record);
8026
+ }));
8027
+ }
8028
+ getCompetitionRecords(params) {
8029
+ return this.http
8030
+ .get(`${this.config.api_url}/get-competitions.php`, { params })
8031
+ .pipe(map((response) => {
8032
+ if (response.records === undefined ||
8033
+ response.records.length <= 0) {
8034
+ throw response;
8035
+ }
8036
+ return response.records;
8037
+ }));
8038
+ }
8039
+ processCompetition(record) {
8040
+ return new EsolveCompetition(record);
8041
+ }
8042
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EsolveCompetitionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8043
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EsolveCompetitionsService, providedIn: 'root' }); }
8044
+ }
8045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EsolveCompetitionsService, decorators: [{
8046
+ type: Injectable,
8047
+ args: [{
8048
+ providedIn: 'root',
8049
+ }]
8050
+ }] });
8051
+
8052
+ // Classes
8053
+
7793
8054
  /*
7794
8055
  * Public API Surface of ng-esolve-connect
7795
8056
  */
@@ -7798,5 +8059,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
7798
8059
  * Generated bundle index. Do not edit.
7799
8060
  */
7800
8061
 
7801
- export { ESOLVE_CONNECT_CONFIG, ESOLVE_EURUS_AUTO_LOGIN, EsolveAccountConfirmationResult, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAsset, EsolveAssetsService, EsolveAuthInterceptorService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartAlternative, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveCdnSrcDirective, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveColour, EsolveConfigService, EsolveCookieService, EsolveCoupon, EsolveCouponsService, EsolveDeliveriesService, EsolveDelivery, EsolveDeliveryCategoryTotals, EsolveDeliveryStatus, EsolveDependantItem, EsolveDeviceService, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErrorHandlerService, esolveFilterFactory as EsolveFilterFactory, EsolveGenericFilter, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationList, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationUpdateResult, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolveNewsletterResult, EsolveOtp, EsolveOtpService, EsolveOtpValidation, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSeoInfo, EsolveSeoService, EsolveSessionAddressUpdateResult, EsolveSessionMetadataService, EsolveSessionService, EsolveSessionShippingUpdateResult, EsolveSetDeviceResult, EsolveSetNotifyResult, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockService, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveToggleFilter, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionClient, EsolveTransactionDelivery, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionPick, EsolveTransactionShippingMethod, EsolveTransactionTimeSlot, EsolveTransactionUser, EsolveTransactionsService, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveUserDevice, EsolveVaultItem, EsolveVaultItemResult, EsolveVoucher, EsolveVouchersService, EsolveWalletBalances, EsolveWalletService, EsolveWalletTransaction, EsolveWalletTransactionsList, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule, esolveHexHash, isEsolveCdnPath, isFtgCdnPath, isLegacyEsolveCdnPath, processEsolveImageSrc, provideEsolveImageLoader, provideNgEsolveConnect };
8062
+ export { ESOLVE_CONNECT_CONFIG, ESOLVE_EURUS_AUTO_LOGIN, EsolveAccountConfirmationResult, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAsset, EsolveAssetsService, EsolveAuthInterceptorService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartAlternative, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveCdnSrcDirective, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveColour, EsolveCompetition, EsolveCompetitionDates, EsolveCompetitionEntryResult, EsolveCompetitionWinner, EsolveCompetitionsService, EsolveConfigService, EsolveCookieService, EsolveCoupon, EsolveCouponsService, EsolveDeliveriesService, EsolveDelivery, EsolveDeliveryCategoryTotals, EsolveDeliveryStatus, EsolveDependantItem, EsolveDeviceService, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErrorHandlerService, esolveFilterFactory as EsolveFilterFactory, EsolveGenericFilter, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationList, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationUpdateResult, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolveNewsletterResult, EsolveOtp, EsolveOtpService, EsolveOtpValidation, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSeoInfo, EsolveSeoService, EsolveSessionAddressUpdateResult, EsolveSessionMetadataService, EsolveSessionService, EsolveSessionShippingUpdateResult, EsolveSetDeviceResult, EsolveSetNotifyResult, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockService, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveToggleFilter, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionClient, EsolveTransactionDelivery, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionPick, EsolveTransactionShippingMethod, EsolveTransactionTimeSlot, EsolveTransactionUser, EsolveTransactionsService, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveUserDevice, EsolveVaultItem, EsolveVaultItemResult, EsolveVoucher, EsolveVouchersService, EsolveWalletBalances, EsolveWalletService, EsolveWalletTransaction, EsolveWalletTransactionsList, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule, esolveHexHash, isEsolveCdnPath, isFtgCdnPath, isLegacyEsolveCdnPath, processEsolveImageSrc, provideEsolveImageLoader, provideNgEsolveConnect };
7802
8063
  //# sourceMappingURL=esolve-ng-esolve-connect.mjs.map