{"version":3,"file":"main.97e69189eac7e22c.js","mappings":"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","sources":["./apps/reward-engine-frontend/src/app/app-routing.module.ts","./apps/reward-engine-frontend/src/app/app.component.ts","./apps/reward-engine-frontend/src/app/app.component.html","./apps/reward-engine-frontend/src/app/app.module.ts","./apps/reward-engine-frontend/src/app/modules/cart/components/redemption-cart-items/redemption-cart-items.component.ts","./apps/reward-engine-frontend/src/app/modules/cart/components/redemption-cart-items/redemption-cart-items.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/footer/footer.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/footer/footer.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/mini-cart/mini-cart.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/mini-cart/mini-cart.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/mini-dashboard/mini-dashboard-textbox/mini-dashboard-textbox.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/mini-dashboard/mini-dashboard-textbox/mini-dashboard-textbox.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/mini-dashboard/progress-info-card/progress-info-card.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/mini-dashboard/progress-info-card/progress-info-card.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/mini-dashboard/progress-info-column/progress-info-column.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/mini-dashboard/progress-info-column/progress-info-column.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/mini-dashboard/unregistered-points/unregistered-points.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/mini-dashboard/unregistered-points/unregistered-points.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/mobile-navbar-footer/mobile-navbar-footer.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/mobile-navbar-footer/mobile-navbar-footer.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/navbar/navbar.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/navbar/navbar.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/redirect-modal/redirect-modal.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/redirect-modal/redirect-modal.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/user-account-switch/user-account-switch.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/user-account-switch/user-account-switch.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/user-info-login/user-info-login.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/user-info-login/user-info-login.component.html","./apps/reward-engine-frontend/src/app/modules/core/components/user-role-settings/user-role-settings.component.ts","./apps/reward-engine-frontend/src/app/modules/core/components/user-role-settings/user-role-settings.component.html","./apps/reward-engine-frontend/src/app/modules/rewards/components/product-detail-page/product-detail-page.component.ts","./apps/reward-engine-frontend/src/app/modules/rewards/components/product-detail-page/product-detail-page.component.html","./apps/reward-engine-frontend/src/app/modules/rewards/components/reward-gridview-item/reward-gridview-item.component.ts","./apps/reward-engine-frontend/src/app/modules/rewards/components/reward-gridview-item/reward-gridview-item.component.html","./apps/reward-engine-frontend/src/app/modules/services/account-switch/account-switch.service.ts","./apps/reward-engine-frontend/src/app/modules/services/auth-guards/auth-guard-community/auth-guard-community.guard.ts","./apps/reward-engine-frontend/src/app/modules/services/auth-guards/auth-guard-unregistered/auth-guard-unregistered.guard.ts","./apps/reward-engine-frontend/src/app/modules/services/common-helper/pipe.helper.ts","./apps/reward-engine-frontend/src/app/modules/services/common-helper/resolver-guard.helper.ts","./apps/reward-engine-frontend/src/app/modules/services/environment/environment.service.ts","./apps/reward-engine-frontend/src/app/modules/services/error-handler/standard-error-handler.service.ts","./apps/reward-engine-frontend/src/app/modules/services/footer/footer.service.ts","./apps/reward-engine-frontend/src/app/modules/services/load-indicator/load-indicator.service.ts","./apps/reward-engine-frontend/src/app/modules/services/menu/menu.model.ts","./apps/reward-engine-frontend/src/app/modules/services/menu/menu.service.ts","./apps/reward-engine-frontend/src/app/modules/services/multi-currency/multi-currency.service.ts","./apps/reward-engine-frontend/src/app/modules/services/multilanguage/multilanguage.service.ts","./apps/reward-engine-frontend/src/app/modules/services/multilanguage/user-service.config.ts","./apps/reward-engine-frontend/src/app/modules/services/program-settings/program-settings.service.ts","./apps/reward-engine-frontend/src/app/modules/services/redemption-cart/redemption-cart-data.service.ts","./apps/reward-engine-frontend/src/app/modules/services/resolver/community-unregistered.resolver.ts","./apps/reward-engine-frontend/src/app/modules/services/resolver/community.resolver.ts","./apps/reward-engine-frontend/src/app/modules/services/resolver/public.resolver.ts","./apps/reward-engine-frontend/src/app/modules/services/resolver/resolver.handler.ts","./apps/reward-engine-frontend/src/app/modules/services/reward/reward-data.helper.ts","./apps/reward-engine-frontend/src/app/modules/services/toast/toast-config.model.ts","./apps/reward-engine-frontend/src/app/modules/services/toast/toast.service.ts","./apps/reward-engine-frontend/src/app/modules/services/user-stats/user-stats.service.ts","./apps/reward-engine-frontend/src/app/modules/services/user-stats/user-stats.util.ts","./apps/reward-engine-frontend/src/app/modules/shared/helper-util.ts/date-helper.ts","./apps/reward-engine-frontend/src/app/modules/shared/landing-core/landing-core.component.ts","./apps/reward-engine-frontend/src/app/modules/shared/landing-core/landing-core.component.html","./apps/reward-engine-frontend/src/app/modules/shared/loading-spinner/loading-spinner.component.ts","./apps/reward-engine-frontend/src/app/modules/shared/loading-spinner/loading-spinner.component.html","./apps/reward-engine-frontend/src/app/modules/shared/month-range-picker/month-range-picker.component.ts","./apps/reward-engine-frontend/src/app/modules/shared/month-range-picker/month-range-picker.component.html","./apps/reward-engine-frontend/src/app/modules/shared/paginator/paginator.component.ts","./apps/reward-engine-frontend/src/app/modules/shared/paginator/paginator.component.html","./apps/reward-engine-frontend/src/app/modules/shared/shared.module.ts","./apps/reward-engine-frontend/src/app/modules/transloco/transloco-root.module.ts","./apps/reward-engine-frontend/src/environments/environment.stage.ts","./apps/reward-engine-frontend/src/main.ts","./libs/auth/src/index.ts","./libs/auth/src/lib/auth.module.ts","./libs/auth/src/lib/common-helper/logger.ts","./libs/auth/src/lib/service/auth-admin-interceptor.service.ts","./libs/auth/src/lib/service/auth-admin.service.ts","./libs/auth/src/lib/service/auth-config.service.ts","./libs/auth/src/lib/service/auth-config.ts","./libs/auth/src/lib/service/auth-interceptor.service.ts","./libs/auth/src/lib/service/auth-repsonse.ts","./libs/auth/src/lib/service/auth-utils.ts","./libs/auth/src/lib/service/auth.service.ts","./libs/auth/src/lib/service/user.service.ts","./libs/auth/src/lib/service/user.state.ts","./libs/ecom-api/src/index.ts","./libs/ecom-api/src/lib/api/api.module.ts","./libs/ecom-api/src/lib/api/api/adminUser.service.ts","./libs/ecom-api/src/lib/api/api/adminWidgetContent.service.ts","./libs/ecom-api/src/lib/api/api/api.ts","./libs/ecom-api/src/lib/api/api/asset.service.ts","./libs/ecom-api/src/lib/api/api/auth.service.ts","./libs/ecom-api/src/lib/api/api/communityUser.service.ts","./libs/ecom-api/src/lib/api/api/eShop.service.ts","./libs/ecom-api/src/lib/api/api/replicator.service.ts","./libs/ecom-api/src/lib/api/api/superAdminUser.service.ts","./libs/ecom-api/src/lib/api/configuration.ts","./libs/ecom-api/src/lib/api/encoder.ts","./libs/ecom-api/src/lib/api/index.ts","./libs/ecom-api/src/lib/api/model/address.ts","./libs/ecom-api/src/lib/api/model/adminAppDefaults.ts","./libs/ecom-api/src/lib/api/model/adminTransactionModel.ts","./libs/ecom-api/src/lib/api/model/appliedRule.ts","./libs/ecom-api/src/lib/api/model/cartItemDto.ts","./libs/ecom-api/src/lib/api/model/category.ts","./libs/ecom-api/src/lib/api/model/collectCart.ts","./libs/ecom-api/src/lib/api/model/collectCartResponse.ts","./libs/ecom-api/src/lib/api/model/collectItem.ts","./libs/ecom-api/src/lib/api/model/collectItemResponse.ts","./libs/ecom-api/src/lib/api/model/deleteOperationResult.ts","./libs/ecom-api/src/lib/api/model/emailSetting.ts","./libs/ecom-api/src/lib/api/model/emailTemplateType.ts","./libs/ecom-api/src/lib/api/model/errorType.ts","./libs/ecom-api/src/lib/api/model/eshop.ts","./libs/ecom-api/src/lib/api/model/httpStatusCode.ts","./libs/ecom-api/src/lib/api/model/localizedString.ts","./libs/ecom-api/src/lib/api/model/models.ts","./libs/ecom-api/src/lib/api/model/nonCashBenefit.ts","./libs/ecom-api/src/lib/api/model/paginationInfo.ts","./libs/ecom-api/src/lib/api/model/pointExpiry.ts","./libs/ecom-api/src/lib/api/model/pointRoundingRule.ts","./libs/ecom-api/src/lib/api/model/pointValuation.ts","./libs/ecom-api/src/lib/api/model/redeem.ts","./libs/ecom-api/src/lib/api/model/redeemRequest.ts","./libs/ecom-api/src/lib/api/model/relatedAccount.ts","./libs/ecom-api/src/lib/api/model/replaceOneOperationResult.ts","./libs/ecom-api/src/lib/api/model/rewardAccount.ts","./libs/ecom-api/src/lib/api/model/rewardAccountDto.ts","./libs/ecom-api/src/lib/api/model/rewardAccountStatus.ts","./libs/ecom-api/src/lib/api/model/rewardCartItemDto.ts","./libs/ecom-api/src/lib/api/model/rewardEngineError.ts","./libs/ecom-api/src/lib/api/model/rewardOrderDto.ts","./libs/ecom-api/src/lib/api/model/rewardOrderViewDto.ts","./libs/ecom-api/src/lib/api/model/rewardOrderViewDtoPaginatedList.ts","./libs/ecom-api/src/lib/api/model/rewardProduct.ts","./libs/ecom-api/src/lib/api/model/rewardProductDto.ts","./libs/ecom-api/src/lib/api/model/rewardProductType.ts","./libs/ecom-api/src/lib/api/model/rewardProgram.ts","./libs/ecom-api/src/lib/api/model/rewardProgramDocument.ts","./libs/ecom-api/src/lib/api/model/rewardProgramDocumentType.ts","./libs/ecom-api/src/lib/api/model/rewardProgramDto.ts","./libs/ecom-api/src/lib/api/model/rewardRule.ts","./libs/ecom-api/src/lib/api/model/rewardRuleDto.ts","./libs/ecom-api/src/lib/api/model/rewardRuleTier.ts","./libs/ecom-api/src/lib/api/model/rewardTier.ts","./libs/ecom-api/src/lib/api/model/rewardTierDto.ts","./libs/ecom-api/src/lib/api/model/rewardTransaction.ts","./libs/ecom-api/src/lib/api/model/rewardTransactionDto.ts","./libs/ecom-api/src/lib/api/model/rewardTransactionUsage.ts","./libs/ecom-api/src/lib/api/model/rewardUser.ts","./libs/ecom-api/src/lib/api/model/roundingRule.ts","./libs/ecom-api/src/lib/api/model/ruleAction.ts","./libs/ecom-api/src/lib/api/model/ruleCondition.ts","./libs/ecom-api/src/lib/api/model/ruleCurrencyConversion.ts","./libs/ecom-api/src/lib/api/model/ruleLabel.ts","./libs/ecom-api/src/lib/api/model/ruleMode.ts","./libs/ecom-api/src/lib/api/model/ruleType.ts","./libs/ecom-api/src/lib/api/model/sapAccountId.ts","./libs/ecom-api/src/lib/api/model/sessionToken.ts","./libs/ecom-api/src/lib/api/model/simplePointHistoryViewDto.ts","./libs/ecom-api/src/lib/api/model/socialMediaLinks.ts","./libs/ecom-api/src/lib/api/model/sortingDirection.ts","./libs/ecom-api/src/lib/api/model/ssu.ts","./libs/ecom-api/src/lib/api/model/ssuEmailSettings.ts","./libs/ecom-api/src/lib/api/model/ssuInfoDto.ts","./libs/ecom-api/src/lib/api/model/ssuInformation.ts","./libs/ecom-api/src/lib/api/model/tierSystem.ts","./libs/ecom-api/src/lib/api/model/transactionStatus.ts","./libs/ecom-api/src/lib/api/model/transactionType.ts","./libs/ecom-api/src/lib/api/model/userBalance.ts","./libs/ecom-api/src/lib/api/model/userBalanceTransactions.ts","./libs/ecom-api/src/lib/api/model/userContext.ts","./libs/ecom-api/src/lib/api/model/userInfo.ts","./libs/ecom-api/src/lib/api/model/userPermission.ts","./libs/ecom-api/src/lib/api/model/userPermissionDto.ts","./libs/ecom-api/src/lib/api/model/userType.ts","./libs/ecom-api/src/lib/api/model/widgetContent.ts","./libs/ecom-api/src/lib/api/model/widgetContentDTO.ts","./libs/ecom-api/src/lib/api/variables.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { PublicResolver } from './modules/services/resolver/public.resolver';\nimport { CommunityResolver } from './modules/services/resolver/community.resolver';\nimport { CommunityUnregisteredResolver } from './modules/services/resolver/community-unregistered.resolver';\nimport { environment } from \"../environments/environment\";\nimport { AuthGuardCommunityGuard } from \"./modules/services/auth-guards/auth-guard-community/auth-guard-community.guard\";\nimport {\n AuthGuardUnregisteredGuard\n} from \"./modules/services/auth-guards/auth-guard-unregistered/auth-guard-unregistered.guard\";\n\n/**\n * all routing is done in app routing until now, we don't have real subrouting, the pages handle which components are to be displayed\n * all modules are lazy loaded\n */\nconst routes: Routes = [\n {\n path: 'rewards',\n loadChildren: () =>\n import('./modules/rewards/rewards.module').then((m) => m.RewardsModule),\n canActivate: [AuthGuardCommunityGuard],\n resolve: { data: CommunityResolver },\n runGuardsAndResolvers: 'always'\n },\n {\n path: 'reward-point-history',\n loadChildren: () =>\n import('./modules/reward-point-history/reward-point-history.module').then(\n (m) => m.RewardPointHistoryModule\n ),\n canActivate: [AuthGuardCommunityGuard],\n resolve: { data: CommunityResolver },\n runGuardsAndResolvers: 'always'\n },\n {\n path: 'cart',\n loadChildren: () =>\n import('./modules/cart/cart.module').then((m) => m.CartModule),\n canActivate: [AuthGuardCommunityGuard],\n resolve: { data: CommunityResolver },\n runGuardsAndResolvers: 'always'\n },\n {\n path: 'register',\n loadChildren: () =>\n import('./modules/register/register.module').then(\n (m) => m.RegisterModule\n ),\n canActivate: [AuthGuardUnregisteredGuard],\n resolve: { data: CommunityUnregisteredResolver },\n runGuardsAndResolvers: 'always'\n },\n {\n path: 'checkout',\n loadChildren: () =>\n import('./modules/checkout/checkout.module').then(\n (m) => m.CheckoutModule\n ),\n canActivate: [AuthGuardCommunityGuard],\n resolve: { data: CommunityResolver },\n runGuardsAndResolvers: 'always'\n },\n {\n path: 'overview',\n loadChildren: () =>\n import('./modules/overview/overview.module').then(\n (m) => m.OverviewModule\n ),\n resolve: { data: PublicResolver },\n runGuardsAndResolvers: 'always'\n },\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'overview'\n },\n\n];\n\n@NgModule({\n declarations: [],\n imports: [RouterModule.forRoot(\n routes,\n {\n onSameUrlNavigation: 'reload',\n\n enableTracing: !environment.production\n }\n )],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { MultiCurrencyService } from './modules/services/multi-currency/multi-currency.service';\nimport { Component, OnInit } from '@angular/core';\nimport { ProgramSettingsService } from './modules/services/program-settings/program-settings.service';\nimport {UserService} from \"@neo-reward-engine-web/auth\";\nimport {Router} from \"@angular/router\";\nimport {NGXLogger} from \"ngx-logger\";\n\n@Component({\n selector: 'neo-reward-engine-web-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n /**\n *\n * @param programSettingsService injected to retrieve programsettings if user is logged in\n * @param multiCurrencyService\n * @param userService\n * @param router\n * @param logger\n */\n constructor(\n private readonly programSettingsService: ProgramSettingsService,\n private readonly multiCurrencyService: MultiCurrencyService,\n private readonly userService: UserService,\n private readonly router: Router,\n private readonly logger: NGXLogger,\n ) {}\n\n /** retrieve program settings on init */\n ngOnInit(): void {\n this.programSettingsService.retrieveAllProgramSpecificSettings();\n this.multiCurrencyService.retrieveMutliCurrencyParams();\n this.performRedirectIfRequired();\n }\n\n private performRedirectIfRequired(): void {\n if (this.userService.userState$.value !== null) {\n this.logger.debug('AppComponent.performRedirectIfRequired() - user is present');\n this.router.navigate(['overview']);\n }\n }\n}\n","\n\n
\n \n
\n
\n\n","import { APP_INITIALIZER, NgModule, ErrorHandler } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { AppComponent } from './app.component';\nimport {\n HttpClient,\n HttpClientModule,\n HTTP_INTERCEPTORS,\n} from '@angular/common/http';\nimport { SharedModule } from './modules/shared/shared.module';\nimport { AppRoutingModule } from './app-routing.module';\nimport { NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\nimport { LoggerModule, NGXLogger, NgxLoggerLevel } from 'ngx-logger';\nimport { environment } from '../environments/environment';\nimport {\n AuthConfigService,\n AuthModule,\n AuthService,\n UserService,\n AuthInterceptorService,\n} from '@neo-reward-engine-web/auth';\nimport { Router } from '@angular/router';\nimport { Location, registerLocaleData } from '@angular/common';\nimport { CORE_COMPONENTS } from './modules/core/components/core-decl';\nimport { HotToastModule } from '@ngneat/hot-toast';\nimport { ProgressInfoColumnComponent } from './modules/core/components/mini-dashboard/progress-info-column/progress-info-column.component';\nimport { ProgressInfoCardComponent } from './modules/core/components/mini-dashboard/progress-info-card/progress-info-card.component';\nimport { MiniDashboardTextboxComponent } from './modules/core/components/mini-dashboard/mini-dashboard-textbox/mini-dashboard-textbox.component';\nimport { UnregisteredPointsComponent } from './modules/core/components/mini-dashboard/unregistered-points/unregistered-points.component';\nimport localeFr from '@angular/common/locales/fr';\nimport localeDe from '@angular/common/locales/de';\nimport { MultilanguageService } from './modules/services/multilanguage/multilanguage.service';\nimport * as Sentry from '@sentry/angular-ivy';\nimport {\n ApiModule,\n Configuration,\n AuthService as EcomAuthService,\n} from '@neo-reward-engine-web/ecom-api';\nimport { RedirectModalComponent } from './modules/core/components/redirect-modal/redirect-modal.component';\nimport {\n APP_USER_FOOTER_CONFIG_PROVIDER,\n APP_USER_SERVICE_CONFIG_PROVIDER\n} from \"./modules/services/multilanguage/user-service.config\";\n\nregisterLocaleData(localeFr, localeDe);\n\nconst authInterceptorServiceFactory = (\n config: AuthConfigService,\n userService: UserService\n) => {\n return new AuthInterceptorService(config, userService);\n};\n\nconst authServiceFactory = (\n config: AuthConfigService,\n httpClient: HttpClient,\n userService: UserService,\n logger: NGXLogger,\n location: Location,\n ecomAuthService: EcomAuthService\n) => {\n return new AuthService(\n config,\n httpClient,\n userService,\n logger,\n location,\n ecomAuthService\n );\n};\n\nconst appInitFactory = (\n authService: AuthService,\n multilanguageService: MultilanguageService\n) => {\n multilanguageService.upsertLanguage();\n return () => authService.initAuth();\n};\n\n@NgModule({\n declarations: [\n AppComponent,\n ...CORE_COMPONENTS,\n ProgressInfoColumnComponent,\n ProgressInfoCardComponent,\n MiniDashboardTextboxComponent,\n UnregisteredPointsComponent,\n RedirectModalComponent,\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n SharedModule,\n AppRoutingModule,\n NgbNavModule,\n LoggerModule.forRoot({\n level: environment.enableLog ? NgxLoggerLevel.DEBUG : NgxLoggerLevel.OFF,\n }),\n AuthModule.forRoot({\n casBaseUrl: environment.casBaseUrl,\n redirectUri: environment.redirectUri,\n casClientId: environment.casClientId,\n idmLogoutUrl: environment.idmLogoutUrl,\n idmAccessTokenUrl: environment.idmAccessTokenUrl,\n idmRedirectUri: environment.idmRedirectUri,\n idmAdminRedirectUri: environment.idmAdminRedirectUri,\n secret: environment.secret,\n publicUrls: environment.publicUrls,\n backendUrl: environment.backendUrl,\n rewardTokenStorageKey: environment.rewardTokenStorageKey,\n rewardUserStorageKey: environment.rewardUserStorageKey,\n }),\n HotToastModule.forRoot(),\n ApiModule.forRoot(\n () =>\n new Configuration({\n basePath: environment.backendUrl,\n withCredentials: false,\n })\n ),\n ],\n providers: [\n // {\n // provide: LOCALE_ID,\n // useValue: 'fr-FR'\n // },\n {\n provide: AuthService,\n useFactory: authServiceFactory,\n deps: [\n AuthConfigService,\n HttpClient,\n UserService,\n NGXLogger,\n Location,\n EcomAuthService,\n ],\n },\n {\n provide: APP_INITIALIZER,\n useFactory: appInitFactory,\n deps: [AuthService, MultilanguageService],\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useFactory: authInterceptorServiceFactory,\n deps: [AuthConfigService, UserService, Router],\n multi: true,\n },\n {\n provide: ErrorHandler,\n useValue: Sentry.createErrorHandler({\n showDialog: false, // capture user information for prod only\n }),\n },\n // Contains the default mapping in case the user is not logged in\n // and default browser language is a single token (e.g. 'de')\n // so de is mapped to de-DE\n // provide all languages that are supported by the app and being configured in\n // the transloco config, but use only one for the mapping of a single token\n // (e.g. 'de' -> 'de-DE', but not a second one like 'de' -> 'de-AT')\n // that means Austria has to live with the default language of Germany\n // all non existing languages are going to be mapped to the default language\n APP_USER_SERVICE_CONFIG_PROVIDER([\n 'de-DE',\n 'en-US',\n 'fr-FR',\n 'pl-PL',\n 'es-ES',\n 'id-ID',\n 'th-TH'\n ]),\n APP_USER_FOOTER_CONFIG_PROVIDER(),\n ],\n bootstrap: [AppComponent],\n exports: [],\n})\nexport class AppModule {}\n","import { MultiCurrencyService } from './../../../services/multi-currency/multi-currency.service';\nimport { Component, Input } from '@angular/core';\nimport { RedemptionCartDataService } from '../../../services/redemption-cart/redemption-cart-data.service';\nimport { CartItemDto, RewardProductDto } from '@neo-reward-engine-web/ecom-api';\nimport { UserStatsService } from '../../../services/user-stats/user-stats.service';\n\n/**\n * Cart Item Row Display Component\n * (+ add, remove functionality)\n *\n * also used in checkout display on order details\n * (with disabled edit)\n */\n@Component({\n selector: 'neo-reward-engine-web-redemption-cart-items',\n templateUrl: './redemption-cart-items.component.html',\n styleUrls: ['./redemption-cart-items.component.scss'],\n})\nexport class RedemptionCartItemsComponent {\n private _rewardProduct!: CartItemDto;\n\n /** disables edit of quantity, true in checkout order details false in cart */\n @Input()\n public disableEdit?: boolean;\n /** wether or not copayment is active */\n @Input()\n public showCoPayment?: boolean;\n /** currency code to show in table if copayment is active */\n @Input()\n public currencyCode?: string;\n /** currency locale to show in table if copayment is active */\n @Input()\n public currencyLocale?: string;\n\n public newQuantity!: number;\n\n /**\n *\n * @param rewardCartService injected to edit quantity of products in cart\n */\n constructor(\n public rewardCartService: RedemptionCartDataService,\n private multiCurrencyService: MultiCurrencyService,\n private userService: UserStatsService\n ) {\n //\n }\n\n get rewardProduct(): CartItemDto {\n return this._rewardProduct;\n }\n /** input parameter of the product information */\n @Input()\n set rewardProduct(value: CartItemDto) {\n this._rewardProduct = value;\n this.newQuantity = this._rewardProduct.quantity;\n\n }\n /**\n * calculate quantity to send to service,\n * because cart service takes addition and removal in same parameter\n */\n get calculateQuantityParamater(): number {\n return (this._rewardProduct.quantity - this.newQuantity) * -1;\n }\n\n get userContext$() {\n return this.userService.userContext$;\n }\n\n /**\n * send new quantity to cart service\n */\n public sendCartItemChange(event : Event) {\n this.newQuantity = Number((event.target as HTMLInputElement).value);\n if (this.calculateQuantityParamater != 0) {\n this.rewardCartService.rewardProductToCart(\n this.rewardProduct.product,\n this.calculateQuantityParamater\n );\n }\n }\n\n public nonCashBenefitOfProductItem(\n productItem: RewardProductDto | undefined\n ): number {\n if (!productItem) {\n return 0;\n }\n return (\n productItem.nonCashBenefit.find(\n (x) => x.currency === this.multiCurrencyService.currencyCode\n )?.value || 0\n );\n }\n\n public localeNameOfProductItem(\n productItem: RewardProductDto,\n locale: string\n ): string {\n return productItem.name.find((x) => x.context === locale)?.value || '';\n }\n}\n","
\n
\n\n
\n
\n
\n \"Responsive\n
\n
\n

\n {{ localeNameOfProductItem(rewardProduct.product, userContext.userInfo!.language!) }}\n

\n
\n
\n
\n\n
\n
\n
\n

\n {{t('redemptionCart.articleDetailList.header.quantity')}}:\n

\n
\n
\n \n {{rewardProduct.quantity}}\n
\n
\n
\n
\n
\n\n
\n
\n
\n {{t('redemptionCart.articleDetailList.header.price')}}:\n
\n
\n

\n {{ rewardProduct.product.points}} {{t('redemptionCart.points')}}\n

\n

\n + {{ nonCashBenefitOfProductItem(rewardProduct.product) |currency: currencyCode :'symbol':\n '1.2-2':currencyLocale}}\n

\n
\n
\n
\n\n
\n
\n
\n {{t('redemptionCart.articleDetailList.header.subtotal')}}:\n
\n
\n

\n {{ ((rewardProduct.product.points || 0)*(rewardProduct.quantity||0)) || 0 }}\n {{t('redemptionCart.points')}}\n

\n

\n + {{ ( nonCashBenefitOfProductItem(rewardProduct.product) * (rewardProduct.quantity || 0) ) |currency: currencyCode :'symbol':\n '1.2-2':currencyLocale}}\n

\n
\n
\n \n
\n
\n
\n\n
\n
\n","import { MenuService } from '../../../services/menu/menu.service';\nimport {Component, Inject} from '@angular/core';\nimport { FooterService } from '../../../services/footer/footer.service';\nimport { Observable } from 'rxjs';\nimport { Menu } from '../../../services/menu/menu.model';\nimport {RedirectModalComponent} from \"../redirect-modal/redirect-modal.component\";\nimport {NgbModal, NgbModalOptions} from \"@ng-bootstrap/ng-bootstrap\";\nimport {\n APP_USER_FOOTER_CONFIG,\n TFooterConfig\n} from \"../../../services/multilanguage/user-service.config\";\nimport {TranslocoService} from \"@ngneat/transloco\";\nimport { SsuInformation } from '@neo-reward-engine-web/ecom-api';\n\n/**\n * Footer Display Component for all sites\n * (e.g. includes media, ssu information, menu points)\n */\n@Component({\n selector: 'neo-reward-engine-web-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\nexport class FooterComponent {\n private modalOptions: NgbModalOptions = { centered: true, size: 'md' };\n /**\n *\n * @param footerConfig injected to generate ssu information for footer\n * @param _footerService injected to generate ssu information for footer\n * @param _menuService injected to generate menu for in app menu points (in page routing)\n * @param modalService injected to open eShop redirect modal\n * @param translocoService injected to translate footer\n */\n constructor(\n @Inject(APP_USER_FOOTER_CONFIG) private readonly footerConfig: Map,\n private _footerService: FooterService,\n private _menuService: MenuService,\n private modalService: NgbModal,\n private readonly translocoService: TranslocoService\n ) {\n this._footerService.retrieveSsuInfo();\n }\n\n /** information of the ssu of the logged in user */\n get footerInformation$(): Observable {\n return this._footerService.ssuInfo$;\n }\n /** to generate in app menu points in footer (e.g. overview page only if user can't redeem) */\n get menuInformation$(): Observable {\n return this._menuService.menuConfig$;\n }\n /** to see if user has permission to redeem */\n get canRedeem$() {\n return this._menuService.canRedeem$;\n }\n /** to see if user is registered */\n get isLoggedInAndRegistered(): boolean {\n return this._menuService.isLoggedIn && this._menuService.isRegistered;\n }\n /** year to display in copyright of footer */\n get currentYear(): number {\n return new Date().getFullYear();\n }\n\n openRedirectModal(){\n const modalRef = this.modalService.open(RedirectModalComponent,this.modalOptions);\n modalRef.componentInstance._redirectType = 'CONTACT';\n }\n\n /** takes ssuinfo and returns only language part of locale */\n getCurrentLanguage(ssuInfo: SsuInformation): string {\n return ssuInfo.defaultLocale?.split(\"-\")[0] || \"en\";\n }\n\n get footerConfig4ActiveLang(): TFooterConfig | undefined {\n const activeLang = this.translocoService.getActiveLang();\n if (this.footerConfig.has(activeLang)) {\n return this.footerConfig.get(activeLang);\n }\n return undefined;\n }\n}\n","
\n\n
\n
\n\n
\n

{{t('footer.categoriesHeader')}}

\n {{t(menuPoint.label)}}\n {{t('myCartFlyOutHeadline')}}\n
\n\n \n \n \n \n\n\n
\n

{{t('footer.otherHeadline')}}

\n {{t('footer.contactForm')}}\n
\n\n
\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
\n\n \n
\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
\n
\n
\n
\n
\n\n
\n

© {{currentYear}} Heidelberger Druckmaschinen AG

\n
\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { UserService } from '@neo-reward-engine-web/auth';\nimport { RedemptionCartDataService } from '../../../services/redemption-cart/redemption-cart-data.service';\nimport { RewardProductDto } from '@neo-reward-engine-web/ecom-api';\nimport { UserStatsService } from '../../../services/user-stats/user-stats.service';\n\n/**\n * Mini Cart Display Component to use in flyout of header\n */\n@Component({\n selector: 'neo-reward-engine-web-mini-cart',\n templateUrl: './mini-cart.component.html',\n styleUrls: ['./mini-cart.component.scss'],\n})\nexport class MiniCartComponent {\n /**\n * gets passed the login status of the user\n */\n @Input()\n public isLoggedIn!: boolean | undefined;\n /**\n * outputs close event to navigate to cart via cart button\n */\n @Output()\n public closeDialogEvent = new EventEmitter();\n /**\n *\n * @param rewardCartService injected to allow removal of items from cart via flyout\n * @param userService injected to know the user (e.g. if hes registered and enabled)\n */\n constructor(\n private userService: UserService,\n public rewardCartService: RedemptionCartDataService,\n private userStatsService: UserStatsService\n ) {\n //\n }\n\n /** (e.g. show cart data or alternative text?) */\n get isRegistered(): boolean {\n return this.userService.userState$.value?.status === 'Enabled';\n }\n /** show the total point value of the current cart */\n get totalPointsCart(): number {\n return this.rewardCartService.calculatePointsLocal();\n }\n\n /**\n * routes to cart if dialogue is explicitly closed,\n * hover out of flyout does not trigger this\n */\n clickOnCart() {\n this.closeDialogEvent.emit('close');\n }\n /**\n * removes quantity one by one until 0\n * @param product which product is removed\n */\n removeOneFromCart(product: RewardProductDto) {\n this.rewardCartService.rewardProductToCart(product, -1);\n }\n\n get userContext$() {\n return this.userStatsService.userContext$;\n }\n\n public localeNameOfProductItem(\n productItem: RewardProductDto,\n locale: string\n ): string {\n return productItem.name.find((x) => x.context === locale)?.value || '';\n }\n}\n","
\n
\n
\n

{{ t('myCartFlyOutHeadline') }}

\n
\n

{{ t('myCartFlyOutNoItems') }}

\n
\n
\n \n
\n
\n {{ t('myCartFlyOutHeadline') }}\n

{{rewardCartService.cartItemsCount}} {{t('mobileMenu.miniCartItem')}}

\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n {{item?.quantity || 0}}x {{ localeNameOfProductItem(item.product, userContext.userInfo!.language!) }}
\n {{((item?.quantity || 0) * (item?.product?.points || 0)) || 0}} {{t('shared.pointsShortHand')}}\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n {{t('redemptionCart.overviewInfo.totalAmount')}}\n
\n
\n {{totalPointsCart}} {{t('shared.pointsShortHand')}}\n
\n
\n
\n \n
\n
\n
\n
\n
","import { Component } from '@angular/core';\nimport { MenuService } from '../../../../services/menu/menu.service';\n/**\n * display component for the text in the header dashboard\n * (e.g. heidelberg rewards explanation)\n */\n@Component({\n selector: 'neo-reward-engine-web-mini-dashboard-textbox',\n templateUrl: './mini-dashboard-textbox.component.html',\n styleUrls: ['./mini-dashboard-textbox.component.scss'],\n})\nexport class MiniDashboardTextboxComponent {\n /**\n *\n * @param menuService injects menu service to get generic route translation key to be used in template\n */\n constructor(private menuService: MenuService) {}\n\n get headerTranslationKey() {\n return this.menuService.getRouterTranslation('header.miniDashboard.');\n }\n}\n","\n
\n {{t(headerTranslationKey+'.headline')}}\n
\n
\n {{t(headerTranslationKey+'.content')}}\n
\n
\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MenuService } from '../../../../services/menu/menu.service';\n/**\n * DEPRECATED header component\n * old call to action card\n */\n@Component({\n selector: 'neo-reward-engine-web-progress-info-card',\n templateUrl: './progress-info-card.component.html',\n styleUrls: ['./progress-info-card.component.scss'],\n})\nexport class ProgressInfoCardComponent {\n /**\n *\n * @param router injected to navigate with the\n * @param menuService injected to get current route as translation key\n */\n constructor(private router: Router, private menuService: MenuService) {\n //\n }\n\n /** return translation key for card content based on generic route translation key */\n get cardTextTranslationKey() {\n switch (this.menuService.getRouterTranslation('')) {\n case 'rewards': {\n return 'header.miniDashboard.infoColumn.cardTextHowTo';\n }\n default: {\n return 'header.miniDashboard.infoColumn.cardTextBrowse';\n }\n }\n }\n\n /** navigate by clicking on the cart depending on the current route (e.g. from anywhere except rewards to rewards, from rewards to reward tier status) */\n navigateWithCard(): void {\n if (this.cardTextTranslationKey.includes('HowTo')) {\n this.router.navigate(['reward-tier-status'], {\n queryParamsHandling: 'preserve',\n });\n } else {\n this.router.navigate(['rewards'], { queryParamsHandling: 'preserve' });\n }\n }\n}\n","
\n
\n {{t(cardTextTranslationKey)}}\n
\n \n \n
","import { Component } from '@angular/core';\nimport { UserStatsService } from '../../../../services/user-stats/user-stats.service';\n\n@Component({\n selector: 'neo-reward-engine-web-progress-info-column',\n templateUrl: './progress-info-column.component.html',\n styleUrls: ['./progress-info-column.component.scss'],\n})\nexport class ProgressInfoColumnComponent {\n /**\n *\n * @param userStatsService injected to retrieve user account balance\n */\n constructor(public userStatsService: UserStatsService) {\n //\n }\n\n get userBalance$() {\n return this.userStatsService.userBalance$;\n }\n\n /**\n * to display the last refresh time in header dashboard\n * @param date last time of data refresh\n * @returns formatted date string of input date\n */\n getDateTime(date: string | undefined): string {\n if (date && new Date(date).getFullYear() > 2000) {\n const returnDate = new Date(date);\n return (\n returnDate.toLocaleDateString(navigator.language) +\n ' ' +\n returnDate.getHours() +\n ':' +\n returnDate.getMinutes()\n );\n } else {\n return '-';\n }\n }\n}\n","
\n
\n
{{t('header.miniDashboard.infoColumn.availablePoints')}}
\n
\n
\n
\n {{(userBalance$ | async)?.pointBalance}}\n
\n
\n
\n
\n {{t('header.miniDashboard.infoColumn.lastUpdate')}} \n {{getDateTime(update.lastUpdate)}}\n
\n
\n
\n
 
\n
\n
","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UserService } from '@neo-reward-engine-web/auth';\nimport { ToastService } from '../../../../services/toast/toast.service';\nimport {ProgramSettingsService} from \"../../../../services/program-settings/program-settings.service\";\n/**\n * Display Component that is shown if the user account isn't registered yet\n * same place as points but now with button call to action to register instead of points\n */\n@Component({\n selector: 'neo-reward-engine-web-unregistered-points',\n templateUrl: './unregistered-points.component.html',\n styleUrls: ['./unregistered-points.component.scss'],\n})\n//TODO check if we could remove this component - it has been removed since we do not want to show the CTA in the header anymore\nexport class UnregisteredPointsComponent {\n\n private toastParameter = {\n toastConfig: { autoClose: false, dismissible: true, duration: 5000 },\n placeholder: undefined,\n };\n /**\n *\n * @param userService injected to get the state of the user account (e.g. registration status)\n * @param router injected to route from header to registration formula\n * @param toastService injected to notify users that aren't allowed to register the account (e.g. no main contact)\n * @param programSettings injected to check if there is an active reward program\n */\n constructor(\n private userService: UserService,\n private router: Router,\n private toastService: ToastService,\n private programSettings: ProgramSettingsService\n ) {}\n\n /**\n *\n * @returns the transloco key for the button in the header (e.g. translates to Unregistered if user account is unregistered)\n */\n getRegisterButtonStatusTKey(): string {\n return (\n 'register.registerBtn.' +\n (this.userService.userState$.value?.status || 'Unregistered')\n );\n }\n /**\n * called from template button to register the unregistered account from header\n */\n navigateToRegister() {\n if(!this.programIsActive && this.hasProgram){\n this.toastService.showInfoMessage('register.registration.noProgram', this.toastParameter);\n return;\n }\n if (this.userService.userState$.value?.isMainContact) {\n this.router.navigate(['register'], { queryParamsHandling: 'preserve' });\n } else if (this.userService.userState$.value?.isMainContact === false) {\n this.toastService.showInfoMessage('register.noMainContact');\n } else {\n window.location.href = window.location.protocol + \"//\" + window.location.host + '/register';\n }\n }\n\n get programIsActive(): boolean {\n return this.programSettings.programSettings$.value?.enabled || false;\n }\n\n get hasProgram(): boolean {\n return !(this.programSettings.programSettings$.value === undefined);\n }\n}\n","
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n {{t('header.unregisteredDashboard.registerToCollect')}}\r\n
\r\n \r\n
\r\n","import { UserAccountSwitchComponent } from './../user-account-switch/user-account-switch.component';\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { MenuService } from '../../../services/menu/menu.service';\nimport { UserStatsService } from '../../../services/user-stats/user-stats.service';\nimport { UserRoleSettingsComponent } from '../user-role-settings/user-role-settings.component';\nimport { UserContext } from '@neo-reward-engine-web/ecom-api';\nimport {Subject, Subscription} from \"rxjs\";\nimport {RedirectModalComponent} from \"../redirect-modal/redirect-modal.component\";\n\nexport type LoginButtonState = 'LOGIN' | 'LOGOUT';\n/**\n * Mobile Navbar in footer\n * only menu, account and roles - rest (e.g. tier circle) still in header as in desktop\n */\n@Component({\n selector: 'neo-reward-engine-web-mobile-navbar-footer',\n templateUrl: './mobile-navbar-footer.component.html',\n styleUrls: ['./mobile-navbar-footer.component.scss'],\n})\nexport class MobileNavbarFooterComponent implements OnInit, OnDestroy {\n private _userState: UserContext | null = null;\n private _logout$ = new EventEmitter();\n private _login$ = new EventEmitter();\n private _loginState: LoginButtonState = 'LOGOUT';\n private modalOptions: NgbModalOptions = { centered: true, size: 'md' };\n private _closeFired$ = new EventEmitter();\n private close$ = new Subject();\n private closeSubs: Subscription | undefined;\n\n /**\n *\n * @param modalService inject to open settings as a modal (e.g. account switch and role settings)\n */\n constructor(\n private modalService: NgbModal,\n private userStatsService: UserStatsService\n ) {\n // do nothing.\n }\n\n ngOnInit(): void {\n this.closeSubs = this.close$.subscribe(value => {\n if (value) {\n this._closeFired$.emit();\n }\n })\n }\n\n @Input()\n set userState(value: UserContext | null) {\n if (value) {\n this._loginState = 'LOGIN';\n } else {\n this._loginState = 'LOGOUT';\n }\n this._userState = value;\n }\n get userState(): UserContext | null {\n return this._userState;\n }\n\n get relatedAccounts(): number {\n return this.userState?.userInfo?.relatedAccounts?.length || 0;\n }\n get userBalance$() {\n return this.userStatsService.userBalance$;\n }\n get loginState(): LoginButtonState {\n return this._loginState;\n }\n @Output()\n get logout$(): EventEmitter {\n return this._logout$;\n }\n @Output()\n get login$(): EventEmitter {\n return this._login$;\n }\n\n @Output()\n get closeFired$(): EventEmitter {\n return this._closeFired$;\n }\n\n\n public onLoginClick(state: LoginButtonState): void {\n if (state === 'LOGIN') {\n this._logout$.emit();\n } else {\n this._login$.emit();\n }\n }\n /**\n * template triggered to open the uer role settings modal\n */\n openUserRoleSettings() {\n this.modalService.open(UserRoleSettingsComponent, this.modalOptions);\n }\n /**\n * template triggered to open the effective account switch modal\n */\n openEffectiveAccountSwitcher() {\n if (this.relatedAccounts > 1) {\n const modalRef = this.modalService.open(\n UserAccountSwitchComponent,\n this.modalOptions\n );\n modalRef.componentInstance.userContext = this.userState;\n modalRef.componentInstance.close$ = this.close$;\n }\n }\n\n openRedirectModal(){\n const modalRef = this.modalService.open(RedirectModalComponent,this.modalOptions);\n modalRef.componentInstance._redirectType = 'REGISTER';\n }\n\n ngOnDestroy(): void {\n this.closeSubs?.unsubscribe();\n }\n\n}\n","
\n

{{ t('header.userInfoLogin.myAccountFlyOutHeadline') }}

\n \n

{{ t('header.userInfoLogin.myAccountFlyOutSub') }}

\n
    \n
  • {{ t('header.userInfoLogin.myAccountFlyOutPoint1') }}
  • \n
  • {{ t('header.userInfoLogin.myAccountFlyOutPoint2') }}
  • \n
  • {{ t('header.userInfoLogin.myAccountFlyOutPoint3') }}
  • \n
\n
\n \n
1}\">{{t('shared.welcome')}} {{userState?.userInfo?.accountName}}
\n
\n \n {{(userBalance$ | async)?.pointBalance}} {{t('shared.rewardPoints')}}\n
\n
\n {{t('shared.userMgmt')}} \n
\n
\n \n \n {{ t('shared.loginButtonLabel') }}\n \n \n {{t('shared.logoutButtonLabel')}}\n \n \n
\n

{{ t('header.userInfoLogin.myAccountFlyOutNoAccount') }}

\n {{ t('header.userInfoLogin.myAccountFlyOutRegister')\n }}\n
\n
\n","import { ProgramSettingsService } from '../../../services/program-settings/program-settings.service';\nimport { UserContext } from '@neo-reward-engine-web/ecom-api';\nimport { AfterViewInit, Component, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport {\n UserService,\n redirectToCas,\n AuthConfigService, createIdmRedirectUrl,\n} from '@neo-reward-engine-web/auth';\nimport { Observable, Subscription } from 'rxjs';\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\nimport { MenuService } from '../../../services/menu/menu.service';\nimport { UserStatsService } from '../../../services/user-stats/user-stats.service';\nimport { RedemptionCartDataService } from '../../../services/redemption-cart/redemption-cart-data.service';\nimport { environment } from '../../../../../environments/environment';\nimport {NGXLogger} from \"ngx-logger\";\nimport {RedirectModalComponent} from \"../redirect-modal/redirect-modal.component\";\nimport {NgbModal, NgbModalOptions} from \"@ng-bootstrap/ng-bootstrap\";\n\n/**\n * Navbar Component\n * holds alot of logic due to the content of the mini dashboard\n * also handles:\n * the cart flyout as child, logout/login functionality, effective account switch and role settings\n */\n@Component({\n selector: 'neo-reward-engine-web-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss'],\n})\nexport class NavbarComponent implements OnInit, AfterViewInit, OnDestroy {\n /**\n * some user status variables, exposed to template via getters\n */\n private loggedIn$: boolean | undefined;\n private userName$: string | undefined;\n private isRegistered$: boolean | undefined;\n private status$: string | undefined;\n private _canRedeem = false;\n private modalOptions: NgbModalOptions = { centered: true, size: 'md' };\n\n subscriptions: Subscription = new Subscription();\n\n /**\n *\n * @param config injected to get necessary info for cas redirect url builder\n * @param router injected to create route based resizing of navbar\n * @param menuService injected to get menu points to build navigation\n * @param userStatsService injected to get general user data (e.g. if is enabled or not -> menu structure)\n * @param cartService injected to reset cart observables and retrigger simulation if user reloads on checkout page\n * @param userService injected for login and logout capability\n * @param programSettingsService injected to retrieve program settings e.g. if tier system is active\n * @param logger\n * @param modalService injected to redirect to eshop on contact form button\n */\n constructor(\n private readonly config: AuthConfigService,\n public readonly router: Router,\n public menuService: MenuService,\n public userStatsService: UserStatsService,\n public cartService: RedemptionCartDataService,\n private userService: UserService,\n private programSettingsService: ProgramSettingsService,\n private readonly logger: NGXLogger,\n private modalService: NgbModal\n ) {\n this.subscriptions.add(this.userStatsService.userContext$.subscribe({\n next: (userContext) => {\n this.loggedIn$ =\n userContext?.userInfo?.userType === 'Community' ||\n userContext?.userInfo?.userType === 'Admin';\n this.userName$ = userContext?.userInfo?.contactName;\n this.isRegistered$ = userContext?.rewardAccount?.status === 'Enabled';\n this.status$ = userContext?.userInfo?.status;\n this._canRedeem = userContext?.userInfo?.canRedeem ?? false;\n this.onResize();\n this.checkStickyConditions();\n },\n }));\n\n this.subscriptions.add(router.events.subscribe((val) => {\n this.checkStickyConditions();\n this.logger.debug('NavbarComponent.ctor() routerState', val, this.router.url);\n\n if (val instanceof NavigationStart) {\n if (this.router.url.includes('checkout')) {\n this.userStatsService.retrieveUserBalance();\n this.userStatsService.retrieveTierData();\n this.cartService.resetCartObservables();\n }\n\n // reset pageScroll if sticky header\n const myNavbar = document.getElementById('myNavbar');\n const myHeader = document.getElementById('myHeader');\n if (myNavbar && myHeader && myNavbar.classList.contains('isSticky')) {\n if (window.innerWidth > 1024) {\n const topScroll =\n myHeader.scrollHeight +\n (myNavbar.scrollHeight - myHeader.scrollHeight - 58);\n window.scrollTo({ top: topScroll });\n } else {\n const topScroll =\n myHeader.scrollHeight +\n (myNavbar.scrollHeight - myHeader.scrollHeight - 58 + 25);\n window.scrollTo({ top: topScroll });\n }\n }\n }\n // navigate back to overview if user tries to access tier system without enabled tiers in program\n if(val instanceof NavigationEnd){\n if(this.router.url.includes('tier') && !this.tierSystemActive){\n this.router.navigate(['overview']);\n }\n }\n }));\n\n this.userStatsService.retrieveUserBalance();\n this.subscriptions.add(this.userStatsService.userBalance$.subscribe(() => {\n this.onResize();\n this.checkStickyConditions();\n }));\n\n this.userStatsService.retrieveTierData();\n this.subscriptions.add(this.userStatsService.tierData$.subscribe(() => {\n this.onResize();\n this.checkStickyConditions();\n }));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n get isSticky() {\n const myNavbar = document.getElementById('myNavbar');\n return myNavbar && myNavbar.classList.contains('isSticky');\n }\n\n get userState$(): Observable {\n return this.userStatsService.userContext$;\n }\n\n get loggedIn(): boolean | undefined {\n return this.loggedIn$;\n }\n\n get isRegistered(): boolean {\n return this.isRegistered$ || false;\n }\n get status(): string | undefined {\n return this.status$;\n }\n\n get userName() {\n return this.userName$;\n }\n\n get userBalance$() {\n return this.userStatsService.userBalance$;\n }\n\n get tierSystemActive() {\n return this.programSettingsService.programSettings$.value?.tierSystem.enabled;\n }\n\n get canRedeem(): boolean {\n return this._canRedeem;\n }\n\n /**\n * make sure to retrieve user context and resize flyout carts on mobile viewport\n */\n ngOnInit() {\n this.menuService.resizeFlyoutMobile(window.innerHeight);\n this.loggedIn$ = this.menuService.isLoggedIn;\n this.userStatsService.getUserContext();\n }\n /**\n * check and resize header if necessary to make sure header dashboard is displayed correctly\n */\n ngAfterViewInit() {\n this.onResize();\n this.checkStickyConditions();\n\n // add the sticky tracker\n const tid = setInterval(() => {\n const stickyElm = document.getElementById('myNavbar');\n\n const observer = new IntersectionObserver(\n ([e]) =>\n e.target.classList.toggle('isSticky', e.intersectionRatio < 0.75),\n { threshold: [0, 0.25, 0.5, 0.75, 1] }\n );\n if (stickyElm) {\n clearInterval(tid);\n observer.observe(stickyElm);\n }\n }, 10);\n }\n /**\n * login through cas via redirect url to overview page with user locale\n */\n public logIn(): void {\n redirectToCas(\n createIdmRedirectUrl(\n this.config.config.casBaseUrl,\n this.config.config.casClientId,\n `${window.location.href}`,\n this.config.config?.locale ?? 'en',\n this.config.config.idmRedirectUri\n )\n );\n }\n /**\n * TODO: CAS Single Sign Logout does not work properly (clarify why?)\n * TODO: We have to discuss in the context of HEI+ (and zaikio)\n * We will just destroy the user state for now\n */\n public logOut(): void {\n this.userService.logout();\n this.menuService.hoverAccount = false;\n this.menuService.mobileMenuToggleMyAccount = false;\n this.menuService.hoverAccount = false;\n window.location.href =\n `${environment.casBaseUrl}${environment.idmLogoutUrl}${document.location.origin}`;\n }\n /**\n * if the close event is triggered from mini cart component (click on cart button)\n * navigate to cart and close the flyout\n */\n closeMiniCartAndNavigateCart() {\n this.menuService.hoverShoppingCart = false;\n this.router.navigate(['/cart'], { queryParamsHandling: 'preserve' });\n }\n /**\n * resize the header elements depending on the viewport\n * calculation had to be done via typescript instead of css\n * because of the content size in the header dashboard\n */\n @HostListener('window:resize')\n onResize() {\n const tid = setInterval(() => {\n const myHeader = document.getElementById('myHeader');\n const myNavbar = document.getElementById('myNavbar');\n if (myHeader && myNavbar) {\n clearInterval(tid);\n if (window.innerWidth > 1024) {\n myNavbar.style.top =\n '-' + (myNavbar.scrollHeight - myHeader.scrollHeight - 70) + 'px';\n } else {\n myNavbar.style.top =\n '-' +\n (myNavbar.scrollHeight - myHeader.scrollHeight - 70 + 25) +\n 'px';\n }\n this.adjustFooterSpacer();\n }\n this.menuService.resizeFlyoutMobile(window.innerHeight);\n }, 10);\n }\n /**\n * is used to determine if the user is on a page where the navbar should be auto sticky (no expanded header dashboard) or not\n */\n checkStickyConditions() {\n if (\n this.router.url.includes('cart') ||\n this.router.url.includes('register') ||\n this.router.url.includes('contact-form')\n ) {\n this.switchStickyNavbar(false);\n } else {\n this.switchStickyNavbar(true);\n }\n }\n\n /**\n * because of the way the header is build and the dynamic size of the elements\n * we can't stick the footer via css, so there is the footerSpacer div\n * which gets its height via this TS function\n */\n adjustFooterSpacer() {\n const footerSpacer = document.getElementById('footerSpacer');\n if (footerSpacer) {\n footerSpacer.style.height = '0px';\n\n if (document.body.scrollHeight < window.innerHeight) {\n footerSpacer.style.height =\n window.innerHeight - document.body.scrollHeight + 'px';\n } else if (document.body.scrollHeight > window.innerHeight) {\n footerSpacer.style.height = '0px';\n if (footerSpacer.style.height != ('0px' || undefined)) {\n this.adjustFooterSpacer();\n }\n }\n }\n }\n /**\n * switches the state of the navbar depending on how far the user has scrolled in the page and which site he is on\n * @param sticky wether or not the navbar should be switchted to sticky mode or non sticky mode\n */\n switchStickyNavbar(sticky: boolean) {\n const tid = setInterval(() => {\n const myHeader = document.getElementById('myHeader');\n const myNavbar = document.getElementById('myNavbar');\n const myContentContainer = document.getElementById('contentContainer');\n if (myHeader && myNavbar && myContentContainer) {\n clearInterval(tid);\n if (sticky) {\n myNavbar.style.position = 'sticky';\n myContentContainer.style.marginTop = '0px';\n } else {\n if (this.loggedIn) {\n myNavbar.style.position = 'fixed';\n if (window.innerWidth > 1024) {\n myContentContainer.style.marginTop = 70 + 'px';\n } else {\n myContentContainer.style.marginTop = 70 - 25 + 'px';\n }\n } else {\n myNavbar.style.position = 'fixed';\n myNavbar.style.marginTop = -25 + 'px';\n myContentContainer.style.marginTop = 70 - 25 + 'px';\n }\n }\n this.onResize();\n }\n this.menuService.resizeFlyoutMobile(window.innerHeight);\n }, 10);\n }\n /**\n *\n * @returns the route to be displayed in the header image link, is overview for logged in users only\n */\n getHeaderRouter(): string {\n if (this.loggedIn) {\n return '/overview';\n } else {\n return '';\n }\n }\n\n public onAccountSwitcherClose(): void {\n this.menuService.mobileMenuToggleMyAccount = !this.menuService.mobileMenuToggleMyAccount;\n }\n\n get mini(){\n return window.innerWidth == 1024;\n }\n\n openRedirectModal(){\n const modalRef = this.modalService.open(RedirectModalComponent,this.modalOptions);\n modalRef.componentInstance._redirectType = 'CONTACT';\n }\n}\n","
\n \n
\n
\n
\n \n \n \n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n {{(userBalance$ | async)?.pointBalance}}\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n \n
\n
\n {{t('mobileMenu.contact')}}\n
\n
\n
\n
\n \n
\n
\n {{t('mobileMenu.profile')}}\n
\n
\n
\n
\n \n
\n
\n {{t('mobileMenu.cart')}}\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {NgbActiveModal} from \"@ng-bootstrap/ng-bootstrap\";\nimport {CommunityUserService, Eshop} from \"@neo-reward-engine-web/ecom-api\";\nimport {EnvironmentService} from \"../../../services/environment/environment.service\";\nimport {Observable, Subscription} from \"rxjs\";\nimport {map, tap} from \"rxjs/operators\";\nimport {Router} from \"@angular/router\";\nimport {ToastService} from \"../../../services/toast/toast.service\";\n\ntype RedirectType = 'CONTACT' | 'REGISTER';\n\n@Component({\n selector: 'neo-reward-engine-web-redirect-modal',\n templateUrl: './redirect-modal.component.html',\n styleUrls: ['./redirect-modal.component.scss'],\n})\n\nexport class RedirectModalComponent implements OnInit, OnDestroy {\n\n @Input() _redirectType!: RedirectType;\n private _eShops: any[]| null = [];\n eShop: Eshop | null = null;\n private sub: Subscription = new Subscription();\n\n constructor(\n private modalService: NgbActiveModal,\n private communityUserService: CommunityUserService,\n private environmentService: EnvironmentService,\n private toastService: ToastService\n ) {\n this.sub = this.communityUserService.getAllEshops().subscribe(res => {\n this._eShops = res;\n }\n );\n }\n\n ngOnInit(): void {\n //\n }\n\n onSubmit(){\n if(this.eShop){\n if(this._redirectType === 'CONTACT'){\n window.location.href = this.eShop.contactFormUrl;\n }else{\n window.location.href = this.eShop.registrationUrl;\n }\n }else{\n this.toastService.showErrorMessage('header.userInfoLogin.eShopRedirect.noSalesOrgMsg')\n }\n }\n\n get eShops(){\n return this._eShops;\n }\n\n get redirectType(){\n return this._redirectType;\n }\n\n close() {\n this.modalService.close();\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}\n","
\n\n
\n
\n
\n {{t('header.userInfoLogin.eShopRedirect.contactFormHeadline')}}\n
\n \n
\n {{t('header.userInfoLogin.eShopRedirect.registerHeadline')}}\n
\n
\n
\n \n
\n
\n {{t('header.userInfoLogin.eShopRedirect.salesOrganization')}}\n
\n \n \n
\n
\n {{shop.countryWithLanguage}}\n
\n
\n \n
\n
\n
\n
\n\n\n \n \n
\n","import { UserContext } from '@neo-reward-engine-web/ecom-api';\nimport {Component, Input} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport {UserService} from \"@neo-reward-engine-web/auth\";\nimport {AccountSwitchService} from \"../../../services/account-switch/account-switch.service\";\nimport {Router} from \"@angular/router\";\nimport {Subject} from \"rxjs\";\n/**\n * user effective account switch modal component\n */\n@Component({\n selector: 'neo-reward-engine-web-user-account-switch',\n templateUrl: './user-account-switch.component.html',\n styleUrls: ['./user-account-switch.component.scss'],\n})\nexport class UserAccountSwitchComponent {\n /**\n * gets input from navbar components (e.g. normal or mobile)\n * so that modal doesnt re-retrieve the possible accounts\n */\n @Input()\n userContext!: UserContext;\n\n @Input()\n close$: Subject | undefined;\n\n\n /**\n *\n * @param modalService injected to be able to close the modal again\n * @param userService User Service to update User Info\n * @param accountSwitchService Account Switch option\n * @param router\n */\n constructor(\n private modalService: NgbActiveModal,\n private readonly userService: UserService,\n private readonly accountSwitchService: AccountSwitchService,\n private readonly router: Router,\n ) {}\n\n\n close() {\n this.close$?.next(true);\n this.modalService.close();\n }\n /**\n * loads the page new with effective account id query parameter in url\n * -> gets picked up by interceptor and refreshes user countext with different account\n * @param accountId selected account id from template selection\n */\n async selectEffectiveAccount(accountId: string) {\n await this.accountSwitchService.switchAccount(accountId);\n await this.router.navigate(['overview']);\n\n this.close$?.next(true);\n this.modalService.close();\n }\n}\n","
\n\n
\n
\n
\n {{t('header.userInfoLogin.effectiveAccount.headline')}}\n
\n
\n \n
\n\n\n
\n
\n {{t('header.userInfoLogin.effectiveAccount.infoText')}}\n
\n
\n
\n\n
\n
{{t('header.userInfoLogin.effectiveAccount.accountName')}}
\n
\n\n
6}\">\n
\n
\n
\n
{{account.name}}
\n
\n
\n
({{account.sapAccountNumber}})
\n
\n
\n
\n
\n
\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport { UserStatsService } from '../../../services/user-stats/user-stats.service';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { UserRoleSettingsComponent } from '../user-role-settings/user-role-settings.component';\nimport { UserAccountSwitchComponent } from '../user-account-switch/user-account-switch.component';\nimport {CommunityUserService, UserContext} from '@neo-reward-engine-web/ecom-api';\nimport {Subject, Subscription} from \"rxjs\";\nimport {RedirectModalComponent} from \"../redirect-modal/redirect-modal.component\";\n\nexport type LoginButtonState = 'LOGIN' | 'LOGOUT';\n/**\n * user info login flyout in desktop header\n */\n@Component({\n selector: 'neo-reward-engine-web-user-info-login',\n templateUrl: './user-info-login.component.html',\n styleUrls: ['./user-info-login.component.scss'],\n})\nexport class UserInfoLoginComponent implements OnInit, OnDestroy {\n private _userState: UserContext | null = null;\n private _logout$ = new EventEmitter();\n private _login$ = new EventEmitter();\n private _loginState: LoginButtonState = 'LOGOUT';\n\n private modalOptions: NgbModalOptions = { centered: true, size: 'md' };\n\n private close$ = new Subject();\n private closeSubs: Subscription | undefined;\n private _closeFired$ = new EventEmitter();\n\n /**\n *\n * @param modalService injected to open settings as a modal (e.g. account switch and role settings)\n * @param userStatsService injected to make user account stats available to template via getters\n */\n constructor(\n private modalService: NgbModal,\n private userStatsService: UserStatsService,\n ) {\n //\n }\n\n ngOnInit(): void {\n this.closeSubs = this.close$.subscribe(value => {\n if (value) {\n this._closeFired$.emit();\n }\n })\n }\n\n @Input()\n set userState(value: UserContext | null) {\n if (value) {\n this._loginState = 'LOGIN';\n } else {\n this._loginState = 'LOGOUT';\n }\n this._userState = value;\n }\n get userState(): UserContext | null {\n return this._userState;\n }\n\n get userBalance$() {\n return this.userStatsService.userBalance$;\n }\n get relatedAccounts(): number {\n return this.userState?.userInfo?.relatedAccounts?.length || 0;\n }\n get loginState(): LoginButtonState {\n return this._loginState;\n }\n @Output()\n get logout$(): EventEmitter {\n return this._logout$;\n }\n @Output()\n get login$(): EventEmitter {\n return this._login$;\n }\n\n @Output()\n get closeFired$(): EventEmitter {\n return this._closeFired$;\n }\n\n /**\n * handles login / logout interaction\n * @param state state of the loggin button (login || logout)\n */\n public onLoginClick(state: LoginButtonState): void {\n if (state === 'LOGIN') {\n this._logout$.emit();\n } else {\n this._login$.emit();\n }\n }\n /**\n * template triggered to open the uer role settings modal\n */\n openUserRoleSettings() {\n this.modalService.open(UserRoleSettingsComponent, this.modalOptions);\n }\n /**\n * template triggered to open the effective account switch modal\n */\n openEffectiveAccountSwitcher() {\n if (this.relatedAccounts > 1) {\n const modalRef = this.modalService.open(\n UserAccountSwitchComponent,\n this.modalOptions\n );\n modalRef.componentInstance.userContext = this.userState;\n modalRef.componentInstance.close$ = this.close$;\n }\n }\n\n openRedirectModal(){\n const modalRef = this.modalService.open(RedirectModalComponent,this.modalOptions);\n modalRef.componentInstance._redirectType = 'REGISTER';\n }\n\n ngOnDestroy(): void {\n this.closeSubs?.unsubscribe();\n }\n}\n","
\n \n
\n

{{ t('header.userInfoLogin.myAccountFlyOutHeadline') }}

\n
\n \n

{{ t('header.userInfoLogin.myAccountFlyOutSub') }}

\n
    \n
  • {{ t('header.userInfoLogin.myAccountFlyOutPoint1') }}
  • \n
  • {{ t('header.userInfoLogin.myAccountFlyOutPoint2') }}
  • \n
  • {{ t('header.userInfoLogin.myAccountFlyOutPoint3') }}
  • \n
\n
\n \n
1}\">\n {{t('shared.welcome')}} {{userState?.userInfo?.accountName}}\n
\n
\n \n {{(userBalance$ | async)?.pointBalance}} {{t('shared.rewardPoints')}}\n
\n
\n \n \n {{t('shared.userMgmt')}}\n \n
\n
\n \n \n {{ t('shared.loginButtonLabel') }}\n \n \n {{ t('shared.logoutButtonLabel') }}\n \n \n \n
\n

\n {{ t('header.userInfoLogin.myAccountFlyOutNoAccount') }}\n

\n \n {{ t('header.userInfoLogin.myAccountFlyOutRegister') }}\n \n
\n
\n
\n
\n
\n
\n","import { EnvironmentService } from './../../../services/environment/environment.service';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { NGXLogger } from 'ngx-logger';\nimport { Subscription } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { loggerFn } from '../../../services/common-helper/pipe.helper';\nimport { StandardErrorHandlerService } from '../../../services/error-handler/standard-error-handler.service';\nimport { LoadIndicatorService } from '../../../services/load-indicator/load-indicator.service';\nimport { ToastService } from '../../../services/toast/toast.service';\nimport {\n CommunityUserService,\n UserPermissionDto,\n} from '@neo-reward-engine-web/ecom-api';\n\n/**\n * User Role Settings Modal Component\n * allows setting of canRedeem property for each user of effective account\n * if user is main contact of effective account\n * TODO: remove the direct api access from communityuserservice\n * create service that handles this (e.g. RoleService)\n */\n@Component({\n selector: 'neo-reward-engine-web-user-role-settings',\n templateUrl: './user-role-settings.component.html',\n styleUrls: ['./user-role-settings.component.scss'],\n})\nexport class UserRoleSettingsComponent implements OnInit, OnDestroy {\n private _formResponsibles!: FormGroup;\n private _userPermissionDtos: UserPermissionDto[] = [];\n private userSubscription: Subscription = new Subscription();\n\n subscriptions: Subscription = new Subscription();\n\n /**\n *\n * @param modalService injected to close the modal from within\n * @param formBuilder\n * @param communityUserService injected to send the finished permission form request\n * @param loadIndicatorService injected to have spinner until submit request has response\n * @param toastService injected to give user feedback after sending settings request\n * @param logger\n * @param _errorHandler\n * @param environmentService injected to feed environment to user service\n */\n constructor(\n private modalService: NgbActiveModal,\n private readonly formBuilder: FormBuilder,\n private readonly communityUserService: CommunityUserService,\n private loadIndicatorService: LoadIndicatorService,\n private toastService: ToastService,\n private readonly logger: NGXLogger,\n private _errorHandler: StandardErrorHandlerService,\n private readonly environmentService: EnvironmentService\n ) {}\n\n get formResponsibles() {\n return this._formResponsibles;\n }\n get userPermissionDtos() {\n return this._userPermissionDtos;\n }\n\n close() {\n this.modalService.close();\n }\n /**\n * handles load indicator and sets the user permissions via communityuserservice and form data\n */\n onSubmit() {\n this.loadIndicatorService.showLoadIndicator();\n this.subscriptions.add(this.communityUserService\n .setUsers(this._userPermissionDtos)\n .pipe(\n finalize(() => {\n this.loadIndicatorService.hideLoadIndicator();\n })\n )\n .subscribe({\n next: (response) => {\n loggerFn(this.logger, 'CommunityUserService.setUsers successfull');\n this.toastService.showSuccessMessage(\n 'header.userInfoLogin.userRoleSettings.successMsg'\n );\n },\n error: (error) => {\n this._errorHandler.handleError(\n error,\n 'CommunityUserService.setUsers'\n );\n loggerFn(this.logger, 'CommunityUserService.setUsers failed');\n },\n }));\n this.modalService.close();\n }\n /**\n * modifies the accountuser redeem permissions from template click\n * @param checked wether or not the checkbox is checked (= user has redeem permission or not)\n * @param index index of account users array (to set only the changed user)\n */\n onCheckBoxChange(checked: boolean, index: number) {\n this._userPermissionDtos[index].canRedeem = checked;\n }\n\n /**\n * builds the form and create the usercontext subscription\n * to build the information of the accountusers for the form\n */\n ngOnInit() {\n this._formResponsibles = this.formBuilder.group({});\n this.userSubscription = this.communityUserService\n .geAccountUserPermissions()\n .subscribe({\n next: (userPermissionDtos: UserPermissionDto[]) => {\n if (userPermissionDtos) {\n this._userPermissionDtos = userPermissionDtos;\n }\n this._userPermissionDtos.forEach((v) => {\n //if(v.isMainContact){v.canRedeem = true};\n this._formResponsibles.addControl(\n this._userPermissionDtos.indexOf(v).toFixed(0),\n new FormControl(v.canRedeem)\n );\n });\n },\n error: (error) => {\n this._errorHandler.handleError(\n error,\n 'CommunityUserService.accountUsers'\n );\n loggerFn(this.logger, 'CommunityUserService.accountUsers failed');\n },\n });\n }\n\n /**\n * make sure to remove subscriptions\n */\n ngOnDestroy(): void {\n this.userSubscription.unsubscribe();\n this.subscriptions.unsubscribe();\n }\n}\n","
\n\n
\n
\n
\n {{t('header.userInfoLogin.userRoleSettings.responsibles')}}\n
\n
\n \n
\n\n\n
\n
\n {{t('header.userInfoLogin.userRoleSettings.responsiblesTxt')}}
\n
{{t('header.userInfoLogin.userRoleSettings.responsiblesNote1')}} () {{t('header.userInfoLogin.userRoleSettings.responsiblesNote2')}}
\n
\n
\n
\n\n
\n
{{t('header.userInfoLogin.userRoleSettings.name')}}
\n
{{t('header.userInfoLogin.userRoleSettings.rightToRedeem')}}
\n
\n\n
6}\">\n
\n
\n
{{user.contactName}}
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n\n\n
\n\n\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { MultiCurrencyService } from '../../../services/multi-currency/multi-currency.service';\nimport { RedemptionCartDataService } from '../../../services/redemption-cart/redemption-cart-data.service';\nimport { RewardProductDto, UserContext } from '@neo-reward-engine-web/ecom-api';\nimport { ProgramSettingsService } from '../../../services/program-settings/program-settings.service';\nimport { Observable } from 'rxjs';\nimport { UserStatsService } from '../../../services/user-stats/user-stats.service';\n\n/**\n * product detail page modal component with add to cart functionality and image slider\n */\n@Component({\n selector: 'neo-reward-engine-web-product-detail-page',\n templateUrl: './product-detail-page.component.html',\n styleUrls: ['./product-detail-page.component.scss'],\n})\nexport class ProductDetailPageComponent implements OnInit {\n @Input()\n public productItem!: RewardProductDto;\n\n public showAnimation = false;\n public animationTimeout: ReturnType | undefined;\n public quantity = 1;\n public imgSliderIndex = 0;\n public imgIndividualIndex = 0;\n public numberOfImagesToShow = 3 - 1;\n\n /**\n *\n * @param cartDataService injected for add to cart functionality\n * @param activeModal injected to be able to close itself when modal\n * @param router injected to be able to navigate to other pages\n * @param multiCurrencyService injected to get localized currency for currency pipe\n * @param programSettingsService injected to retrieve basic program settings e.g. copayment\n * @param userStatsService injected to retrieve user context\n */\n constructor(\n public readonly cartDataService: RedemptionCartDataService,\n public readonly activeModal: NgbActiveModal,\n private readonly router: Router,\n private readonly multiCurrencyService: MultiCurrencyService,\n private readonly programSettingsService: ProgramSettingsService,\n private readonly userStatsService: UserStatsService\n ) {\n //\n }\n\n ngOnInit(): void {\n this.multiCurrencyService.retrieveMutliCurrencyParams();\n }\n\n get locale() {\n return this.multiCurrencyService.locale;\n }\n get currency() {\n return this.multiCurrencyService.currencyCode;\n }\n get currFormat() {\n return this.multiCurrencyService.currencyFormat;\n }\n get hasCoPayment() {\n return this.programSettingsService.programSettings$.value?.copayment;\n }\n get userContext$(): Observable {\n return this.userStatsService.userContext$;\n }\n\n nonCashBenefitOfProductItem(productItem: RewardProductDto): number {\n return productItem.nonCashBenefit\n .find(x => x.currency === this.multiCurrencyService.currencyCode)?.value || 0;\n }\n\n localeNameOfProductItem(\n productItem: RewardProductDto,\n locale: string\n ): string {\n return productItem.name.find((x) => x.context === locale)?.value || '';\n }\n localeDescriptionOfProductItem(\n productItem: RewardProductDto,\n locale: string\n ): string {\n return productItem.description?.find((x) => x.context === locale)?.value || '';\n }\n\n productsNext(arrayLength: number) {\n if (arrayLength - 2 >= this.imgSliderIndex + this.numberOfImagesToShow) {\n this.imgSliderIndex++;\n }\n\n }\n\n productsPrevious() {\n if (this.imgSliderIndex > 0) {\n this.imgSliderIndex--;\n }\n }\n /** to navigate to image by clicking on the image instead of slider navigation */\n selectImg(i: number) {\n this.imgIndividualIndex = i;\n }\n /** for image slider */\n swipeRight() {\n if (\n this.productItem.productImages &&\n this.imgIndividualIndex < this.productItem.productImages.length - 1\n ) {\n this.imgIndividualIndex++;\n } else {\n this.imgIndividualIndex = 0;\n }\n }\n /** for image slider */\n swipeLeft() {\n if (this.imgIndividualIndex > 0) {\n this.imgIndividualIndex--;\n } else if (this.productItem.productImages) {\n this.imgIndividualIndex = this.productItem.productImages.length - 1;\n }\n }\n\n close() {\n this.activeModal.close();\n }\n\n clickOnCart() {\n this.activeModal.close();\n this.router.navigate(['/cart'], { queryParamsHandling: 'preserve' });\n }\n /** adds to cartdataservice cart */\n addToCart(productItem: RewardProductDto) {\n this.showAnimation = true;\n this.animationTimeout = setTimeout(() => {\n this.showAnimation = false;\n this.cartDataService.rewardProductToCart(productItem, this.quantity);\n this.activeModal.close();\n }, 1750);\n }\n}\n","
\n
\n
\n
\n {{localeNameOfProductItem(productItem, userContext.userInfo!.language!)}}\n
\n
\n \n
\n\n
\n
1\">\n \n
\n
    \n
  • \n \n
  • \n
\n
\n \n\n \n 3\">\n \n
= (0 + imgSliderIndex)\" >\n \n
\n
\n \n 3\"\n (click) = \"productsNext(productItem.productImages!.length)\"\n style = \"cursor: pointer;\">\n
\n\n
1,'col-md-6':productItem.productImages!.length === 1 }\">\n 1\" (click) = \"swipeLeft()\" style = \"position: relative;top: -8px; cursor: pointer;\">\n
\n \n
\n\n\n 1\"\n (click)=\"swipeRight()\" style=\"position: relative;top: -8px; cursor: pointer;\">\n
\n\n
\n
\n {{localeNameOfProductItem(productItem, userContext.userInfo!.language!)}}\n
\n
\n
\n
\n {{localeDescriptionOfProductItem(productItem, userContext.userInfo!.language!)}}\n
\n
\n {{productItem.points}} {{ t('rewards.productTile.points') }}\n  (+{{nonCashBenefitOfProductItem(productItem)|currency: currency :'symbol':\n '1.2-2':locale}} {{ t('rewards.productTile.copayment') }})\n
\n
\n
\n
\n
\n {{ t('rewards.productTile.quantity') }}:\n
\n
\n \n
\n
\n
\n\n
\n \n
\n \n
\n
\n
\n","import { MultiCurrencyService } from '../../../services/multi-currency/multi-currency.service';\nimport { ProgramSettingsService } from '../../../services/program-settings/program-settings.service';\nimport { Component, Input } from '@angular/core';\nimport { RedemptionCartDataService } from '../../../services/redemption-cart/redemption-cart-data.service';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { ProductDetailPageComponent } from '../product-detail-page/product-detail-page.component';\nimport { RewardProductDto } from '@neo-reward-engine-web/ecom-api';\nimport { UserStatsService } from '../../../services/user-stats/user-stats.service';\nimport {NGXLogger} from \"ngx-logger\";\n\n/**\n * reward gridview item component gets spawned by reward gridview component on reward catalogue page\n * has add to cart functionality and product detail modal if activated\n * TODO: implement activation/deactivation of product detail modal\n */\n@Component({\n selector: 'neo-reward-engine-web-reward-gridview-item',\n templateUrl: './reward-gridview-item.component.html',\n styleUrls: ['./reward-gridview-item.component.scss'],\n})\nexport class RewardGridviewItemComponent {\n @Input()\n public productItem!: RewardProductDto;\n\n public showAnimation = false;\n public animationTimeout: ReturnType | undefined;\n public modalOptions: NgbModalOptions = { centered: true, size: 'lg' };\n\n /**\n *\n * @param cartDataService for add to cart functionality\n * @param modalService to open product detail page modal\n * @param programSettingsService injected to retrieve basic program settings e.g. if productdetails should be shown\n * @param userService injected to retrieve user context\n * @param multiCurrencyService injected to get localized currency for currency pipe\n * @param logger injected for logging\n */\n constructor(\n public readonly cartDataService: RedemptionCartDataService,\n private readonly modalService: NgbModal,\n private readonly programSettingsService: ProgramSettingsService,\n private readonly userService: UserStatsService,\n private readonly multiCurrencyService: MultiCurrencyService,\n private readonly logger: NGXLogger\n ) {}\n\n get imageUrl() {\n return (\n this.productItem.productImages?.[0] ||\n '../../../../../assets/images/no-image.jpg'\n );\n }\n\n get locale() {\n return this.multiCurrencyService.locale;\n }\n get currency() {\n return this.multiCurrencyService.currencyCode;\n }\n get currFormat() {\n return this.multiCurrencyService.currencyFormat;\n }\n\n get hasCoPayment() {\n return this.programSettingsService.programSettings$.value?.copayment;\n }\n\n get userContext$(){\n return this.userService.userContext$;\n }\n\n /** opens product detail page modal with product item info */\n open(): void {\n this.logger.debug('RewardGridviewItemComponent.open() called');\n if (this.programSettingsService.programSettings$.value?.productDetailPage) {\n const modalRef = this.modalService.open(\n ProductDetailPageComponent,\n this.modalOptions\n );\n modalRef.componentInstance.productItem = this.productItem;\n }\n }\n /** adds product to cartdataservice */\n addToCart(productItem: RewardProductDto) {\n this.showAnimation = true;\n this.animationTimeout = setTimeout(() => {\n this.showAnimation = false;\n this.cartDataService.rewardProductToCart(productItem, 1);\n }, 1750);\n }\n\n localeNameOfProductItem(productItem: RewardProductDto, locale: string ): string {\n const name = productItem.name.find(x => x.context === locale)?.value ?? '';\n if (name.length > 50) {\n return `${name.substring(0, 50)}...`;\n }\n return name;\n }\n\n nonCashBenefitOfProductItem(productItem: RewardProductDto): number {\n return productItem.nonCashBenefit.find(x => x.currency === this.multiCurrencyService.currencyCode)?.value || 0;\n }\n}\n","
\n
\n
\n
\n
\n \n \n\n
\n
\n
\n \n
\n
\n

\n {{ translate('rewards.productTile.noPriceData')}}\n

\n
\n
\n
\n

\n {{ translate('rewards.productTile.quantity')}}\n

\n
\n
\n \n
\n \n / {{ translate('rewards.productTile.pieceAbrv')}}\n \n
\n
\n
\n
\n
\n

\n {{productItem.points}} {{ translate('rewards.productTile.points') }}\n

\n

\n \n + {{\n value |currency: currency\n :'symbol':'1.2-2'\n :locale\n }} {{ translate('rewards.productTile.copayment') }}\n \n

\n\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport {NGXLogger} from \"ngx-logger\";\nimport {UserService, UserState} from \"@neo-reward-engine-web/auth\";\nimport {AuthService} from \"@neo-reward-engine-web/ecom-api\";\nimport {environment} from \"../../../../environments/environment\";\nimport {loggerFn} from \"../common-helper/pipe.helper\";\nimport {tap} from \"rxjs\";\nimport {UserStatsService} from \"../user-stats/user-stats.service\";\nimport {Router} from \"@angular/router\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccountSwitchService {\n\n /**\n * ctor\n *\n * @param logger\n * @param userService\n * @param authService\n * @param userStatsService\n * @param router\n */\n constructor(\n private readonly logger: NGXLogger,\n private readonly userService: UserService,\n private readonly authService: AuthService,\n private readonly userStatsService: UserStatsService,\n private readonly router: Router\n\n ) { }\n\n public async switchAccount(\n effectiveAccount: string\n ): Promise {\n return new Promise((resolve, reject) => {\n this.authService.refreshContext(effectiveAccount,).pipe(\n loggerFn(this.logger, 'AccountSwitchService.switchAccount'),\n tap(userInfo => this.userService.upsertUserState({\n sapAccountNumber: userInfo.sapAccountNumber,\n userType: userInfo.userType,\n ssu: userInfo.ssu,\n isMainContact: userInfo.isMainContact,\n status: userInfo.status,\n canRedeem: userInfo.canRedeem,\n relatedSsu: userInfo.relatedSsu,\n accountName: userInfo.accountName,\n contactName: userInfo.contactName,\n isAuthenticated: true,\n isUnauthorized: false\n } as UserState)),\n tap(() => {\n this.userStatsService.getUserContext();\n this.userStatsService.retrieveUserBalance();\n this.userStatsService.retrieveTierData();\n })\n ).subscribe(\n value => resolve(),\n error => resolve()\n );\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport {UserService, UserState} from \"@neo-reward-engine-web/auth\";\nimport {NGXLogger} from \"ngx-logger\";\nimport {map} from \"rxjs/operators\";\nimport {environment} from \"../../../../../environments/environment\";\n\n\n/**\n * Auth Guard that check if logged in user is a community user and is allowed to\n * navigate inside the community page.\n */\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardCommunityGuard implements CanActivate {\n\n /**\n *\n * @param userService injected to check usertype\n * @param router\n * @param logger\n */\n constructor(\n private readonly userService: UserService,\n private readonly router: Router,\n private readonly logger: NGXLogger\n ) {\n //\n }\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | boolean | UrlTree {\n this.logger.debug('AuthGuardCommunityGuard.canActivate() with url: ', window.location.href);\n return this.userService.userState$.pipe(\n map((state: UserState | null) => {\n return !!(state &&\n state.userType === 'Community' &&\n state.status === 'Enabled' &&\n state.canRedeem);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport {UserService} from \"@neo-reward-engine-web/auth\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardUnregisteredGuard implements CanActivate {\n\n /**\n *\n * @param userService injected to check usertype\n * @param router\n */\n constructor(\n private readonly userService: UserService,\n private readonly router: Router\n ) {\n //\n }\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return new Promise((resolve) => {\n /** if user is logged in but not enabled resolve route */\n if (\n this.userService.userState$.value?.userType === 'Community' &&\n this.userService.userState$.value?.status !== 'Enabled'\n ) {\n resolve(true);\n } else if (\n /** if user is logged in but enabled don't resolve route -> dont change menu items but still navigate */\n this.userService.userState$.value?.userType === 'Community' &&\n this.userService.userState$.value?.status === 'Enabled'\n ) {\n this.router.navigate(['/overview'], {\n queryParamsHandling: 'preserve',\n });\n resolve(false);\n } else {\n /** if user is not logged in don't resolve route -> dont change menu items and navigate to landing page*/\n this.router.navigate(['/'], { queryParamsHandling: 'preserve' });\n resolve(false);\n }\n });\n }\n\n}\n","import { NGXLogger } from 'ngx-logger';\nimport { tap } from 'rxjs/operators';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { throwError } from 'rxjs';\n\n/**\n * loggerFn\n *\n * Central logger function for RxJS pipes.\n *\n * @param logger\n * @param functionName\n * @param message\n */\nexport const loggerFn = (\n logger: NGXLogger,\n functionName: string,\n message: string = 'Data logger'\n) => tap((t) => logger.debug(`${message} - ${functionName}: `, t));\n\n/**\n * handleErrorFn\n *\n * Central error handler for RxJS pipes.\n *\n * @param message\n */\nexport const handleErrorFn = (message: string) => {\n return (error: HttpErrorResponse) => {\n let errorMessage = 'Unknown error!';\n if (error.error instanceof ErrorEvent) {\n // Client-side errors\n errorMessage = `Error: ${error.error.message}`;\n } else {\n // Server-side errors\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\n }\n // TODO Once we have a spinner service switch it off\n // if (stopSpinner) {\n // await loadingService.dismiss();\n // }\n\n // TODO Optional thing -> show default error toast to the user\n // const toast = await toastrService\n // .create({header: 'Error',\n // color: 'danger',\n // message: `An error has occurred: ${message} - ${errorMessage}!`,\n // duration: 10000});\n // await toast.present();\n return throwError(() => new Error(errorMessage));\n };\n};\n","import {ToastService} from \"../toast/toast.service\";\nimport {defaultToastParameter} from \"../toast/toast-config.model\";\nimport {MenuService} from \"../menu/menu.service\";\nimport {PublicUserState} from \"./user-state.type\";\n\nexport const showNoRewardUserToast = (toastService: ToastService): void => {\n const toastParams = defaultToastParameter;\n toastParams.toastConfig = {\n autoClose: true,\n dismissible: false,\n duration: 10000,\n };\n toastService.showInfoMessage('auth.noRewardUser', toastParams);\n};\n\nexport const handleAdminUser = (\n redirectUri: string,\n rewardTokenStorageKey: string,\n rewardUserStorageKey: string,\n adminRedirectUrl: string\n): void => {\n if(redirectUri.includes(\"localhost\")){\n sessionStorage.removeItem(rewardTokenStorageKey);\n sessionStorage.removeItem(rewardUserStorageKey);\n }\n window.location.href = adminRedirectUrl;\n};\n\nexport const handleCommunityUserEnabled = (menuService: MenuService): void =>\n menuService.setMenuItems('COMMUNITY');\n\n\nexport const handleCommunityUserUnregistered = (menuService: MenuService): void =>\n menuService.setMenuItems('COMMUNITY-UNREGISTERED');\n\nexport const handleCommunityPublic = (menuService: MenuService): void =>\n menuService.setMenuItems('PUBLIC');\n\n","import { TranslocoService } from '@ngneat/transloco';\nimport { Injectable } from '@angular/core';\nimport { environment } from '../../../../environments/environment';\n\n/**\n * environment service to get environment dependent data like shopurl\n * TODO: build logic that builds shop url based on ssu and locale\n */\n@Injectable({\n providedIn: 'root',\n})\n\nexport class EnvironmentService {\n\n constructor(private readonly translocoService: TranslocoService) {\n }\n\n get backendUrl(): string {\n return environment.backendUrl;\n }\n\n get shopUrl(): string {\n const language = this.translocoService.getActiveLang();\n\n if (language === undefined) {\n return environment.shopUrl;\n }\n\n if (language.includes('US') && !(environment.shopUrl.includes('eshop.heidelberg.com'))) {\n return environment.shopUrl +'closedeshop?directLogin=true';\n }\n\n return environment.shopUrl + language.split('-')[1].toLowerCase()+'?directLogin=true';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ErrorHandler } from './error-handler';\nimport { NGXLogger } from 'ngx-logger';\nimport { ToastService } from '../toast/toast.service';\nimport { HttpErrorResponse } from '@angular/common/http';\n\n/**\n * service that handles errors by showing localized error messages and logging to console\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class StandardErrorHandlerService implements ErrorHandler {\n constructor(\n private readonly logger: NGXLogger,\n private readonly toastService: ToastService\n ) {}\n\n handleError(response: any, source: string): void {\n if (response instanceof HttpErrorResponse) {\n if (response.error instanceof ErrorEvent) {\n // Client error Event has occured\n this.logger.error(\n `Client Error Event occured at: ${source} -> Error Details:`,\n response\n );\n this.toastService.showErrorMessage('shared.technicalError');\n } else {\n // Server Side Error Code received\n this.logger.error(\n `Server Side Error Event occured at: ${source} -> Error Details:`,\n response\n );\n this.toastService.showErrorMessage('shared.technicalError');\n }\n } else {\n // Unknown type of Error\n this.logger.fatal(\n `Unknown type of Error occured at: ${source} -> Error Details:`,\n response\n );\n this.toastService.showErrorMessage('shared.technicalError');\n }\n }\n}\n","import { MenuService } from './../menu/menu.service';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport {\n CommunityUserService,\n SsuInformation,\n} from '@neo-reward-engine-web/ecom-api';\n\n/**\n * footer service that only retrieves account group info to build header links (e.g. social links or tos link)\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FooterService implements OnDestroy {\n private _ssuInfo$ = new BehaviorSubject(null);\n\n subscriptions: Subscription = new Subscription();\n\n /**\n *\n * @param _communityUserService injected to retrieve account group data\n * @param menuService injected to check if user is logged in\n */\n constructor(\n private _communityUserService: CommunityUserService,\n private readonly menuService: MenuService\n ) {}\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n get ssuInfo$(): Observable {\n return this._ssuInfo$.asObservable();\n }\n\n /** just retrieves the info, info is then available via ssuInfo$ observable to subscribers */\n public retrieveSsuInfo(): void {\n if (this.menuService.isLoggedIn) {\n this.subscriptions.add(this._communityUserService\n .ssuInformation()\n .subscribe((ssuInformation) => {\n this._ssuInfo$.next(ssuInformation);\n\n }));\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * central loading indicator service\n * TODO: Replace loading indicator with the nicer looking one from the eshop\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadIndicatorService {\n private counter = 0;\n private _isVisible = false;\n\n constructor() {\n //\n }\n\n get isVisible(): boolean {\n return this._isVisible;\n }\n\n public showLoadIndicator(): void {\n this.counter++;\n if (this.counter > 0 && !this._isVisible) {\n this._isVisible = true;\n }\n }\n\n public hideLoadIndicator(): void {\n this.counter--;\n if (this.counter === 0) {\n this._isVisible = false;\n }\n }\n}\n","/** navigation area definitions */\nexport type NavigationArea =\n | 'PUBLIC'\n | 'COMMUNITY'\n | 'ADMIN'\n | 'COMMUNITY-UNREGISTERED';\n\n/** menuitem to build config */\nexport interface MenuItem {\n routerTarget: string;\n label: string;\n}\n\n/** menu interface to build config */\nexport interface Menu {\n navigationArea: NavigationArea;\n menuItems: MenuItem[];\n}\n\n/** menu configuration blueprint to choose from depending on user type */\nexport const menuConfiguration = new Map([\n [\n 'PUBLIC',\n {\n navigationArea: 'PUBLIC',\n menuItems: [\n {\n label: 'menuBar.navLinkOverview',\n routerTarget: '/overview',\n },\n ],\n },\n ],\n [\n 'COMMUNITY',\n {\n navigationArea: 'COMMUNITY',\n menuItems: [\n {\n label: 'menuBar.navLinkOverview',\n routerTarget: '/overview',\n },\n {\n label: 'menuBar.navLinkRedeemPoints',\n routerTarget: '/rewards',\n },\n {\n label: 'menuBar.navLinkTierStatus',\n routerTarget: '/reward-tier-status',\n },\n {\n label: 'menuBar.navLinkPointBalance',\n routerTarget: '/reward-point-history',\n },\n ],\n },\n ],\n [\n 'COMMUNITY-UNREGISTERED',\n {\n navigationArea: 'COMMUNITY-UNREGISTERED',\n menuItems: [\n {\n label: 'menuBar.navLinkPointRegister',\n routerTarget: '/register',\n },\n ],\n },\n ],\n]);\n","import { ProgramSettingsService } from './../program-settings/program-settings.service';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Menu, menuConfiguration, NavigationArea } from './menu.model';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { UserService } from '@neo-reward-engine-web/auth';\nimport { Router } from '@angular/router';\nimport {\n CommunityUserService,\n UserContext,\n} from '@neo-reward-engine-web/ecom-api';\n\n/**\n * menu service that not only builds the menu data but also handles the different viewport sizing\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService implements OnDestroy {\n private _menuConfig = menuConfiguration;\n private _menuConfig$ = new BehaviorSubject({\n navigationArea: 'PUBLIC',\n menuItems: [\n {\n label: 'menuBar.navLinkPointRegister',\n routerTarget: '/',\n },\n ],\n } as Menu);\n private loggedIn: boolean;\n private registered: boolean;\n private _canRedeem$ = new BehaviorSubject(null);\n private userContextSub = new BehaviorSubject(null);\n\n public hoverAccount = false;\n public hoverShoppingList = false;\n public hoverShoppingCart = false;\n public mobileMenuToggle = false;\n public mobileMenuToggleMyAccount = false;\n public isNavFoldedIn = false;\n public flyoutHeight: number | undefined;\n\n subscriptions: Subscription = new Subscription();\n\n /**\n *\n * @param userService injected to retrieve usertype and status to build menu points accordingly\n * @param router\n * @param communityUserService injected to retrieve the canredeem permission of the user\n * @param programSettingsService\n */\n constructor(\n private readonly userService: UserService,\n private readonly router: Router,\n private readonly communityUserService: CommunityUserService,\n private readonly programSettingsService: ProgramSettingsService\n ) {\n this.loggedIn =\n this.userService.userState$.value?.userType === 'Community' ||\n this.userService.userState$.value?.userType === 'Admin';\n\n this.registered = this.userService.userState$.value?.status === 'Enabled';\n\n this.retrieveCanRedeemState();\n }\n\n ngOnDestroy(): void {\n this.userContextSub.unsubscribe();\n this.subscriptions.unsubscribe();\n }\n\n get menuConfig$() {\n return this._menuConfig$;\n }\n\n get isLoggedIn() {\n return this.loggedIn;\n }\n\n get isRegistered() {\n return this.registered;\n }\n\n get getIsNavFoldedIn() {\n return this.isNavFoldedIn;\n }\n\n get isInCheckout(): boolean {\n return this.router.url.includes('checkout');\n }\n\n get isInCart(): boolean {\n return this.router.url.includes('cart');\n }\n\n get canRedeem$() {\n return this._canRedeem$;\n }\n\n public setMenuItems(navigationArea: NavigationArea): void {\n const navArea = this._menuConfig.get(navigationArea);\n if (navArea !== undefined) {\n // TODO Tier system filter is not reactive this could cause a race condition\n // TODO Consider to use a pipe with subscription in order to await arrival of Program Settings\n if(this.programSettingsService.programSettings$.value?.tierSystem.enabled){\n this._menuConfig$.next(navArea);\n }else{\n const navWithoutTiers = {\n navigationArea: navArea.navigationArea,\n menuItems: navArea.menuItems.filter(x => !x.routerTarget.includes(\"tier\"))\n };\n this._menuConfig$.next(navWithoutTiers);\n }\n }\n }\n\n public resizeFlyoutMobile(innerHeight: number) {\n if (window.innerWidth < 768) {\n this.flyoutHeight = innerHeight - 60;\n } else {\n this.flyoutHeight = innerHeight - 202;\n }\n }\n\n public getRouterTranslation(prefix: string): string {\n switch (this.router.url) {\n case '/rewards': {\n return prefix + 'rewards';\n }\n case '/reward-tier-status': {\n return prefix + 'rewardTierStatus';\n }\n case '/reward-point-history': {\n return prefix + 'rewardPointHistory';\n }\n default: {\n return prefix + 'overview';\n }\n }\n }\n\n retrieveCanRedeemState() {\n if (this.loggedIn) {\n this.subscriptions.add(this.communityUserService\n .userContext()\n .subscribe((context) =>\n this._canRedeem$.next(context.userInfo?.canRedeem)\n ));\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { registerLocaleData } from '@angular/common';\nimport { Observable, Subscription, map, switchMap } from 'rxjs';\nimport localeFr from '@angular/common/locales/fr';\nimport localeEnAu from '@angular/common/locales/en-AU'\nimport localeEnNz from '@angular/common/locales/en-NZ'\nimport localeEnIn from '@angular/common/locales/en-IN'\nimport localeId from '@angular/common/locales/id'\nimport localeJp from '@angular/common/locales/ja'\nimport localeKr from '@angular/common/locales/ko'\nimport localeMy from '@angular/common/locales/my'\nimport localeEnPh from '@angular/common/locales/en-PH'\nimport localeEnSg from '@angular/common/locales/en-SG'\nimport localeTw from '@angular/common/locales/twq'\nimport localeTh from '@angular/common/locales/th'\nimport localeEsBR from '@angular/common/locales/es-BR'\nimport localeEnDk from '@angular/common/locales/en-DK'\nimport localeFi from '@angular/common/locales/fi'\nimport localeDe from '@angular/common/locales/de';\nimport localeSe from '@angular/common/locales/se'\nimport localeDeCh from '@angular/common/locales/de-CH'\nimport localeEnGB from '@angular/common/locales/en-GB';\nimport localeDeAT from '@angular/common/locales/de-AT';\nimport localeCz from '@angular/common/locales/cs';\nimport localeEe from '@angular/common/locales/ee';\nimport localeHu from '@angular/common/locales/hu';\nimport localeLt from '@angular/common/locales/lt';\nimport localeLv from '@angular/common/locales/lv';\nimport localePL from '@angular/common/locales/pl'\nimport localeRu from '@angular/common/locales/ru';\nimport localeSk from '@angular/common/locales/sk';\nimport localeUa from '@angular/common/locales/uk';\nimport localeEnZa from '@angular/common/locales/en-ZA';\nimport localeEnCa from '@angular/common/locales/en-CA';\nimport localeEsMx from '@angular/common/locales/es-MX';\n// import localeEnUs from '@angular/common/locales/en-US-POSIX';\nimport localeTr from '@angular/common/locales/tr';\nimport localeNlBe from '@angular/common/locales/nl-BE';\nimport localeIt from '@angular/common/locales/it';\nimport localeNl from '@angular/common/locales/nl';\nimport localeEs from '@angular/common/locales/es';\n\nimport {\n CommunityUserService,\n RewardAccountDto,\n SsuInformation,\n} from '@neo-reward-engine-web/ecom-api';\nimport { UserService } from '@neo-reward-engine-web/auth';\n\n\nregisterLocaleData(localeFr, 'FR');\nregisterLocaleData(localeEnAu, 'AU');\nregisterLocaleData(localeEnNz, 'NZ');\nregisterLocaleData(localeEnIn, 'IN');\nregisterLocaleData(localeId, 'ID');\nregisterLocaleData(localeJp, 'JP');\nregisterLocaleData(localeKr, 'KR');\nregisterLocaleData(localeMy, 'MY');\nregisterLocaleData(localeEnPh, 'PH');\nregisterLocaleData(localeEnSg, 'SG');\nregisterLocaleData(localeTw, 'TW');\nregisterLocaleData(localeTh, 'TH');\nregisterLocaleData(localeEsBR, 'BR');\nregisterLocaleData(localeEnDk, 'DK');\nregisterLocaleData(localeFi, 'FI');\nregisterLocaleData(localeDe, 'DE');\nregisterLocaleData(localeSe, 'SE');\nregisterLocaleData(localeDeCh, 'CH');\nregisterLocaleData(localeEnGB, 'GB');\nregisterLocaleData(localeDeAT, 'AT');\nregisterLocaleData(localeCz, 'CZ');\nregisterLocaleData(localeEe, 'EE');\nregisterLocaleData(localeHu, 'HU');\nregisterLocaleData(localeLt, 'LT');\nregisterLocaleData(localeLv, 'LV');\nregisterLocaleData(localePL, 'PL');\nregisterLocaleData(localeRu, 'RU');\nregisterLocaleData(localeSk, 'SK');\nregisterLocaleData(localeUa, 'UA');\nregisterLocaleData(localeEnZa, 'za');\nregisterLocaleData(localeEnCa, 'CA');\nregisterLocaleData(localeEsMx, 'MX');\n// registerLocaleData(localeEnUs, 'US');\nregisterLocaleData(localeTr, 'TR');\nregisterLocaleData(localeNlBe, 'BE');\nregisterLocaleData(localeIt, 'IT');\nregisterLocaleData(localeNl, 'NL');\nregisterLocaleData(localeEs, 'ES');\n\n\n\n/**\n * multi currency service for copayment options\n * TODO: check if currencyformat is needed like this (comment Lauritz)\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MultiCurrencyService {\n private _rewardAccount$: Observable;\n private _ssuInformation$: Observable;\n private _locale = '';\n private _currencyCode = '';\n private _currencyFormat = '1.2-2'; //needed?\n private subscription: Subscription = new Subscription();\n\n /**\n *\n * @param communityUserService injected to get countrycode of billing address\n * @param userService injected to retrieve user state\n */\n constructor(\n private readonly communityUserService: CommunityUserService,\n private userService: UserService\n ) {\n this._rewardAccount$ = this.communityUserService.getUserRewardAccount();\n this._ssuInformation$ = this.communityUserService.ssuInformation();\n }\n\n get locale() {\n return this._locale;\n }\n get currencyCode() {\n return this._currencyCode;\n }\n get currencyFormat() {\n return this._currencyFormat;\n }\n\n retrieveMutliCurrencyParams() {\n if(this.userService.userState$.value?.userType != 'Community'){\n return;\n }\n\n this.subscription = this._ssuInformation$.pipe(map((ssuInformation) => {\n if (ssuInformation == null) {\n return;\n }\n\n return ssuInformation.displayCurrencyForAlternativeBillingCurrencies;\n }), switchMap(currencyCode => this._rewardAccount$.pipe(map((rewardAccount) => {\n if (rewardAccount == null) {\n return;\n }\n if (rewardAccount.billingAddress?.countryCode) {\n rewardAccount.billingAddress.countryCode === 'US'\n ? (this._locale = 'en-US') :\n (this._locale = rewardAccount.billingAddress.countryCode);\n }\n this._currencyCode = currencyCode ?? rewardAccount.currency;\n this.subscription.unsubscribe();\n })))).subscribe();\n }\n}\n","import {Inject, Injectable, OnDestroy} from '@angular/core';\nimport { parseUrlParameter, UserService } from '@neo-reward-engine-web/auth';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport {\n UserInfo,\n AuthService as EcomAuthService\n} from '@neo-reward-engine-web/ecom-api';\nimport {NGXLogger} from \"ngx-logger\";\nimport {APP_USER_SERVICE_CONFIG} from \"./user-service.config\";\n\n/**\n * Sets Language of the User after Loging in for transloco\n *\n * TODO: Circular dependency between lib and app going to be removed later\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class MultilanguageService implements OnDestroy {\n private eShopLang$ = new BehaviorSubject(null);\n\n subscriptions: Subscription = new Subscription();\n\n private readonly _defaultLangMap: Map;\n\n /**\n *\n * @param config injected to get transformation to default lang context\n * @param translocoService injected to save the language\n * @param userService injected to check user state\n * @param ecomAuthService injected to get user info\n * @param logger injected for logging\n */\n constructor(\n @Inject(APP_USER_SERVICE_CONFIG) private readonly config: string[],\n private readonly translocoService: TranslocoService,\n private readonly userService: UserService,\n private readonly ecomAuthService: EcomAuthService,\n private readonly logger: NGXLogger\n ) {\n this._defaultLangMap = this.config.reduce((map, lang) =>\n map.set(lang.split('-')[0], lang)\n , new Map());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n upsertLanguage() {\n if (parseUrlParameter(window.location.href).has('lang')) {\n const eShopLang = parseUrlParameter(window.location.href).get('lang');\n this.eShopLang$.next(eShopLang);\n }\n }\n\n setLanguage() {\n const loggedIn =\n this.userService.userState$.value?.userType === 'Community' ||\n this.userService.userState$.value?.userType === 'Admin';\n\n if (loggedIn) {\n this.setLanguageFromUser();\n } else {\n if (\n this.eShopLang$.value &&\n this.translocoService.isLang(this.eShopLang$.value)\n ) {\n this.logger.debug('MultilanguageService - eshopLang&$ is set: ', this.eShopLang$.value);\n this.translocoService.setActiveLang(this.eShopLang$.value);\n } else if (\n navigator.language &&\n this.translocoService.isLang(this.transformSimpleLanguageCode(navigator.language))\n ) {\n this.logger.debug('MultilanguageService - eshopLang&$ is not set, using navigator lang: ', navigator.language);\n this.translocoService.setActiveLang(this.transformSimpleLanguageCode(navigator.language));\n } else {\n this.logger.debug(\n 'MultilanguageService - eshopLang&$ is not set we are using defaultLang from Transloco: ',\n this.translocoService.getDefaultLang()\n );\n this.translocoService.setActiveLang(\n this.translocoService.getDefaultLang()\n );\n }\n }\n }\n /**\n * uses fallback hirachy\n * userlang (backend checks for contact -> account -> ssuInformation) -> browser language -> default (en)\n */\n setLanguageFromUser() {\n const userInfo$: Observable =\n this.ecomAuthService.getUserInfo();\n this.subscriptions.add(userInfo$.pipe(take(1)).subscribe({\n next: (user) => {\n const userLang = this.languageCodeFormatter(user.language);\n if (userLang && this.translocoService.isLang(userLang)) {\n this.translocoService.setActiveLang(userLang);\n } else if (\n navigator.language &&\n this.translocoService.isLang(navigator.language)\n ) {\n this.translocoService.setActiveLang(navigator.language);\n } else {\n this.translocoService.setActiveLang(\n this.translocoService.getDefaultLang()\n );\n }\n },\n error: (error) => console.log(error),\n }));\n }\n /** needed because we have de_DE in salesforce and de-DE here */\n //To the comment above: Ludicrous... This is not salesforce, so why did we care how they store their locales in the first place? Fortunately that dependency is gone now. But we still need this method because we saved the \"language\" like that in the rewardUser.\n languageCodeFormatter(langCode: string | undefined | null) {\n if (!langCode) {\n return null;\n }\n return langCode.replace('_', '-');\n }\n\n transformSimpleLanguageCode(langCode: string):string {\n this.logger.debug('MultilanguageService - transformSimpleLanguageCode: ', langCode, this._defaultLangMap);\n if (langCode.includes('-')) {\n return langCode;\n }\n return this._defaultLangMap.get(langCode) ?? 'en-US';\n }\n}\n","import {InjectionToken, Provider} from \"@angular/core\";\n\nexport const APP_USER_SERVICE_CONFIG\n = new InjectionToken('app.user.service.config');\nexport const APP_USER_SERVICE_CONFIG_PROVIDER = (config: string[]): Provider => ({\n provide: APP_USER_SERVICE_CONFIG,\n useValue: [...config],\n});\n\n/**\n * TFooterConfig\n *\n * SSU specific configuration for the footer\n * properties:\n * aboutUsLink: string - link to the about us page\n * privacyPolicyLink: string - link to the privacy policy page\n * termsOfUseLink: string - link to the terms of use page\n * termsOfSaleLink: string - link to the terms of sale page\n */\nexport type TFooterConfig = {\n termsOfUseLink: string;\n termsOfSaleLink: string;\n aboutUsLink: string;\n privacyPolicyLink: string;\n};\nexport const APP_USER_FOOTER_CONFIG\n = new InjectionToken('app.user.footer.config');\n\n/**\n * APP_USER_FOOTER_CONFIG_PROVIDER\n *\n * Provider for the footer configuration\n * Add the footer configuration for the different languages here\n */\nexport const APP_USER_FOOTER_CONFIG_PROVIDER = (): Provider => ({\n provide: APP_USER_FOOTER_CONFIG,\n useValue: new Map([\n ['en-US', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_US/TermsOfUse.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_US/TermsOfSale.pdf',\n aboutUsLink: 'https://www.heidelberg.com/us/en/company/about_us/company_profile/company_profile.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n }],\n ['de-DE', {\n termsOfUseLink: 'https://www.heidelberg.com/global/media/de/global_media/company___about_us/terms_and_conditions/terms_of_sale_and_delivery_hd.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/de_DE/Servicebedingungen%20HDD.pdf',\n aboutUsLink: 'https://www.heidelberg.com/de/de/index.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/de/media/local_media/ueber_uns/pdf/HDD_Datenschutzinformationen_20200309.pdf',\n }],\n ['de-AT', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/de_AT/AT_servicebedingungen.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/de_AT/AT_verkaufs_lieferbedingungen.pdf',\n aboutUsLink: 'https://www.heidelberg.com/at/de/index.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/de/global_content/privacy_statement.jsp',\n }],\n ['en-CA', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_CA/TermsOfUse.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_CA/TermsOfSale.pdf',\n aboutUsLink: 'https://www.heidelberg.com/ca/en/company/about_us_1/company.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n }],\n ['fr-CA', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/fr_CA/TermsOfUse.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/fr_CA/TermsOfSale.pdf',\n aboutUsLink: 'https://www.heidelberg.com/ca/fr/company/about_us_1/company.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/fr/global_content/privacy_statement.jsp',\n }],\n ['de-CH', {\n termsOfUseLink: '',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/de_CH/general_terms_and_conditions.pdf',\n aboutUsLink: 'https://www.heidelberg.com/ch/de/index.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/de/global_content/privacy_statement.jsp',\n }],\n ['fr-CH', {\n termsOfUseLink: '',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/fr_CH/general_terms_and_conditions.pdf',\n aboutUsLink: 'https://www.heidelberg.com/ch/fr/index.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/fr/global_content/privacy_statement.jsp',\n }],\n ['id-ID', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/id_ID/Terms_of_Use_HID.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/id_ID/Terms_of_Sale_HID.pdf',\n aboutUsLink: 'https://www.heidelberg.com/id/in/about_us/about_us_2/content_page.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n }],\n ['en-MY', {\n termsOfUseLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_MY/OLS-advantage_terms_malaysia.pdf',\n aboutUsLink: 'https://www.heidelberg.com/my/en/company_news/about_us/about_us_1/about_us.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n }],\n ['en-PH', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_PH/HPH_Term_of_Use_Final.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_PH/HPH_Terms_Conditions_final.pdf',\n aboutUsLink: 'https://www.heidelberg.com/ph/en/about_us/overview_3/about_us_overview.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n }],\n ['pl-PL', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/pl_PL/Warunki_Sprzedazy_Materialow_2022.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/pl_PL/Warunki_swiadczenia_uslug_serwisowych.pdf',\n aboutUsLink: 'https://www.heidelberg.com/pl/pl/company/about_us_1/about_us/about_us_1.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/pl/pl/company/privacy_statement.jsp',\n }],\n ['th-TH', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/th_TH/Terms_of_Use_HTH.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/th_TH/Terms_of_Sale_HTH.pdff',\n aboutUsLink: 'https://www.heidelberg.com/th/th/about_us_/about_us/about_heidelberg_thailand.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n }],\n ['en-TH', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_TH/Terms_of_Use_HTH.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_TH/Terms_of_Sale_HTH.pdf',\n aboutUsLink: 'https://www.heidelberg.com/th/th/about_us_/about_us/about_heidelberg_thailand.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n }],\n ['fr-FR', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/fr_FR/Conditions_utilisation_HFR.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/fr_FR/CGV-20170430.pdf',\n aboutUsLink: 'https://www.heidelberg.com/fr/fr/index.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/fr/global_content/privacy_statement.jsp',\n }],\n ['en-SG', {\n termsOfUseLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_SG/HSG_Terms_of_Use_and_Sale.pdf',\n termsOfSaleLink: 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/en_SG/HSG_Terms_of_Use_and_Sale.pdf',\n aboutUsLink: 'https://www.heidelberg.com/sg/en/index.jsp',\n privacyPolicyLink: 'https://www.heidelberg.com/global/en/global_content/privacy_statement.jsp',\n }],\n ])\n});\n","import { ToastService } from './../toast/toast.service';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport {\n CommunityUserService,\n RewardProductDto,\n RewardProgramDto,\n RewardRuleDto,\n} from '@neo-reward-engine-web/ecom-api';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { NGXLogger } from 'ngx-logger';\nimport { StandardErrorHandlerService } from '../error-handler/standard-error-handler.service';\nimport { UserService } from '@neo-reward-engine-web/auth';\n\n/** service that only handles the configuration of the reward program */\n@Injectable({\n providedIn: 'root',\n})\nexport class ProgramSettingsService implements OnDestroy {\n /** private programsettings to be used in retrieval success */\n private _programSettings$: BehaviorSubject =\n new BehaviorSubject(undefined);\n private _programProducts$: BehaviorSubject =\n new BehaviorSubject(undefined);\n\n subscriptions: Subscription = new Subscription();\n\n /**\n *\n * @param communityUserService injected to retrieve settings\n * @param logger injected to log info on success\n * @param standardErrorHandlerService injected to handle http error\n */\n constructor(\n private communityUserService: CommunityUserService,\n private readonly logger: NGXLogger,\n private readonly standardErrorHandlerService: StandardErrorHandlerService,\n private userSerivce: UserService,\n private toastService: ToastService\n ) {\n //\n }\n\n // TODO - a service does never call ngOnDestroy since a singleton will have no lifecycle - clenaup later\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n /** exposes the programSettings */\n get programSettings$(): BehaviorSubject {\n return this._programSettings$;\n }\n\n /** exposes the programRules */\n get programProducts$(): BehaviorSubject {\n return this._programProducts$;\n }\n\n /**\n * retrieves the program settings via communityUserService\n */\n private retrieveProgramSettings(): void {\n this.subscriptions.add(this.communityUserService\n .getUserProgramSettings()\n .subscribe({\n next: (value) => {\n this._programSettings$.next(value);\n if (value && !value.enabled) {\n this.toastService.showInfoMessage('register.registration.noProgram',\n {\n toastConfig: { autoClose: false, dismissible: true }, placeholder: undefined,\n });\n }\n this.logger.info(\n 'ProgramSettingsService.retrieveProgramSettings successfull'\n );\n },\n error: (error) => {\n this.standardErrorHandlerService.handleError(\n error,\n 'ProgramSettingsService.retrieveProgramSettings'\n );\n },\n }));\n }\n\n /**\n * retrieves the program catalogue via communityUserService\n */\n private retrieveProgramCatalogue(): void {\n this.subscriptions.add(this.communityUserService\n .getProgramRewardProducts()\n .subscribe({\n next: (value) => {\n this._programProducts$.next(value);\n this.logger.info(\n 'ProgramSettingsService.retrieveProgramCatalogue successfull'\n );\n },\n error: (error) => {\n this.standardErrorHandlerService.handleError(\n error,\n 'ProgramSettingsService.retrieveProgramCatalogue'\n );\n },\n }));\n }\n\n /** combiner method that calls all retrieval methods if user is logged in */\n public retrieveAllProgramSpecificSettings() {\n if(this.userSerivce.userState$.value?.userType != 'Community'){\n return;\n }\n this.retrieveProgramSettings();\n this.retrieveProgramCatalogue();\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { NGXLogger } from 'ngx-logger';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport {\n CartItemDto,\n CommunityUserService,\n Redeem,\n RewardProductDto,\n RedeemRequest,\n Address\n} from '@neo-reward-engine-web/ecom-api';\nimport { EnvironmentService } from '../environment/environment.service';\n\n/**\n * handles all things regarding the shopping cart\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class RedemptionCartDataService implements OnDestroy{\n private static _redeemResponse$ = new BehaviorSubject(\n undefined\n );\n private static _redeemSimulateResponse$ = new BehaviorSubject<\n Redeem | undefined\n >(undefined);\n private static _redeemCartItems = new Array();\n\n private readonly myRedemptionCartLocalStorageKey: string = 'MyRedemptionCart';\n\n subscriptions: Subscription = new Subscription();\n\n constructor(\n private readonly logger: NGXLogger,\n private readonly communityUserService: CommunityUserService,\n private readonly environmentService: EnvironmentService\n ) {\n /** tries to load a cart from local storage if there is one */\n const localCart = localStorage.getItem(\n this.myRedemptionCartLocalStorageKey\n );\n\n if (this.redeemCartItems.length == 0 && localCart) {\n const localCartAsObject: CartItemDto[] = JSON.parse(localCart);\n this.redeemCartItems = localCartAsObject;\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n get cartItemsCount(): number {\n if (RedemptionCartDataService._redeemCartItems) {\n let count = 0;\n for (const item of RedemptionCartDataService._redeemCartItems) {\n count += item.quantity;\n }\n return count;\n } else {\n return 0;\n }\n }\n\n get redeemCartItems(): CartItemDto[] {\n return RedemptionCartDataService._redeemCartItems;\n }\n private set redeemCartItems(cartItems: CartItemDto[]) {\n localStorage.setItem(\n this.myRedemptionCartLocalStorageKey,\n JSON.stringify(cartItems)\n );\n RedemptionCartDataService._redeemCartItems = cartItems;\n }\n\n get redeemSimulateResponse$(): Observable {\n return RedemptionCartDataService._redeemSimulateResponse$;\n }\n get redeemResponse$(): Observable {\n return RedemptionCartDataService._redeemResponse$;\n }\n /** resets the state of the cart in the application */\n public resetCartObservables(): void {\n RedemptionCartDataService._redeemResponse$ = new BehaviorSubject<\n Redeem | undefined\n >(undefined);\n RedemptionCartDataService._redeemSimulateResponse$ = new BehaviorSubject<\n Redeem | undefined\n >(undefined);\n this.logger.debug('Cart has been reset.');\n }\n /** adds or removes product to or from cart */\n public rewardProductToCart(\n rewardProduct: RewardProductDto,\n count: number\n ): void {\n // check if rewardProduct is even valid -> has id\n if (rewardProduct.id) {\n const cartItem: CartItemDto = { product: rewardProduct, quantity: count };\n\n // add to/remove from real cart\n this.redeemCartItems = this.addOrRemoveFromCart(\n RedemptionCartDataService._redeemCartItems,\n cartItem\n );\n this.logger.debug(\n 'Item has been added or removed from cart:\\n Count: ' +\n count +\n ' Item: (below)'\n );\n this.logger.debug(cartItem);\n }\n }\n /** calculates locally how many points the cart is worth instead of sending a request already */\n public calculatePointsLocal(): number {\n let points = 0;\n for (const item of RedemptionCartDataService._redeemCartItems) {\n points += item.product.points * item.quantity;\n }\n return points;\n }\n\n public refreshProductDtoModels(): void {\n const newModels: CartItemDto[] = [];\n const copyToIterate: CartItemDto[] = JSON.parse(\n JSON.stringify(RedemptionCartDataService._redeemCartItems)\n );\n for (const item of copyToIterate) {\n if (item.product.id) {\n this.subscriptions.add(this.communityUserService\n .getRewardProductById(item.product.id)\n .subscribe((newItem) => {\n RedemptionCartDataService._redeemCartItems = JSON.parse(\n JSON.stringify(newModels)\n );\n }));\n }\n }\n }\n /** checks if cart can be redeemed as is (is valid) */\n public simulateRedemptionCart(): Observable {\n this.subscriptions.add(this.communityUserService\n .redeemSimulate(\n RedemptionCartDataService._redeemCartItems\n )\n .subscribe({\n next: (response) => {\n RedemptionCartDataService._redeemSimulateResponse$.next(response);\n this.logger.debug(\n 'Redemption Cart Simulation successfull: ' + response\n );\n },\n error: (error) => {\n RedemptionCartDataService._redeemSimulateResponse$.next(error);\n this.logger.error(\n 'Redemption Cart Simulation has thrown an error: ' + error\n );\n }\n }));\n return RedemptionCartDataService._redeemSimulateResponse$;\n }\n /** finally redeems cart as is */\n public redeemRedemptionCart(_billingAddress: Address, _additionalInformation: string): Observable {\n this.subscriptions.add(this.communityUserService\n .redeem(\n { cartItems: RedemptionCartDataService._redeemCartItems, billingAddress: _billingAddress, additionalInformation: _additionalInformation } as RedeemRequest\n )\n .subscribe({\n next: (response) => {\n RedemptionCartDataService._redeemResponse$.next(response);\n if (response.success) {\n RedemptionCartDataService._redeemCartItems = [];\n localStorage.removeItem(this.myRedemptionCartLocalStorageKey);\n this.logger.debug(\n 'Redemption Cart Redemption successfull: ' + response\n );\n }\n },\n error: (error) => {\n RedemptionCartDataService._redeemResponse$.next(error);\n this.logger.error(\n 'Redemption Cart Redemption has thrown an error: ' + error\n );\n }\n }));\n return RedemptionCartDataService._redeemResponse$;\n }\n /** handles logic of redeeming or adding an item to cart based on positive or negative number */\n private addOrRemoveFromCart(\n cartItems: CartItemDto[],\n cartItem: CartItemDto\n ): CartItemDto[] {\n const ifExists = cartItems.find(\n (item) => item.product.id == cartItem.product.id\n );\n if (\n ifExists &&\n (ifExists.quantity + cartItem.quantity <= 0 || cartItem.quantity == 0)\n ) {\n cartItems.splice(cartItems.indexOf(ifExists), 1);\n } else if (ifExists && ifExists.quantity + cartItem.quantity > 0) {\n ifExists.quantity += cartItem.quantity;\n } else if (!ifExists && cartItem.quantity > 0) {\n cartItems.push(cartItem);\n }\n\n return cartItems;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { MenuService } from '../menu/menu.service';\nimport { MultilanguageService } from '../multilanguage/multilanguage.service';\n\n/**\n * only resolves unregistered but authenticated users\n * -> sets the menu items for COMMUNITY-UNREGISTERED\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CommunityUnregisteredResolver implements Resolve {\n constructor(\n private readonly menuService: MenuService,\n private multiLanguageService: MultilanguageService\n ) {\n //\n }\n\n resolve(): Observable {\n this.multiLanguageService.setLanguage();\n this.menuService.setMenuItems('COMMUNITY-UNREGISTERED');\n return of(true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { MenuService } from '../menu/menu.service';\nimport { MultilanguageService } from '../multilanguage/multilanguage.service';\n\n/**\n * only resolves registered and authenticated users\n * -> sets the menu items for COMMUNITY\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class CommunityResolver implements Resolve {\n constructor(\n private readonly menuService: MenuService,\n private multiLanguageService: MultilanguageService\n ) {}\n\n resolve(): Observable {\n this.multiLanguageService.setLanguage();\n this.menuService.setMenuItems('COMMUNITY');\n return of(true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n Resolve,\n RouterStateSnapshot,\n ActivatedRouteSnapshot,\n} from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { UserService } from '@neo-reward-engine-web/auth';\nimport { ToastService } from '../toast/toast.service';\nimport { MenuService } from '../menu/menu.service';\nimport { MultilanguageService } from '../multilanguage/multilanguage.service';\nimport {environment} from \"../../../../environments/environment\";\nimport {map, take, tap} from \"rxjs/operators\";\nimport {NGXLogger} from \"ngx-logger\";\nimport {loggerFn} from \"../common-helper/pipe.helper\";\nimport {ResolverHandler} from \"./resolver.handler\";\nimport {\n handleAdminUser, handleCommunityPublic,\n handleCommunityUserEnabled, handleCommunityUserUnregistered,\n showNoRewardUserToast\n} from \"../common-helper/resolver-guard.helper\";\n\n/**\n * resolves for the landing page\n * targets all user states (admin, community, logged in, logged out) because of how the landing page\n * was origally routed on \"/\"\n * TODO: clean up since splitting routing to \"/overview\" and \"/\"\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PublicResolver implements Resolve {\n constructor(\n private readonly userService: UserService,\n private readonly toastService: ToastService,\n private readonly menuService: MenuService,\n private readonly multiLanguageService: MultilanguageService,\n private readonly logger: NGXLogger,\n ) {\n //\n }\n\n resolve(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable {\n this.multiLanguageService.setLanguage();\n\n return this.userService.userState$.pipe(\n take(1), // just to ensure that the subject does ever complete and not keep the resolver open forever\n loggerFn(this.logger, 'PublicResolver.resolve()'),\n map(state => {\n\n const loginState = new ResolverHandler(state);\n switch (loginState.publicUserState) {\n case 'AUTHENTICATED_NO_ACCOUNT':\n showNoRewardUserToast(this.toastService);\n handleCommunityPublic(this.menuService);\n break;\n case 'AUTHENTICATED_ADMIN':\n handleAdminUser(\n environment.redirectUri,\n environment.rewardTokenStorageKey,\n environment.rewardUserStorageKey,\n environment.adminRedirectUrl\n );\n break;\n case 'AUTHENTICATED_ENABLED':\n handleCommunityUserEnabled(this.menuService);\n break;\n case 'AUTHENTICATED_ENABLED_NO_REDEEM':\n handleCommunityPublic(this.menuService);\n break;\n case 'AUTHENTICATED_NOT_ENABLED':\n handleCommunityPublic(this.menuService);\n break;\n case 'AUTHENTICATED_TO_REGISTER':\n handleCommunityUserUnregistered(this.menuService);\n break;\n default:\n handleCommunityPublic(this.menuService);\n }\n return true;\n })\n );\n }\n}\n","import {UserState} from \"@neo-reward-engine-web/auth\";\nimport {PublicUserState} from \"../common-helper/user-state.type\";\n\n/**\n * ResolverHandler\n *\n * Determines the UserState out of the information gathered in the login\n * process.\n *\n */\nexport class ResolverHandler {\n private _publicUserState: PublicUserState = 'NOT_AUTHENTICATED';\n constructor(\n private state: UserState | null,\n ) {\n this.calculateUserState();\n }\n\n get publicUserState(): PublicUserState {\n return this._publicUserState;\n }\n\n private calculateUserState(): void {\n if (this.state === null) {\n this._publicUserState = 'NOT_AUTHENTICATED';\n return;\n } else if (this.state?.userType === 'Admin') {\n this._publicUserState = 'AUTHENTICATED_ADMIN';\n return;\n } else if (this.state.isUnauthorized && this.state.isAuthenticated) {\n this._publicUserState = 'AUTHENTICATED_NO_ACCOUNT';\n return;\n } else if (\n this.state.userType === 'Community' &&\n this.state.status === 'Enabled' &&\n this.state.canRedeem\n ) {\n this._publicUserState = 'AUTHENTICATED_ENABLED';\n return;\n } else if (\n this.state.userType === 'Community' &&\n (this.state.status === 'WaitingForApproval' ||\n this.state.status === 'Disabled' ||\n this.state.status === 'Declined')\n ) {\n this._publicUserState = 'AUTHENTICATED_NOT_ENABLED';\n return;\n } else if (\n this.state.userType === 'Community' &&\n this.state.status === 'Unregistered'\n ) {\n this._publicUserState = 'AUTHENTICATED_TO_REGISTER';\n return;\n } else if (\n this.state.userType === 'Community' &&\n this.state.status === 'Enabled' &&\n !this.state.canRedeem\n ) {\n this._publicUserState = 'AUTHENTICATED_ENABLED_NO_REDEEM';\n return;\n } else {\n this._publicUserState = 'NOT_AUTHENTICATED';\n }\n }\n}\n","import { RewardTransactionViewModel } from './reward-transaction-view.model';\nimport { DateTime } from 'luxon';\nimport { RewardTransactionDto } from '@neo-reward-engine-web/ecom-api';\n\n/**\n * convertUtcIsoDateStringToAccountDateTime\n *\n * Helper function converting UtcIso DateTime representation\n * into luxon datetime.\n *\n * @param utcIsoDateString\n * @param zoneOffset\n */\nexport const convertUtcIsoDateStringToAccountDateTime = (\n utcIsoDateString: string,\n zoneOffset: string\n): DateTime =>\n DateTime.fromISO(utcIsoDateString, { zone: 'UTC' }).setZone(zoneOffset);\n\n/**\n * convertRewardTransactionToClientModel\n *\n * Helper function to convert Server RewardTransaction Model\n * to Client View Model.\n *\n * @param rewardTransaction\n * @param zoneOffsetOfAccount\n */\nexport const convertRewardTransactionToClientModel = (\n rewardTransaction: RewardTransactionDto,\n zoneOffsetOfAccount: string\n): RewardTransactionViewModel => ({\n orderId:\n rewardTransaction.orderId === null || undefined\n ? undefined\n : rewardTransaction.orderId,\n points: rewardTransaction.points,\n type: rewardTransaction.type,\n usedPoints: rewardTransaction.usedPoints,\n expiringDate: convertUtcIsoDateStringToAccountDateTime(\n rewardTransaction.expiringDate,\n zoneOffsetOfAccount\n ),\n timeStamp: convertUtcIsoDateStringToAccountDateTime(\n rewardTransaction.timestamp,\n zoneOffsetOfAccount\n ),\n origin:\n rewardTransaction.ruleType != null ? rewardTransaction.ruleType : 'Unknown',\n rewardOrderId: rewardTransaction.rewardOrderId,\n adminUserId: rewardTransaction.adminUserId,\n comment: rewardTransaction.comment,\n\n});\n","/** interface to work easier with the toast options of hottoast lib */\nexport interface ToastConfigOptions {\n /** wether or not the toast should autoclose */\n autoClose: boolean;\n /** wether or not the toast is user dismissible */\n dismissible: boolean;\n /** how long the toast should stay on screen */\n duration?: number;\n}\n\n/** interface to work easier with the toast paramerters of hottoast lib */\nexport interface ToastParameter {\n /** toastconfig parameter in form of our own interface */\n toastConfig: ToastConfigOptions;\n /** placeholder transloco key */\n placeholder: { [key: string]: string } | undefined;\n}\n\n/** default parameter configuration for our hottoast wraper service */\nexport const defaultToastParameter = {\n toastConfig: { autoClose: true, dismissible: false, duration: 5000 },\n placeholder: undefined,\n};\n","import { Observable, Subscription } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { HotToastService } from '@ngneat/hot-toast';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { defaultToastParameter, ToastParameter } from './toast-config.model';\n\n/**\n * toast service used application wide to spawn uniform an localized toast messages\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n constructor(\n private readonly hotToast: HotToastService,\n private readonly transloco: TranslocoService\n ) {}\n\n\n /** error message type bright red\n * @param translationKey transloco parameter\n * @param toastParameter optional toast parameter\n */\n public showErrorMessage(\n translationKey: string,\n toastParameter: ToastParameter = defaultToastParameter\n ): void {\n\n const sub= new Subscription();\n sub.add(this.processMessage(translationKey, toastParameter.placeholder).subscribe({\n next: (value) => {\n this.hotToast.error(value,{\n className: 'reward-toast-styles',\n style: {\n 'background-color': '#F5501E',\n color: '#fff',\n },\n iconTheme: {\n primary: '#fff',\n secondary: '#F5501E',\n },\n autoClose: toastParameter.toastConfig.autoClose,\n dismissible: toastParameter.toastConfig.dismissible,\n duration: toastParameter?.toastConfig?.duration,\n })\n sub.unsubscribe();\n }\n }\n ))\n }\n /** success message type bright green\n * @param translationKey transloco parameter\n * @param toastParameter optional toast parameter\n */\n public showSuccessMessage(\n translationKey: string,\n toastParameter: ToastParameter = defaultToastParameter\n ): void {\n\n const sub= new Subscription();\n sub.add(this.processMessage(translationKey, toastParameter.placeholder).subscribe({\n next: (value) => {\n this.hotToast.success(value, {\n className: 'reward-toast-styles',\n style: {\n 'background-color': '#009b3c',\n color: '#fff',\n },\n iconTheme: {\n primary: '#fff',\n secondary: '#009b3c',\n },\n autoClose: toastParameter.toastConfig.autoClose,\n dismissible: toastParameter.toastConfig.dismissible,\n duration: toastParameter?.toastConfig?.duration,\n })\n sub.unsubscribe();\n }\n }\n ))\n }\n /** info message type primary blue\n * @param translationKey transloco parameter\n * @param toastParameter optional toast parameter\n */\n public showInfoMessage(\n translationKey: string,\n toastParameter: ToastParameter = defaultToastParameter\n ): void {\n\n const sub= new Subscription();\n sub.add(this.processMessage(translationKey, toastParameter.placeholder).subscribe({\n next: (value) => {\n this.hotToast.info(value,{\n className: 'reward-toast-styles',\n style: {\n 'background-color': '#004178',\n color: '#fff',\n },\n iconTheme: {\n primary: '#fff',\n secondary: '#004178',\n },\n autoClose: toastParameter.toastConfig.autoClose,\n dismissible: toastParameter.toastConfig.dismissible,\n duration: toastParameter?.toastConfig?.duration,\n })\n sub.unsubscribe();\n }\n })\n )\n }\n\n private processMessage(\n translationKey: string,\n placeholder?: { [key: string]: string }\n ) : Observable {\n return this.transloco.selectTranslate(translationKey, placeholder);\n }\n}\n","import { MenuService } from './../menu/menu.service';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { tap, map, take } from 'rxjs/operators';\nimport { RewardTransactionViewModel } from '../reward/reward-transaction-view.model';\nimport { convertRewardTransactionToClientModel } from '../reward/reward-data.helper';\nimport {\n getLastDayOfMonth,\n getFirstDayOfMonth,\n} from './user-stats.util';\nimport { loggerFn } from '../common-helper/pipe.helper';\nimport { NGXLogger } from 'ngx-logger';\nimport { StandardErrorHandlerService } from '../error-handler/standard-error-handler.service';\nimport {\n CommunityUserService,\n RewardAccountDto,\n RewardOrderDto,\n RewardTierDto,\n UserBalance,\n UserContext,\n} from '@neo-reward-engine-web/ecom-api';\nimport { EnvironmentService } from '../environment/environment.service';\nimport { ProgramSettingsService } from '../program-settings/program-settings.service';\n\n/**\n * service that contains all stats regarding the current effective account of the user\n * (e.g. transaction history, tier data, expiring points etc.)\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class UserStatsService implements OnDestroy{\n private _userBalance$ = new BehaviorSubject(null);\n private _totalRedemptions$ = new BehaviorSubject(0);\n private _totalPointEarnings$ = new BehaviorSubject(0);\n private _rewardTransactions$ = new BehaviorSubject<\n RewardTransactionViewModel[]\n >([]);\n private _earningsFromTo$ = new BehaviorSubject([]);\n private _redemptionsFromTo$ = new BehaviorSubject([]);\n private _expiringPoints$ = new BehaviorSubject(0);\n private _tierData$ = new BehaviorSubject(null);\n private _userAccount$ = new BehaviorSubject(null);\n private _userContext$ = new BehaviorSubject(null);\n\n subscriptions: Subscription = new Subscription();\n\n constructor(\n private readonly communityUserService: CommunityUserService,\n private readonly logger: NGXLogger,\n private readonly _errorHandler: StandardErrorHandlerService,\n private readonly environmentService: EnvironmentService,\n private readonly menuService: MenuService,\n private readonly settingService: ProgramSettingsService\n ) {}\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n get userBalance$(): Observable {\n return this._userBalance$.asObservable();\n }\n\n get totalRedemptions$(): Observable {\n return this._totalRedemptions$.asObservable();\n }\n\n get totalPointEarnings$(): Observable {\n return this._totalPointEarnings$.asObservable();\n }\n\n get rewardTransactions$(): Observable {\n return this._rewardTransactions$.asObservable();\n }\n\n get earningsFromTo$(): Observable {\n return this._earningsFromTo$.asObservable();\n }\n\n get redemptionsFromTo$(): Observable {\n return this._redemptionsFromTo$.asObservable();\n }\n\n get expiringPoints$(): Observable {\n return this._expiringPoints$.asObservable();\n }\n\n get tierData$(): Observable {\n return this._tierData$.asObservable();\n }\n\n get currentTier$(): Observable {\n return this._tierData$.pipe(\n map((tiers) => tiers?.find((tier) => tier.isCurrent === true))\n );\n }\n\n get nextTier$(): Observable {\n const nextTier = new Subject();\n this.subscriptions.add(this.currentTier$.pipe(take(1)).subscribe((tier) => {\n if (tier) {\n this.getTierByLevel$(tier.level + 1)\n .pipe(take(1))\n .subscribe((tierByLevel) => {\n if (tierByLevel) {\n nextTier.next(tierByLevel);\n }\n });\n }\n }));\n return nextTier.asObservable();\n }\n\n get userAccount$(): Observable {\n return this._userAccount$.asObservable();\n }\n\n get userContext$(): Observable {\n return this._userContext$.asObservable();\n }\n\n /** refresh user context available in userContext$ */\n getUserContext() {\n if (this.menuService.isLoggedIn) {\n this.subscriptions.add(this.communityUserService\n .userContext()\n .subscribe({\n next: (userContext) => {\n this._userContext$.next(userContext);\n this.logger.log('UserStatsService.getUserContext successfull');\n },\n error: (e) => {\n this._errorHandler.handleError(\n e,\n 'UserStatsService.getUserContext'\n );\n this.logger.log(\n 'Error retrieving UserContext UserStatsService.getUserContext , ',\n e\n );\n },\n }));\n }\n }\n /** refresh user account info available in userAccount$ */\n retrieveUserAccount(): void {\n this.logger.log('UserStatsService.retrieveUserAccount triggered');\n if (this.menuService.isLoggedIn) {\n this.subscriptions.add(this.communityUserService\n .getUserRewardAccount()\n .subscribe({\n next: (rewardAccountDto) => {\n this._userAccount$.next(rewardAccountDto);\n this.logger.log('UserStatsService.retrieveUserAccount successfull');\n },\n error: (error) => {\n this._errorHandler.handleError(\n error,\n 'FooterService.retrieveSsuInfo'\n );\n this.logger.log('UserStatsService.retrieveUserAccount failed');\n }\n }));\n }\n }\n /** refresh user balance info available in userBalance$ */\n retrieveUserBalance(): void {\n if (this.menuService.isLoggedIn) {\n this.subscriptions.add(this.communityUserService\n .getUserBalance()\n .pipe(loggerFn(this.logger, 'UserStatsService.retrieveUserBalance'))\n .subscribe((balance) => this._userBalance$.next(balance)));\n }\n }\n\n /**\n * refresh total transactions for account available in rewardTransactions$\n * TODO: ZoneOffset of Account\n */\n retrieveTotalTransactions(): void {\n if (this.menuService.isLoggedIn) {\n let totalRedemptions = 0;\n let expiringPoints = 0;\n\n this.subscriptions.add(this.communityUserService\n .getUserBalanceTransactions()\n .pipe(\n loggerFn(this.logger, 'UserStatsService.retrieveTotalTransactions'),\n tap((transactions) =>\n transactions.transactions.forEach((transaction) => {\n if (transaction.type == 'Redemption') {\n totalRedemptions += 1;\n }\n const today = new Date();\n const futureDate = new Date(today.setDate(today.getDate() + ((this.settingService.programSettings$.value?.pointExpiry.reminderPeriodWeeks || 12) * 7)))\n if (\n transaction.type == 'Reward' &&\n new Date(transaction.expiringDate) >= today &&\n new Date(transaction.expiringDate) <= futureDate\n ) {\n expiringPoints += transaction.points - transaction.usedPoints;\n }\n })\n ),\n tap((transactions) =>\n this._totalPointEarnings$.next(transactions.earned)\n ),\n map((transactions) =>\n transactions.transactions.map((transaction) =>\n convertRewardTransactionToClientModel(transaction, 'UTC+2')\n )\n )\n )\n .subscribe((transactions) => {\n this._totalRedemptions$.next(totalRedemptions);\n this._rewardTransactions$.next(transactions);\n this._expiringPoints$.next(expiringPoints);\n }));\n }\n }\n\n /**\n * overrides date range filtered data\n * retrieves last 12 months, available in redemptionsFromTo$ and earningsFromTo$\n */\n retrieveTotalTransactionPointsForLast12Months() {\n if (this.menuService.isLoggedIn) {\n const redemptionData: number[] = Array(12).fill(0);\n const earningData: number[] = Array(12).fill(0);\n\n this.subscriptions.add(this.communityUserService\n .getYearUserBalanceTransactions()\n .pipe(\n loggerFn(\n this.logger,\n 'UserStatsService.retrieveTotalTransactionPointsForLast12Months'\n ),\n tap((transactions) => {\n transactions.reverse();\n transactions.forEach((transaction) => {\n redemptionData[transactions.indexOf(transaction)] =\n transaction.redeemed;\n earningData[transactions.indexOf(transaction)] =\n transaction.earned;\n });\n })\n )\n .subscribe(() => {\n this._earningsFromTo$.next(earningData);\n this._redemptionsFromTo$.next(redemptionData);\n }));\n }\n }\n\n /**\n * overrides last 12 months data\n * @param dateRange range of dates to retrieve transaction points for, available in redemptionsFromTo$ and earningsFromTo$\n */\n retrieveTransactionPointsDateRange(dateRange: Date[]): void {\n if (this.menuService.isLoggedIn) {\n const redemptionData: number[] = Array(dateRange.length).fill(0);\n const earningData: number[] = Array(dateRange.length).fill(0);\n const dateRangeIndexes = dateRange.map((date) => date.getMonth());\n\n this.subscriptions.add(this.communityUserService\n .getUserBalanceTransactions(\n getFirstDayOfMonth(dateRange[0]),\n getLastDayOfMonth(dateRange.slice(-1)[0])\n )\n .pipe(\n loggerFn(\n this.logger,\n 'UserStatsService.retrieveTransactionPointsDateRange'\n ),\n map((transactions) => transactions.transactions),\n tap((transactions) =>\n transactions.forEach((transaction) => {\n switch (transaction.type) {\n case 'Redemption': {\n redemptionData[\n dateRangeIndexes.indexOf(\n new Date(transaction.timestamp).getMonth()\n )\n ] += transaction.points;\n break;\n }\n case 'Reward': {\n earningData[\n dateRangeIndexes.indexOf(\n new Date(transaction.timestamp).getMonth()\n )\n ] += transaction.points;\n break;\n }\n }\n })\n )\n )\n .subscribe(() => {\n this._earningsFromTo$.next(earningData);\n this._redemptionsFromTo$.next(redemptionData);\n }));\n }\n }\n\n /**\n * refresh tier data available in tierData$\n */\n retrieveTierData() {\n if (this.menuService.isLoggedIn) {\n this.subscriptions.add(this.communityUserService\n .getUserRewardTiers()\n .subscribe((tierData) => this._tierData$.next(tierData)));\n }\n }\n /**\n * @param level level to return\n * @return observable of tier that corresponds with the supplied level\n */\n getTierByLevel$(level: number): Observable {\n return this._tierData$.pipe(\n map((tiers) => tiers?.find((tier) => tier.level === level))\n );\n }\n /**\n *\n * @param rewardOrderId order id to return order from\n * @returns observable of reward order that corresponds with the supplied id\n */\n retrieveUserOrder(rewardOrderId: string): Observable {\n return this.communityUserService.getUserOrder(rewardOrderId);\n }\n}\n","import { RewardTransactionViewModel } from '../reward/reward-transaction-view.model';\nimport { TransactionFilterModel } from './transaction-filter-model';\n\n/** filter transactions based on the transaction filter model\n * @param transactions\n * @param filterModel\n */\nexport const filterTransactions = (\n transactions: RewardTransactionViewModel[],\n filterModel?: TransactionFilterModel\n): RewardTransactionViewModel[] => {\n /** false = ascending, true = descending */\n if (!filterModel) {\n return transactions;\n } else {\n switch (filterModel.property) {\n case 'points': {\n switch (filterModel.order) {\n case false: {\n return transactions.sort((a, b) => (a.points > b.points ? 1 : -1));\n }\n case true: {\n return transactions.sort((a, b) => (a.points < b.points ? 1 : -1));\n }\n default:\n return transactions;\n }\n }\n\n case 'timeStamp': {\n switch (filterModel.order) {\n case false: {\n return transactions.sort((a, b) =>\n a.timeStamp > b.timeStamp ? 1 : -1\n );\n }\n case true: {\n return transactions.sort((a, b) =>\n a.timeStamp < b.timeStamp ? 1 : -1\n );\n }\n default:\n return transactions;\n }\n }\n\n case 'expiringDate': {\n switch (filterModel.order) {\n case false: {\n return transactions.sort((a, b) =>\n a.expiringDate > b.expiringDate ? 1 : -1\n );\n }\n case true: {\n return transactions.sort((a, b) =>\n a.expiringDate < b.expiringDate ? 1 : -1\n );\n }\n default:\n return transactions;\n }\n }\n\n default:\n return transactions;\n }\n }\n};\n\n/** get last day of a given month\n * @param date date to get last day of month from\n */\nexport const getLastDayOfMonth = (date: Date): string => {\n const dateWithlastDayOfMonth = new Date(\n date.getFullYear(),\n date.getMonth() + 1,\n 1\n );\n return dateWithlastDayOfMonth.toISOString().substring(0, 10);\n};\n\n/** get first day of a given month\n * @param date date to get first day of month from\n */\nexport const getFirstDayOfMonth = (date: Date): string => {\n const dateWithlastDayOfMonth = new Date(\n date.getFullYear(),\n date.getMonth(),\n 1\n );\n return dateWithlastDayOfMonth.toISOString().substring(0, 10);\n};\n","/**\n * gets all months between two dates in ISO Format\n *\n * @param from start date\n * @param to end date\n *\n * @returns array of all months from to (\"YYYY-MM\")\n * */\nexport const getRangeOfMonths = (from: Date, to: Date, days?: boolean) => {\n const dates = new Array();\n\n /** avoids edge case where last month is skipped */\n if (!days) {\n from.setDate(1);\n to.setDate(28);\n }\n\n while (from <= to) {\n dates.push(new Date(from));\n from.setMonth(from.getMonth() + 1);\n }\n return dates;\n};\n\n/** HELPER FUNCTION to get last day of a given month */\nexport const getLastDayOfMonth = (date: Date): string => {\n const dateWithlastDayOfMonth = new Date(\n date.getFullYear(),\n date.getMonth() + 1,\n 1\n );\n return dateWithlastDayOfMonth.toISOString().substring(0, 10);\n};\n\n/** HELPER FUNCTION to get first day of a given month */\nexport const getFirstDayOfMonth = (date: Date): string => {\n const dateWithlastDayOfMonth = new Date(\n date.getFullYear(),\n date.getMonth(),\n 1\n );\n return dateWithlastDayOfMonth.toISOString().substring(0, 10);\n};\n","import { Component } from '@angular/core';\nimport {UserService} from \"@neo-reward-engine-web/auth\";\nimport {Router} from \"@angular/router\";\nimport {ToastService} from \"../../services/toast/toast.service\";\nimport {ProgramSettingsService} from \"../../services/program-settings/program-settings.service\";\n\n@Component({\n selector: 'neo-reward-engine-web-landing-core',\n templateUrl: './landing-core.component.html',\n styleUrls: ['./landing-core.component.scss'],\n})\nexport class LandingCoreComponent{\n\n /**\n *\n * @param userService injected to check the user permissions to register (maincontact)\n * @param router injected to route to registration page\n * @param toastService injected to inform non maincontact users about the registration permission error\n * @param programSettings injected to check if there is an active reward program\n */\n constructor(\n private userService: UserService,\n private router: Router,\n private toastService: ToastService,\n private programSettings: ProgramSettingsService\n ) {\n }\n\n get blobStorageToS(): string {\n return 'https://hdumediaassetmgr.blob.core.windows.net/service-footer/de_CH/HCH_2018_Saphira_Bonus_Programm_Gesch%C3%A4ftsbedingungen_Dienstleistungsprogramm.pdf';\n }\n\n /**\n * checks maincontact status and navigates to register or spawns toast message\n */\n navigateToRegister() {\n if (this.userService.userState$.value?.isMainContact) {\n this.router.navigate(['/register'], { queryParamsHandling: 'preserve' });\n } else if (this.userService.userState$.value?.isMainContact === false) {\n this.toastService.showInfoMessage('register.noMainContact');\n } else {\n window.location.href = window.location.href + 'register';\n }\n }\n /**\n *\n * @returns translation key for transloco with register button status (e.g. pending or unregistered)\n */\n getRegisterButtonStatusTKey(): string {\n return (\n 'register.registerBtn.' +\n (this.userService.userState$.value?.status || 'Unregistered')\n );\n }\n\n get programIsActive(){\n return this.programSettings.programSettings$.value?.enabled;\n }\n\n get loggedIn(){\n return this.userService.userState$.value?.userType === 'Community' || this.userService.userState$.value?.userType === 'Admin';\n }\n\n}\n","
\n \n
\n
\n
\n
\n
\n
\n {{t('landing.unregistered.headline1')}}\n
\n
\n {{t('landing.unregistered.content1')}}\n
\n
\n
\n \n
\n
\n
\n\n \n
\n\n
\n
\n
\n {{t('landing.unregistered.flowDiagram.register')}}
\n \n
\n
\n
\n\n
\n \n
\n\n
\n
\n
\n {{t('landing.unregistered.flowDiagram.purchase')}}
\n \n
\n
\n
\n\n
\n \n
\n\n\n
\n
\n
\n {{t('landing.unregistered.flowDiagram.collect')}}
\n \n
\n
\n
\n\n
\n \n
\n\n\n
\n
\n
\n {{t('landing.unregistered.flowDiagram.redeem')}}
\n \n
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
{{t('landing.unregistered.flowDiagram.register')}}
\n
{{t('landing.unregistered.flowDiagram.registerText')}}
\n
\n \n
\n
{{t('landing.unregistered.flowDiagram.purchase')}}
\n
{{t('landing.unregistered.flowDiagram.purchaseText')}}
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
{{t('landing.unregistered.flowDiagram.collect')}}
\n
{{t('landing.unregistered.flowDiagram.collectText')}}
\n
\n \n
\n
{{t('landing.unregistered.flowDiagram.redeem')}}
\n
{{t('landing.unregistered.flowDiagram.redeemText')}}
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n\n \n
\n\n
\n \n \n \n
\n\n \n
\n
\n","import { Component } from '@angular/core';\nimport { LoadIndicatorService } from '../../services/load-indicator/load-indicator.service';\n\n/**\n * Central Loading Spinner Component\n * TODO: use prettier design from eshop spinner\n */\n@Component({\n selector: 'neo-reward-engine-web-loading-spinner',\n templateUrl: './loading-spinner.component.html',\n styleUrls: ['./loading-spinner.component.scss'],\n})\nexport class LoadingSpinnerComponent {\n /**\n *\n * @param loadIndicatorService injeted to know if the spinner is vissible or not\n */\n constructor(public readonly loadIndicatorService: LoadIndicatorService) {\n //\n }\n}\n","\n
\n
\n
\n \n
\n
\n {{ t('shared.loadingSpinner') }}\n
\n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport { getRangeOfMonths } from '../helper-util.ts/date-helper';\nimport { UserStatsService } from '../../services/user-stats/user-stats.service';\nimport { RewardTransactionViewModel } from '../../services/reward/reward-transaction-view.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/** month data interface for easier handling of ranges */\ninterface monthsData {\n monthName: string;\n monthYear: number;\n isInRange: boolean;\n isLowerEdge: boolean;\n isUpperEdge: boolean;\n isHovered: boolean;\n}\n\n/**\n * month range picker component used in reward point history chart\n */\n@Component({\n selector: 'neo-reward-engine-web-month-range-picker',\n templateUrl: './month-range-picker.component.html',\n styleUrls: ['./month-range-picker.component.scss'],\n})\nexport class MonthRangePickerComponent implements OnInit, OnDestroy {\n private rewardTransactions$: Observable<\n RewardTransactionViewModel[] | undefined\n >;\n private minShownYear: number = new Date().getFullYear();\n private _years: Array = [];\n private _months: Array = [];\n private _monthsDataArray: Array = [];\n private _rangeIndexes: Array = [];\n private _monthViewSlicesIndexes: Array = [];\n private _currentYearIndex = 0;\n private _globalIndexOffset = 0;\n private _monthDataSlice: Array = [];\n private _hoverToggle = false;\n\n @Output() dateRangeSelected = new EventEmitter();\n\n subscriptions: Subscription = new Subscription();\n\n /**\n *\n * @param userStatsService injected to retrieve reward transactions\n */\n constructor(readonly userStatsService: UserStatsService) {\n this.rewardTransactions$ = this.userStatsService.rewardTransactions$;\n }\n\n ngOnInit() {\n this.getMinYear();\n this.initYearLabels();\n this.initMonthLabels();\n this._currentYearIndex = this._years.findIndex(\n (year) => year === new Date().getFullYear()\n );\n this.initViewSlices();\n this.initMonthsData();\n this.initRangeIndexes();\n this.sliceDataIntoView();\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n get years() {\n return this._years;\n }\n get rangeIndexes() {\n return this._rangeIndexes;\n }\n get currentYearIndex() {\n return this._currentYearIndex;\n }\n get globalIndexOffset() {\n return this._globalIndexOffset;\n }\n get monthDataSlice() {\n return this._monthDataSlice;\n }\n\n getMinYear() {\n this.subscriptions.add(this.rewardTransactions$\n .pipe(\n map((transactions) => {\n if (transactions) {\n this.minShownYear = Math.min(\n ...transactions.map((transaction) => transaction.timeStamp.year)\n );\n }\n })\n )\n .subscribe());\n }\n\n initYearLabels() {\n const currentYear = new Date().getFullYear();\n const range = (start: number, stop: number, step: number) =>\n Array.from(\n { length: (stop - start) / step + 1 },\n (_, i) => start + i * step\n );\n\n this._years = range(this.minShownYear, currentYear, 1);\n }\n\n initMonthLabels() {\n this._months = new Array(12).fill(0).map((_, i) => {\n return new Date(`${i + 1}/1`).toLocaleDateString('en', {\n month: 'short',\n });\n });\n }\n\n initViewSlices() {\n this._monthViewSlicesIndexes = [];\n\n this._years.forEach((year, index) => {\n if (index === 0) {\n this._monthViewSlicesIndexes.push(0);\n } else if (index === 1) {\n this._monthViewSlicesIndexes.push(12);\n } else\n this._monthViewSlicesIndexes.push(\n this._monthViewSlicesIndexes[index - 1] + 12\n );\n });\n }\n\n initMonthsData() {\n this._years.forEach((year) => {\n this._months.forEach((month) => {\n this._monthsDataArray.push({\n monthName: month,\n monthYear: year,\n isInRange: false,\n isLowerEdge: false,\n isUpperEdge: false,\n isHovered: false,\n });\n });\n });\n }\n\n initRangeIndexes() {\n this._rangeIndexes = [null, null];\n }\n\n sliceDataIntoView() {\n this._globalIndexOffset =\n this._monthViewSlicesIndexes[this._currentYearIndex];\n this._monthDataSlice = this._monthsDataArray.slice(\n this._globalIndexOffset,\n this._globalIndexOffset + 12\n );\n }\n\n toggleHoverToggle() {\n this._hoverToggle = !this._hoverToggle;\n }\n\n incrementYear() {\n if (this._currentYearIndex !== this._years.length - 1) {\n this._currentYearIndex++;\n this.sliceDataIntoView();\n }\n }\n\n decrementYear() {\n if (this._currentYearIndex !== 0) {\n this._currentYearIndex--;\n this.sliceDataIntoView();\n }\n }\n\n setHoverProperty(_event: Event, _monthsData: monthsData, hoveredIndex: number) {\n if (this._hoverToggle) {\n const startIndex = this._monthsDataArray.findIndex(\n (month) => month.isLowerEdge === true\n );\n this._globalIndexOffset =\n this._monthViewSlicesIndexes[this._currentYearIndex];\n const hoveredMonth = Array();\n\n this._monthsDataArray.forEach((month, index) => {\n if (\n (index > startIndex &&\n index <= hoveredIndex + this._globalIndexOffset) ||\n (index < startIndex && index >= hoveredIndex + this.globalIndexOffset)\n ) {\n hoveredMonth.push(month);\n month.isHovered = true;\n }\n });\n\n this._monthsDataArray.forEach((month) => {\n if (!hoveredMonth.includes(month)) {\n month.isHovered = false;\n }\n });\n }\n }\n\n onClick(indexClicked: number) {\n // loop to pick first date (start)\n if (this._rangeIndexes[0] === null) {\n // position of clicked element in monthsDataArray\n this._rangeIndexes[0] = indexClicked + this._globalIndexOffset;\n // set clicked item to lowerEdge (for hover purpose)\n this._monthsDataArray[this._rangeIndexes[0]].isLowerEdge = true;\n // toggle hover state to true (while searching end date (upperEdge))\n this.toggleHoverToggle();\n }\n // loop to pick second date (end)\n else if (this._rangeIndexes[1] === null) {\n this._rangeIndexes[1] = indexClicked + this._globalIndexOffset;\n // sort range indexes to enable pick forward and backward both return sorted date range\n this._rangeIndexes.sort((a, b) => {\n if (a != null && b != null) {\n return a - b;\n } else {\n return 0;\n }\n });\n // toggle hover state to false\n this.toggleHoverToggle();\n\n // set state of month in picked date range to inRange or lowerEdge/upperEdge\n this._monthsDataArray.forEach((month, index) => {\n if (this._rangeIndexes[0] != null && this._rangeIndexes[1] != null) {\n if (\n this._rangeIndexes[0] <= index &&\n index <= this._rangeIndexes[1]\n ) {\n month.isInRange = true;\n }\n if (this._rangeIndexes[0] === index) {\n month.isLowerEdge = true;\n }\n if (this._rangeIndexes[1] === index) {\n month.isUpperEdge = true;\n }\n }\n });\n this.emitDateRange();\n }\n // loop if date range is already picked\n else {\n // set rangeIndexes to [null,null] -> resets picker\n this.initRangeIndexes();\n // reset every element to initial state\n this._monthsDataArray.forEach((a) => {\n a.isInRange = false;\n a.isLowerEdge = false;\n a.isUpperEdge = false;\n a.isHovered = false;\n });\n // if date range is picked get new start date with next click\n this.onClick(indexClicked);\n }\n }\n\n emitDateRange() {\n if (this._rangeIndexes[0] != null && this._rangeIndexes[1] != null) {\n const fromMonthYear = this._monthsDataArray[this._rangeIndexes[0]];\n const toMonthYear = this._monthsDataArray[this._rangeIndexes[1]];\n const from = new Date(\n `${fromMonthYear.monthYear} ${fromMonthYear.monthName}`\n );\n const to = new Date(`${toMonthYear.monthYear} ${toMonthYear.monthName}`);\n const dateRange = getRangeOfMonths(from, to);\n this.dateRangeSelected.emit(dateRange);\n }\n }\n}\n","\n
\n\n
\n\n
\n \n
\n\n
\n

{{ years[currentYearIndex] }}

\n
\n\n
\n \n \n
\n \n \n \n
\n \n
\n
\n
\n
\n {{ month.monthName }}\n
\n
\n
\n
\n\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n/**\n * pagination used on reward list component and transaction history\n */\n@Component({\n selector: 'neo-reward-engine-web-paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.scss'],\n})\nexport class PaginatorComponent implements OnInit {\n @Input()\n public page!: number;\n @Input()\n public itemCount!: number;\n @Input()\n public itemNumberOptions!: number[];\n @Input()\n public itemsPerPageSelection = 12;\n\n @Output() pageChange: EventEmitter = new EventEmitter();\n @Output() itemsPerPageChange: EventEmitter =\n new EventEmitter();\n\n ngOnInit() {\n if (this.itemNumberOptions) {\n this.itemsPerPageSelection = this.itemNumberOptions[0];\n }\n }\n\n get pageMax(): number {\n return Math.ceil(this.itemCount / this.itemsPerPageSelection);\n }\n\n /**\n *\n * @param newPage to what page to navigate\n */\n changePage(newPage: number) {\n this.page = newPage;\n this.pageChange.emit(this.page);\n }\n\n /**\n *\n * @param itemsPerPage how many items should now be on the page\n */\n changeItemsPerPage(itemsPerPage: number) {\n this.itemsPerPageSelection = itemsPerPage;\n this.itemsPerPageChange.emit(this.itemsPerPageSelection);\n }\n}\n","
\n \n\n
\n
\n \n
\n
\n\n
\n
\n
{{ t('rewards.pagination.resultsPerPage') }}
\n
\n \n
\n
\n
\n\n
\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { TranslocoRootModule } from '../transloco/transloco-root.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SHARED_COMPONENTS } from './component-decl';\nimport { ErrorTailorModule } from '@ngneat/error-tailor';\nimport { TranslocoService } from '@ngneat/transloco';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\n//add specific bootstrap imports later on\n\n@NgModule({\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n imports: [\n CommonModule,\n RouterModule,\n TranslocoRootModule,\n ReactiveFormsModule,\n FormsModule,\n ErrorTailorModule.forRoot({\n errors: {\n useFactory(service: TranslocoService) {\n return {\n required: (error) => service.translate('error.required'),\n minlength: ({ requiredLength, actualLength }) =>\n `Expect ${requiredLength} but got ${actualLength}.`,\n email: (error) => service.translate('error.email'),\n pattern: (error) => service.translate('error.email'),\n };\n },\n deps: [TranslocoService],\n },\n }),\n NgSelectModule,\n ],\n declarations: [...SHARED_COMPONENTS],\n exports: [\n CommonModule,\n RouterModule,\n TranslocoRootModule,\n ReactiveFormsModule,\n FormsModule,\n ErrorTailorModule,\n NgSelectModule,\n ...SHARED_COMPONENTS,\n ],\n})\nexport class SharedModule {}\n","import { HttpClient } from '@angular/common/http';\nimport {\n TRANSLOCO_LOADER,\n Translation,\n TranslocoLoader,\n TRANSLOCO_CONFIG,\n translocoConfig,\n TranslocoModule,\n} from '@ngneat/transloco';\nimport { Injectable, NgModule } from '@angular/core';\nimport { environment } from '../../../environments/environment';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslocoHttpLoader implements TranslocoLoader {\n constructor(private http: HttpClient) {}\n\n getTranslation(lang: string) {\n return this.http.get(`../../assets/i18n/${lang}.json`);\n }\n}\n\n@NgModule({\n exports: [TranslocoModule],\n providers: [\n {\n provide: TRANSLOCO_CONFIG,\n useValue: translocoConfig({\n availableLangs: [\n 'en-US',\n 'en-GB',\n 'de-DE',\n 'fr-FR',\n 'fr-CA',\n 'pl-PL',\n 'es-ES',\n 'id-ID',\n 'en-MY',\n 'en-PH',\n 'en-SG',\n 'th-TH',\n 'en-TH',\n 'ko-KR',\n 'en-CA',\n 'de-AT',\n 'de-CH',\n 'fr-CH'\n ],\n defaultLang: 'en-US',\n fallbackLang: 'en-US',\n // Remove this option if your application doesn't support changing language in runtime.\n reRenderOnLangChange: true,\n prodMode: environment.production,\n missingHandler: {\n // It will use the first language set in the `fallbackLang` property\n useFallbackTranslation: true,\n },\n }),\n },\n { provide: TRANSLOCO_LOADER, useClass: TranslocoHttpLoader },\n ],\n})\nexport class TranslocoRootModule {}\n","/** stage environment on https://reward-engine.neo.stage.heidelberg.cloud/ */\nexport const environment = {\n production: true,\n // FOR CAS: fb00e95bcad346e29ff16c670e762153\n // FOR HPLUS: NmgqR9ClH3BXOwJ3yBE4SGYAXYig58mILUG1SDso\n secret: 'NmgqR9ClH3BXOwJ3yBE4SGYAXYig58mILUG1SDso',\n // FOR CAS: 8d1534e98fde40b4b7df93ccbe72af05-oidc\n // FOR HPLUS: 385bec04-424e-43b3-9196-48c5857d198f\n casClientId: '385bec04-424e-43b3-9196-48c5857d198f',\n redirectUri: 'https://reward-engine.neo.stage.heidelberg.cloud/',\n casBaseUrl: 'https://login.stage.heidelberg.com',\n // For CAS: /cas/logout?service=\n // FOR HPLUS: /hpluscheck/oauth/logout?service=\n idmLogoutUrl: '/hpluscheck/oauth/logout?service=',\n // For CAS: /cas/oidc/token\n // FOR HPLUS: /hpluscheck/oauth/access_token\n idmAccessTokenUrl: '/hpluscheck/oauth/access_token',\n // For CAS: /cas/oidc/authorize?response_type=code\n // FOR HPLUS - community: /hpluscheck/oauth/authorize/?use_upn_for_sub=false&response_type=code\n // FOR HPLUS - admin: /hpluscheck/oauth/authorize/?only_cas=true&response_type=code\n idmRedirectUri: '/hpluscheck/oauth/authorize/?use_upn_for_sub=true&response_type=code',\n idmAdminRedirectUri: '/hpluscheck/oauth/authorize/?only_cas=true&response_type=code',\n publicUrls: ['/', '/overview'],\n backendUrl: 'https://reward-engine.neo.stage.heidelberg.cloud',\n shopUrl: 'https://heidelberg--uat.sandbox.my.site.com/closedeshop/',\n rewardTokenStorageKey: 'REWARD_TOKEN_STORAGE_KEY',\n rewardUserStorageKey: 'REWARD_USER_STORAGE_KEY',\n adminRedirectUrl: 'https://reward-engine.neo.stage.heidelberg.cloud/hdmadmin/',\n enableLog: true\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { AppModule } from './app/app.module';\n\nimport { environment } from './environments/environment';\nimport * as Sentry from '@sentry/angular-ivy';\nimport { httpClientIntegration } from \"@sentry/integrations\";\n\n// Switch on Sentry Crash reporting\n// two environments production and stage-dev\nSentry.init({\n dsn: 'https://47ee4ddf1c7b4026abd042a3241f4a55@o276800.ingest.sentry.io/6238860',\n integrations: [httpClientIntegration({failedRequestStatusCodes: [400, 599]})],\n environment: environment.production ? 'production' : 'stage-dev',\n sendDefaultPii: true,\n});\nif (environment.production) {\n enableProdMode();\n}\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n","export * from './lib/auth.module';\nexport * from './lib/service/auth-config.service';\nexport * from './lib/service/auth.service';\nexport * from './lib/service/auth-admin.service';\nexport * from './lib/service/user.service';\nexport * from './lib/service/auth-interceptor.service';\nexport * from './lib/service/auth-admin-interceptor.service';\nexport * from './lib/service/auth-config';\nexport * from './lib/service/auth-repsonse';\nexport * from './lib/service/auth-utils';\nexport * from './lib/service/user.state';\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AuthConfiguration } from './service/auth-config';\nimport { ApiModule } from '@neo-reward-engine-web/ecom-api';\n\nexport const AUTH_CONFIG_TOKEN = new InjectionToken(\n 'forRoot() Auth Configuration'\n);\n\n@NgModule({\n imports: [CommonModule, HttpClientModule, ApiModule],\n})\nexport class AuthModule {\n static forRoot(config: AuthConfiguration): ModuleWithProviders {\n return {\n ngModule: AuthModule,\n providers: [\n {\n provide: AUTH_CONFIG_TOKEN,\n useValue: config,\n },\n ],\n };\n }\n}\n","import { NGXLogger } from 'ngx-logger';\nimport { tap } from 'rxjs/operators';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { throwError } from 'rxjs';\n\n/**\n * loggerFn\n *\n * Central logger function for RxJS pipes.\n *\n * @param logger\n * @param functionName\n * @param message\n */\nexport const loggerFn = (\n logger: NGXLogger,\n functionName: string,\n message: string = 'Data logger'\n) => tap((t) => logger.debug(`${message} - ${functionName}: `, t));\n\n/**\n * handleErrorFn\n *\n * Central error handler for RxJS pipes.\n *\n * @param message\n */\nexport const handleErrorFn = (message: string) => {\n return (error: HttpErrorResponse) => {\n let errorMessage = 'Unknown error!';\n if (error.error instanceof ErrorEvent) {\n // Client-side errors\n errorMessage = `Error: ${error.error.message}`;\n } else {\n // Server-side errors\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\n }\n // TODO Once we have a spinner service switch it off\n // if (stopSpinner) {\n // await loadingService.dismiss();\n // }\n\n // TODO Optional thing -> show default error toast to the user\n // const toast = await toastrService\n // .create({header: 'Error',\n // color: 'danger',\n // message: `An error has occurred: ${message} - ${errorMessage}!`,\n // duration: 10000});\n // await toast.present();\n return throwError(new Error(errorMessage));\n };\n};\n","import {createIdmRedirectUrl4Admin, redirectToCas} from './auth-utils';\nimport { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpHandler,\n HttpHeaders,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { catchError,} from 'rxjs/operators';\nimport { Observable, throwError } from 'rxjs';\nimport {\n AuthConfigService, DISABLE_REDIRECT,\n} from '@neo-reward-engine-web/auth';\nimport { UserService } from '@neo-reward-engine-web/auth';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthAdminInterceptorService {\n constructor(\n private configuration: AuthConfigService,\n private userService: UserService,\n private router: Router,\n ) {}\n\n intercept(\n req: HttpRequest,\n next: HttpHandler\n ): Observable> {\n const accessToken = this.userService.token$.value;\n\n // TODO: urlToExlude\n if (accessToken) {\n const header = 'Bearer ' + accessToken;\n req = req.clone({\n headers: new HttpHeaders({ Authorization: header }),\n });\n }\n\n return next.handle(req).pipe(\n catchError((error: HttpResponse) => {\n if (!req.context.get(DISABLE_REDIRECT) && (error.status === 401 || error.status === 403)) {\n const casURL = createIdmRedirectUrl4Admin(\n this.configuration.config.casBaseUrl,\n this.configuration.config.casClientId,\n this.configuration.config.redirectUri,\n this.configuration.config?.locale ?? 'en',\n this.configuration.config.idmAdminRedirectUri\n );\n redirectToCas(casURL);\n }\n return throwError(() => error);\n })\n );\n }\n}\n","import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {\n isRedirectToCasRequired,\n parseUrlParameter,\n redirectToCas,\n checkIfTokenExpired, mapBackendUserState, createIdmRedirectUrl4Admin,\n} from './auth-utils';\nimport {map, Observable} from 'rxjs';\nimport {concatMap, delay, tap} from 'rxjs/operators';\nimport {AuthResponse} from './auth-repsonse';\nimport {AuthConfigService} from './auth-config.service';\nimport {UserService} from './user.service';\nimport {UserState} from './user.state';\nimport {NGXLogger} from 'ngx-logger';\nimport {loggerFn} from '../common-helper/logger';\nimport {Location} from '@angular/common';\nimport {AccessToken} from './access.token';\nimport {AuthService as EcomAuthService} from '@neo-reward-engine-web/ecom-api';\nimport {DateTime} from \"luxon\";\n\nexport class AuthAdminService {\n constructor(\n private readonly configuration: AuthConfigService,\n private readonly http: HttpClient,\n private readonly userService: UserService,\n private readonly logger: NGXLogger,\n private location: Location,\n private readonly ecomAuthService: EcomAuthService\n ) {\n }\n\n public initAuth(): Promise {\n return new Promise((resolve) => {\n let isAuthenticatedByExternalSystem = false;\n // Check if we already went to CAS and got an answer\n if (parseUrlParameter(window.location.href).has('code')) {\n // We received the Authorization Code from CAS\n // Retrieve Access token\n const authCode = parseUrlParameter(window.location.href).get('code');\n\n this.retrieveAccessCode(authCode!)\n .pipe(\n delay(1000), // Animation\n tap(() => {\n this.location.replaceState(window.location.pathname);\n }),\n loggerFn(\n this.logger,\n 'AuthService.initAuth',\n 'retrieving token from CAS: '\n ),\n tap(res => res.id_token ? isAuthenticatedByExternalSystem = true : isAuthenticatedByExternalSystem = false),\n concatMap((res) => this.authenticateUser(res.id_token)),\n loggerFn(\n this.logger,\n 'AuthService.initAuth',\n 'retrieving access token from backend: '\n ),\n tap((res) => this.userService.upsertToken(res)),\n concatMap(() => this.retrieveUserInfo()),\n loggerFn(\n this.logger,\n 'AuthService.initAuth',\n 'retrieving user info from backend: '\n )\n )\n .subscribe({\n next: (res) => {\n this.userService.upsertUserState(mapBackendUserState(res));\n this.userService.has401 = false;\n resolve();\n },\n error: (error) => {\n this.logger.error('AuthService.initAuth() has error: ', error);\n if (error.status === 404) {\n this.userService.has401 = true;\n }\n this.userService.upsertUserState({\n isUnauthorized: true,\n isAuthenticated: isAuthenticatedByExternalSystem,\n })\n resolve();\n },\n });\n } else if (\n this.checkIfTokenAndUserInfoIsPresent() || !isRedirectToCasRequired(\n this.configuration.config.publicUrls,\n new URL(window.location.href)\n )\n ) {\n resolve();\n //resolve and do nothing (stay on public route)\n }\n\n // redirect to CAS - BaseUrl + spec URL\n else {\n if (this.checkIfTokenAndUserInfoIsPresent()) {\n resolve()\n } else {\n redirectToCas(\n createIdmRedirectUrl4Admin(\n this.configuration.config.casBaseUrl,\n this.configuration.config.casClientId,\n window.location.href,\n this.configuration.config.locale!,\n this.configuration.config.idmAdminRedirectUri\n )\n );\n // TODO Do we really reach this code?\n resolve();\n }\n }\n });\n }\n\n private checkIfTokenAndUserInfoIsPresent(): boolean {\n const accessTokenSerialized = sessionStorage.getItem(this.configuration.config.rewardTokenStorageKey);\n let accessToken: AccessToken;\n let userState: UserState;\n // General check for access token\n if (accessTokenSerialized) {\n accessToken = JSON.parse(accessTokenSerialized);\n } else {\n // No access token found, return false\n return false;\n }\n // Check if token has expired and userInfo is present\n if (checkIfTokenExpired(accessToken.expiresAt, DateTime.now())) {\n return false;\n }\n\n const userStateSerialized = sessionStorage.getItem(this.configuration.config.rewardUserStorageKey);\n if (userStateSerialized) {\n userState = JSON.parse(userStateSerialized);\n } else {\n return false;\n }\n\n // Hydrate data\n this.userService.upsertToken(accessToken, false);\n this.userService.upsertUserState(userState, false);\n return true;\n }\n\n private retrieveAccessCode(code: string): Observable {\n let body = new HttpParams();\n body = body.set('client_id', this.configuration.config.casClientId);\n // This was the old redirect_uri configuration we have to see that this is not breaking anything\n // body = body.set('redirect_uri', `${this.configuration.config.redirectUri}overview`);\n body = body.set(\n 'redirect_uri',\n `${this.configuration.config.redirectUri}${this.location.path().split('?')[0]}`\n );\n body = body.set('grant_type', 'authorization_code');\n body = body.set('code', code);\n body = body.set('client_secret', this.configuration.config.secret);\n\n let headers = new HttpHeaders();\n headers = headers.append(\n 'Content-Type',\n 'application/x-www-form-urlencoded'\n );\n headers = headers.append(\n 'Authorization',\n `Basic ${btoa(\n this.configuration.config.casClientId +\n ':' +\n this.configuration.config.secret\n )}`\n );\n\n return this.http.post(\n `${this.configuration.config.casBaseUrl}${this.configuration.config.idmAccessTokenUrl}`,\n body,\n {\n headers: headers,\n }\n );\n }\n\n private retrieveUserInfo(): Observable {\n return this.ecomAuthService\n .getUserInfo()\n .pipe(\n map(\n (userInfo) =>\n ({\n sapAccountNumber: userInfo.sapAccountNumber?.value,\n accountName: userInfo.accountName,\n contactName: userInfo.contactName,\n userType: userInfo.userType,\n ssu: userInfo.ssu,\n isMainContact: userInfo.isMainContact,\n isSuperAdmin: userInfo.isSuperAdmin,\n status: userInfo.status,\n canRedeem: userInfo.canRedeem,\n relatedSsu: userInfo.relatedSsu\n } as UserState)\n )\n );\n }\n\n private authenticateUser(jwtToken: string): Observable {\n let headers = new HttpHeaders();\n headers = headers.append('Authorization', `Bearer ${jwtToken}`);\n this.logger.debug(`Bearer ${jwtToken}`);\n return this.http.get(\n `${this.configuration.config.backendUrl}/api/v1/auth/token`,\n {\n headers,\n }\n );\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { AuthConfiguration } from './auth-config';\nimport { AUTH_CONFIG_TOKEN } from '@neo-reward-engine-web/auth';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthConfigService {\n constructor(\n @Inject(AUTH_CONFIG_TOKEN) public readonly config: AuthConfiguration\n ) {}\n}\n","export interface AuthConfiguration {\n casBaseUrl: string;\n idmLogoutUrl: string;\n idmAccessTokenUrl: string;\n idmRedirectUri: string;\n idmAdminRedirectUri: string;\n casClientId: string;\n redirectUri: string;\n locale?: string;\n secret: string;\n publicUrls: string[];\n backendUrl: string;\n rewardTokenStorageKey: string;\n rewardUserStorageKey: string;\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpHandler,\n HttpHeaders,\n HttpRequest,\n HttpResponse,\n} from '@angular/common/http';\nimport { catchError } from 'rxjs/operators';\nimport { Observable, throwError } from 'rxjs';\nimport {\n AuthConfigService, createIdmRedirectUrl, redirectToCas,\n} from '@neo-reward-engine-web/auth';\nimport { UserService } from '@neo-reward-engine-web/auth';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthInterceptorService {\n constructor(\n private configuration: AuthConfigService,\n private userService: UserService,\n ) {}\n\n intercept(\n req: HttpRequest,\n next: HttpHandler\n ): Observable> {\n const accessToken = this.userService.token$.value;\n\n // TODO: urlToExlude\n if (accessToken) {\n const header = 'Bearer ' + accessToken;\n req = req.clone({\n headers: new HttpHeaders({ Authorization: header }),\n });\n }\n return next.handle(req).pipe(\n catchError((error: HttpResponse) => {\n if (error.status === 401 || error.status === 403) {\n const casURL = createIdmRedirectUrl(\n this.configuration.config.casBaseUrl,\n this.configuration.config.casClientId,\n this.configuration.config.redirectUri,\n this.configuration.config?.locale ?? 'en',\n this.configuration.config.idmRedirectUri\n );\n redirectToCas(casURL);\n }\n return throwError(() => error);\n })\n );\n }\n}\n","export interface AuthResponse {\n access_token: string;\n refresh_token: string;\n id_token: string;\n}\n","// CAS Oidc CodeFlow:\n// Request Access Parameters:\n//\n\nimport {DateTime} from \"luxon\";\nimport {UserState} from \"./user.state\";\n\nexport type ExternalErrorCode = '';\n\nexport const parseUrlParameter = (href: string): URLSearchParams => {\n const url = new URL(href);\n return url.searchParams;\n};\n\nexport const decodeTokenWithoutValidating = (token: string): any => {\n const base64Url = token.split('.');\n\n if (!(base64Url.length >= 2)) {\n return null;\n }\n\n const base64 = decodeURIComponent(\n atob(base64Url[1])\n .split('')\n .map((c) => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n\n return JSON.parse(base64);\n};\n\n/**\n * Check for expired Tokens.\n *\n * @param exp Expiration in Seconds since 01.01.1970\n * @param offset Offset defaults to 1800 sec - contingency working time\n */\nexport const hasTokenExpired = (\n exp: number,\n offset: number = 1800\n): boolean => {\n const now = Date.now();\n return exp <= now / 1000 + offset;\n};\n\nexport const createCasUrl = (\n baseUrl: string,\n clientId: string,\n redirectUri: string,\n locale: string\n) =>\n encodeURI(\n // tslint:disable-next-line:max-line-length\n `${baseUrl}/cas/oidc/authorize?response_type=code&scope=openid+profile+heidelberg_id&client_id=${clientId}&redirect_uri=${redirectUri}&locale=${locale}`\n );\n\nexport const createIdmRedirectUrl = (\n baseUrl: string,\n clientId: string,\n redirectUri: string,\n locale: string,\n idmRedirectUri: string\n) =>\n encodeURI(\n `${baseUrl}${idmRedirectUri}&scope=openid+profile+heidelberg_id&client_id=${clientId}&redirect_uri=${redirectUri}&locale=${locale}`\n);\n\nexport const createIdmRedirectUrl4Admin = (\n baseUrl: string,\n clientId: string,\n redirectUri: string,\n locale: string,\n idmRedirectUri: string\n) =>\n encodeURI(\n `${baseUrl}${idmRedirectUri}&scope=openid+profile+heidelberg_id&client_id=${clientId}&redirect_uri=${redirectUri}&locale=${locale}`\n);\nexport const redirectToCas = (casUrl: string) =>\n (window.location.href = casUrl);\n\nexport const saveToken = (key: string, token: string) =>\n sessionStorage.setItem(key, token);\n\nexport const getToken = (key: string): string | null =>\n sessionStorage.getItem(key);\n\nexport const redirectToExternalErrorPage = (\n url: string,\n reason: ExternalErrorCode\n) => (window.location.href = `${url}?reason=${reason}`);\n\nexport const containsUrlToExclude = (url: string, casUrlFragment: string) =>\n url.includes(casUrlFragment);\n\nexport const isRedirectToCasRequired = (\n publicUrls: string[],\n href: URL\n): boolean =>\n publicUrls.map((url) => href.pathname === url).every((vote) => !vote);\n\nexport const checkIfTokenExpired = (\n expiresAtAsIso: string,\n compareDateTime: DateTime\n): boolean => {\n const diffMinutes = DateTime.fromISO(expiresAtAsIso).diff(compareDateTime, 'minutes').minutes;\n return diffMinutes < 15;\n}\n\nexport const mapBackendUserState = (userState: Partial): UserState => {\n const state = Object.assign({} as UserState, userState);\n state.isUnauthorized = false;\n state.isAuthenticated = true;\n return state;\n}\n","import {HttpClient, HttpContext, HttpContextToken, HttpHeaders, HttpParams} from '@angular/common/http';\nimport {\n isRedirectToCasRequired,\n parseUrlParameter,\n redirectToCas,\n checkIfTokenExpired, mapBackendUserState, createIdmRedirectUrl,\n} from './auth-utils';\nimport {map, Observable} from 'rxjs';\nimport {concatMap, delay, tap} from 'rxjs/operators';\nimport {AuthResponse} from './auth-repsonse';\nimport {AuthConfigService} from './auth-config.service';\nimport {UserService} from './user.service';\nimport {UserState} from './user.state';\nimport {NGXLogger} from 'ngx-logger';\nimport {loggerFn} from '../common-helper/logger';\nimport {Location} from '@angular/common';\nimport {AccessToken} from './access.token';\nimport {AuthService as EcomAuthService} from '@neo-reward-engine-web/ecom-api';\nimport {DateTime} from \"luxon\";\n\nexport const DISABLE_REDIRECT = new HttpContextToken(() => false);\n\nexport class AuthService {\n constructor(\n private readonly configuration: AuthConfigService,\n private readonly http: HttpClient,\n private readonly userService: UserService,\n private readonly logger: NGXLogger,\n private location: Location,\n private readonly ecomAuthService: EcomAuthService\n ) {\n }\n\n public initAuth(): Promise {\n return new Promise((resolve) => {\n let isAuthenticatedByExternalSystem = false;\n // Check if we already went to CAS and got an answer\n if (parseUrlParameter(window.location.href).has('code')) {\n // We received the Authorization Code from CAS\n // Retrieve Access token\n const authCode = parseUrlParameter(window.location.href).get('code');\n\n this.retrieveAccessCode(authCode!)\n .pipe(\n delay(1000), // Animation\n tap(() =>\n this.location.replaceState(window.location.pathname)\n ),\n loggerFn(\n this.logger,\n 'AuthService.initAuth',\n 'retrieving token from CAS: '\n ),\n tap(res => res.id_token ? isAuthenticatedByExternalSystem = true : isAuthenticatedByExternalSystem = false),\n concatMap((res) => this.authenticateUser(res.id_token)),\n loggerFn(\n this.logger,\n 'AuthService.initAuth',\n 'retrieving access token from backend: '\n ),\n tap((res) => this.userService.upsertToken(res)),\n concatMap(() => this.retrieveUserInfo()),\n loggerFn(\n this.logger,\n 'AuthService.initAuth',\n 'retrieving user info from backend: '\n )\n )\n .subscribe({\n next: (res) => {\n this.userService.upsertUserState(mapBackendUserState(res));\n this.userService.has401 = false;\n resolve();\n },\n error: (error) => {\n this.logger.error('AuthService.initAuth() has error: ', error);\n if (error.status === 404 || error.status === 401) {\n this.userService.has401 = true;\n }\n this.userService.upsertUserState({\n isUnauthorized: true,\n isAuthenticated: isAuthenticatedByExternalSystem,\n })\n resolve();\n },\n });\n } else if (\n this.checkIfTokenAndUserInfoIsPresent() || !isRedirectToCasRequired(\n this.configuration.config.publicUrls,\n new URL(window.location.href)\n )\n ) {\n resolve();\n //resolve and do nothing (stay on public route)\n }\n\n // redirect to CAS - BaseUrl + spec URL\n else {\n if (this.checkIfTokenAndUserInfoIsPresent()) {\n resolve()\n } else {\n redirectToCas(\n createIdmRedirectUrl(\n this.configuration.config.casBaseUrl,\n this.configuration.config.casClientId,\n window.location.href,\n this.configuration.config.locale!,\n this.configuration.config.idmRedirectUri\n )\n );\n // TODO Do we really reach this code?\n resolve();\n }\n }\n });\n }\n\n private checkIfTokenAndUserInfoIsPresent(): boolean {\n const accessTokenSerialized = sessionStorage.getItem(this.configuration.config.rewardTokenStorageKey);\n let accessToken: AccessToken;\n let userState: UserState;\n // General check for access token\n if (accessTokenSerialized) {\n accessToken = JSON.parse(accessTokenSerialized);\n } else {\n // No access token found, return false\n return false;\n }\n // Check if token has expired and userInfo is present\n if (checkIfTokenExpired(accessToken.expiresAt, DateTime.now())) {\n return false;\n }\n\n const userStateSerialized = sessionStorage.getItem(this.configuration.config.rewardUserStorageKey);\n if (userStateSerialized) {\n userState = JSON.parse(userStateSerialized);\n } else {\n return false;\n }\n\n // Hydrate data\n this.userService.upsertToken(accessToken, false);\n this.userService.upsertUserState(userState, false);\n return true;\n }\n\n private retrieveAccessCode(code: string): Observable {\n let body = new HttpParams();\n body = body.set('client_id', this.configuration.config.casClientId);\n // body = body.set('redirect_uri', `${this.configuration.config.redirectUri}overview`);\n body = body.set(\n 'redirect_uri',\n `${this.configuration.config.redirectUri}${this.location.path().split('?')[0]}`\n );\n body = body.set('grant_type', 'authorization_code');\n body = body.set('code', code);\n body = body.set('client_secret', this.configuration.config.secret);\n\n let headers = new HttpHeaders();\n headers = headers.append(\n 'Content-Type',\n 'application/x-www-form-urlencoded'\n );\n headers = headers.append(\n 'Authorization',\n `Basic ${btoa(\n this.configuration.config.casClientId +\n ':' +\n this.configuration.config.secret\n )}`\n );\n return this.http.post(\n `${this.configuration.config.casBaseUrl}${this.configuration.config.idmAccessTokenUrl}`,\n body,\n {\n headers: headers,\n context: new HttpContext().set(DISABLE_REDIRECT,true)\n }\n );\n }\n\n private retrieveUserInfo(): Observable {\n return this.ecomAuthService\n .getUserInfo()\n .pipe(\n map(\n (userInfo) =>\n ({\n sapAccountNumber: userInfo.sapAccountNumber?.value,\n accountName: userInfo.accountName,\n contactName: userInfo.contactName,\n userType: userInfo.userType,\n ssu: userInfo.ssu,\n isMainContact: userInfo.isMainContact,\n isSuperAdmin: userInfo.isSuperAdmin,\n status: userInfo.status,\n canRedeem: userInfo.canRedeem,\n relatedSsu: userInfo.relatedSsu\n } as UserState)\n )\n );\n }\n\n private authenticateUser(jwtToken: string): Observable {\n let headers = new HttpHeaders();\n headers = headers.append('Authorization', `Bearer ${jwtToken}`);\n this.logger.debug(`Bearer ${jwtToken}`);\n return this.http.get(\n `${this.configuration.config.backendUrl}/api/v1/auth/token`,\n {\n headers,\n }\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { UserState } from './user.state';\nimport {AccessToken} from \"./access.token\";\nimport {AuthConfigService} from \"./auth-config.service\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService {\n\n private _userState$ = new BehaviorSubject(null);\n private _token$ = new BehaviorSubject(null);\n private _has401 = false;\n\n constructor(\n private readonly autConfigService: AuthConfigService,\n ) {}\n\n get userState$(): BehaviorSubject {\n return this._userState$;\n }\n\n get token$(): BehaviorSubject {\n return this._token$;\n }\n\n get has401(): boolean {\n return this._has401;\n }\n\n set has401(value: boolean) {\n this._has401 = value;\n }\n\n public upsertToken(token: AccessToken, needsDehydration = true): void {\n if (needsDehydration) {\n sessionStorage\n .setItem(this.autConfigService.config.rewardTokenStorageKey, JSON.stringify(token));\n }\n this._token$.next(token.accessToken);\n }\n\n public upsertUserState(userState: UserState, needsDehydration = true): void {\n if (needsDehydration) {\n sessionStorage\n .setItem(this.autConfigService.config.rewardUserStorageKey, JSON.stringify(userState));\n }\n this._userState$.next(userState);\n }\n\n public logout(): void {\n sessionStorage.clear();\n this._token$.next(null);\n this._userState$.next(null);\n }\n}\n","export type UserType = 'Community' | 'Admin';\n\nexport interface UserState {\n contactName?: string;\n userType?: UserType;\n ssu?: string;\n sapAccountNumber?: string;\n accountName?: string;\n rewardPrograms?: string[] | null;\n status?: string;\n isMainContact?: boolean;\n isSuperAdmin?: boolean;\n canRedeem?: boolean;\n relatedSsu?: string[] | null;\n isUnauthorized?: boolean;\n isAuthenticated?: boolean;\n}\n","export * from './lib/api/index';\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\nimport { AdminUserService } from './api/adminUser.service';\nimport { AdminWidgetContentService } from './api/adminWidgetContent.service';\nimport { AssetService } from './api/asset.service';\nimport { AuthService } from './api/auth.service';\nimport { CommunityUserService } from './api/communityUser.service';\nimport { EShopService } from './api/eShop.service';\nimport { ReplicatorService } from './api/replicator.service';\nimport { SuperAdminUserService } from './api/superAdminUser.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { AdminAppDefaults } from '../model/models';\nimport { AdminTransactionModel } from '../model/models';\nimport { DeleteOperationResult } from '../model/models';\nimport { ReplaceOneOperationResult } from '../model/models';\nimport { RewardAccountDto } from '../model/models';\nimport { RewardAccountStatus } from '../model/models';\nimport { RewardEngineError } from '../model/models';\nimport { RewardOrderDto } from '../model/models';\nimport { RewardOrderViewDtoPaginatedList } from '../model/models';\nimport { RewardProduct } from '../model/models';\nimport { RewardProductDto } from '../model/models';\nimport { RewardProgram } from '../model/models';\nimport { RewardRule } from '../model/models';\nimport { RewardRuleDto } from '../model/models';\nimport { RewardTier } from '../model/models';\nimport { RewardTransaction } from '../model/models';\nimport { RewardTransactionDto } from '../model/models';\nimport { RewardUser } from '../model/models';\nimport { RuleType } from '../model/models';\nimport { SimplePointHistoryViewDto } from '../model/models';\nimport { SortingDirection } from '../model/models';\nimport { SsuEmailSettings } from '../model/models';\nimport { SsuInfoDto } from '../model/models';\nimport { UserInfo } from '../model/models';\nimport { UserPermission } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdminUserService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Delete a product\n * @param id \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRewardProduct(id: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteRewardProduct(id: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteRewardProduct(id: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteRewardProduct(id: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteRewardProduct.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/product/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a product\n * @param id \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRewardProductSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteRewardProductSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteRewardProductSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteRewardProductSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteRewardProductSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling deleteRewardProductSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/product/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a rule\n * @param id \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRewardRule(id: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteRewardRule(id: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteRewardRule(id: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteRewardRule(id: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteRewardRule.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/rule/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a rule\n * @param id \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteRewardRuleSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteRewardRuleSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteRewardRuleSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteRewardRuleSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteRewardRuleSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling deleteRewardRuleSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/rule/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete EShopOrderInProgress transaction\n * @param id \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteTransaction(id: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteTransaction(id: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteTransaction(id: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteTransaction(id: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteTransaction.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/transaction/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete EShopOrderInProgress transaction\n * @param id \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteTransactionSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteTransactionSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteTransactionSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteTransactionSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling deleteTransactionSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling deleteTransactionSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/transaction/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets orders for one or all accounts\n * @param ssu \n * @param accountId Account to get orders for. Get all orders for the ssu if null.\n * @param orderIdQuery \n * @param limit Return this many results at once\n * @param offset Offset result list by this many items\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAccountOrders(ssu: string, accountId?: string, orderIdQuery?: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAccountOrders(ssu: string, accountId?: string, orderIdQuery?: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAccountOrders(ssu: string, accountId?: string, orderIdQuery?: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAccountOrders(ssu: string, accountId?: string, orderIdQuery?: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getAccountOrders.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (accountId !== undefined && accountId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n accountId, 'accountId');\n }\n if (orderIdQuery !== undefined && orderIdQuery !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n orderIdQuery, 'orderIdQuery');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (offset !== undefined && offset !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n offset, 'offset');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/orders`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets orders for one or all accounts\n * @param ssu \n * @param sandbox \n * @param accountId Account to get orders for. Get all orders for the ssu if null.\n * @param orderIdQuery \n * @param limit Return this many results at once\n * @param offset Offset result list by this many items\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAccountOrdersSandbox(ssu: string, sandbox: string, accountId?: string, orderIdQuery?: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAccountOrdersSandbox(ssu: string, sandbox: string, accountId?: string, orderIdQuery?: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAccountOrdersSandbox(ssu: string, sandbox: string, accountId?: string, orderIdQuery?: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAccountOrdersSandbox(ssu: string, sandbox: string, accountId?: string, orderIdQuery?: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getAccountOrdersSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getAccountOrdersSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (accountId !== undefined && accountId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n accountId, 'accountId');\n }\n if (orderIdQuery !== undefined && orderIdQuery !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n orderIdQuery, 'orderIdQuery');\n }\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (offset !== undefined && offset !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n offset, 'offset');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/orders`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get account transactions\n * @param sapAccountNumber \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAccountTransactions(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAccountTransactions(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAccountTransactions(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAccountTransactions(sapAccountNumber: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling getAccountTransactions.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/account/${encodeURIComponent(String(sapAccountNumber))}/transactions`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get account transactions\n * @param sapAccountNumber \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAccountTransactionsSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAccountTransactionsSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAccountTransactionsSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAccountTransactionsSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling getAccountTransactionsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getAccountTransactionsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/account/${encodeURIComponent(String(sapAccountNumber))}/transactions`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get users information of the given account id\n * @param sapAccountNumber \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAccountUserInfos(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAccountUserInfos(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAccountUserInfos(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAccountUserInfos(sapAccountNumber: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling getAccountUserInfos.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/account/${encodeURIComponent(String(sapAccountNumber))}/users`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get users information of the given account id\n * @param sapAccountNumber \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAccountUserInfosSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAccountUserInfosSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAccountUserInfosSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAccountUserInfosSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling getAccountUserInfosSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getAccountUserInfosSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/account/${encodeURIComponent(String(sapAccountNumber))}/users`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get default values for admin app\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAdminAppDefaults(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAdminAppDefaults(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAdminAppDefaults(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAdminAppDefaults(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/adminDefaults`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get default values for admin app\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAdminAppDefaultsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAdminAppDefaultsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAdminAppDefaultsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAdminAppDefaultsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getAdminAppDefaultsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/adminDefaults`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return a reward order given its id\n * @param id \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrder(id: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getOrder(id: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrder(id: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrder(id: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getOrder.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/order/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return a reward order given its id\n * @param id \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOrderSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getOrderSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getOrderSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getOrderSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getOrderSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/order/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return RewardAdminUser\n * @param adminId \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardAdminUser(adminId: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getRewardAdminUser(adminId: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardAdminUser(adminId: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardAdminUser(adminId: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (adminId === null || adminId === undefined) {\n throw new Error('Required parameter adminId was null or undefined when calling getRewardAdminUser.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/admin/user/${encodeURIComponent(String(adminId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return RewardAdminUser\n * @param adminId \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardAdminUserSandbox(adminId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getRewardAdminUserSandbox(adminId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardAdminUserSandbox(adminId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardAdminUserSandbox(adminId: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (adminId === null || adminId === undefined) {\n throw new Error('Required parameter adminId was null or undefined when calling getRewardAdminUserSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getRewardAdminUserSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/admin/user/${encodeURIComponent(String(adminId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List products\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardProducts(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardProducts(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRewardProducts(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRewardProducts(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getRewardProducts.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/products`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List products\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardProductsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardProductsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRewardProductsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRewardProductsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getRewardProductsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getRewardProductsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/products`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get rules\n * @param ssu \n * @param type \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardRules(ssu: string, type: RuleType, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardRules(ssu: string, type: RuleType, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRewardRules(ssu: string, type: RuleType, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRewardRules(ssu: string, type: RuleType, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getRewardRules.');\n }\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling getRewardRules.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/rules/type/${encodeURIComponent(String(type))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get rules\n * @param ssu \n * @param type \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardRulesSandbox(ssu: string, type: RuleType, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardRulesSandbox(ssu: string, type: RuleType, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRewardRulesSandbox(ssu: string, type: RuleType, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getRewardRulesSandbox(ssu: string, type: RuleType, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getRewardRulesSandbox.');\n }\n if (type === null || type === undefined) {\n throw new Error('Required parameter type was null or undefined when calling getRewardRulesSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getRewardRulesSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/rules/type/${encodeURIComponent(String(type))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return RewardUser\n * @param contactId \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardUser(contactId: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getRewardUser(contactId: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardUser(contactId: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardUser(contactId: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (contactId === null || contactId === undefined) {\n throw new Error('Required parameter contactId was null or undefined when calling getRewardUser.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/user/${encodeURIComponent(String(contactId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return RewardUser\n * @param contactId \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardUserSandbox(contactId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getRewardUserSandbox(contactId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardUserSandbox(contactId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardUserSandbox(contactId: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (contactId === null || contactId === undefined) {\n throw new Error('Required parameter contactId was null or undefined when calling getRewardUserSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getRewardUserSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/user/${encodeURIComponent(String(contactId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets information about an SSUs email settings\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSsuEmailSettings(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSsuEmailSettings(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuEmailSettings(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuEmailSettings(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getSsuEmailSettings.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/ssuEmailSettings`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets information about an SSUs email settings\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSsuEmailSettingsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSsuEmailSettingsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuEmailSettingsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuEmailSettingsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getSsuEmailSettingsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getSsuEmailSettingsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/ssuEmailSettings`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets information about an SSU\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSsuInfo(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSsuInfo(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuInfo(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuInfo(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getSsuInfo.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/info`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets information about an SSU\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSsuInfoSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getSsuInfoSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuInfoSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuInfoSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getSsuInfoSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getSsuInfoSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/info`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get ssu transactions\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSsuTransactions(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuTransactions(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSsuTransactions(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSsuTransactions(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getSsuTransactions.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/transactions`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get ssu transactions\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSsuTransactionsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getSsuTransactionsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSsuTransactionsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getSsuTransactionsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getSsuTransactionsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getSsuTransactionsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/transactions`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets information about total balance over time for all ssu\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTotalBalanceHistory(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTotalBalanceHistory(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTotalBalanceHistory(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTotalBalanceHistory(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/balanceHistory`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets information about total balance over time for all ssu\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getTotalBalanceHistorySandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getTotalBalanceHistorySandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTotalBalanceHistorySandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getTotalBalanceHistorySandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getTotalBalanceHistorySandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/balanceHistory`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUnprocessedOrdersAmount(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUnprocessedOrdersAmount(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUnprocessedOrdersAmount(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUnprocessedOrdersAmount(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getUnprocessedOrdersAmount.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/orders/unprocessed`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUnprocessedOrdersAmountSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUnprocessedOrdersAmountSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUnprocessedOrdersAmountSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUnprocessedOrdersAmountSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getUnprocessedOrdersAmountSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUnprocessedOrdersAmountSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/orders/unprocessed`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get contacts requesting to join\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public joinRequests(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public joinRequests(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public joinRequests(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public joinRequests(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling joinRequests.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/joinRequests`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get contacts requesting to join\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public joinRequestsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public joinRequestsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public joinRequestsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public joinRequestsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling joinRequestsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling joinRequestsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/joinRequests`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Onboarding of new RewardAccounts, also including RewardUsers and RewardPermissions\n * @param sapAccountNumber \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public onboardRewardAccount(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public onboardRewardAccount(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public onboardRewardAccount(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public onboardRewardAccount(sapAccountNumber: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling onboardRewardAccount.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (sapAccountNumber !== undefined && sapAccountNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sapAccountNumber, 'sapAccountNumber');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/OnboardRewardAccount`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Onboarding of new RewardAccounts, also including RewardUsers and RewardPermissions\n * @param sapAccountNumber \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public onboardRewardAccountSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public onboardRewardAccountSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public onboardRewardAccountSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public onboardRewardAccountSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling onboardRewardAccountSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling onboardRewardAccountSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (sapAccountNumber !== undefined && sapAccountNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sapAccountNumber, 'sapAccountNumber');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/OnboardRewardAccount`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get account\n * @param sapAccountNumber \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccount(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardAccount(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccount(sapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccount(sapAccountNumber: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling rewardAccount.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/account/sapAccountNumber/${encodeURIComponent(String(sapAccountNumber))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get account\n * @param sapAccountNumber \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardAccountSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountSandbox(sapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling rewardAccountSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling rewardAccountSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/account/sapAccountNumber/${encodeURIComponent(String(sapAccountNumber))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set account status\n * @param sapAccountNumber \n * @param status \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountStatus(sapAccountNumber: string, status: RewardAccountStatus, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardAccountStatus(sapAccountNumber: string, status: RewardAccountStatus, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountStatus(sapAccountNumber: string, status: RewardAccountStatus, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountStatus(sapAccountNumber: string, status: RewardAccountStatus, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling rewardAccountStatus.');\n }\n if (status === null || status === undefined) {\n throw new Error('Required parameter status was null or undefined when calling rewardAccountStatus.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/account/${encodeURIComponent(String(sapAccountNumber))}/accountStatus/${encodeURIComponent(String(status))}`,\n null,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set account status\n * @param sapAccountNumber \n * @param status \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountStatusSandbox(sapAccountNumber: string, status: RewardAccountStatus, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardAccountStatusSandbox(sapAccountNumber: string, status: RewardAccountStatus, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountStatusSandbox(sapAccountNumber: string, status: RewardAccountStatus, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountStatusSandbox(sapAccountNumber: string, status: RewardAccountStatus, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling rewardAccountStatusSandbox.');\n }\n if (status === null || status === undefined) {\n throw new Error('Required parameter status was null or undefined when calling rewardAccountStatusSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling rewardAccountStatusSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/account/${encodeURIComponent(String(sapAccountNumber))}/accountStatus/${encodeURIComponent(String(status))}`,\n null,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get accounts\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccounts(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccounts(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccounts(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccounts(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardAccounts.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/accounts`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get accounts filtered by status\n * @param ssu \n * @param status \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountsByStatus(ssu: string, status: RewardAccountStatus, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsByStatus(ssu: string, status: RewardAccountStatus, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsByStatus(ssu: string, status: RewardAccountStatus, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsByStatus(ssu: string, status: RewardAccountStatus, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardAccountsByStatus.');\n }\n if (status === null || status === undefined) {\n throw new Error('Required parameter status was null or undefined when calling rewardAccountsByStatus.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/accounts/${encodeURIComponent(String(status))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get accounts filtered by status\n * @param ssu \n * @param status \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountsByStatusSandbox(ssu: string, status: RewardAccountStatus, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsByStatusSandbox(ssu: string, status: RewardAccountStatus, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsByStatusSandbox(ssu: string, status: RewardAccountStatus, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsByStatusSandbox(ssu: string, status: RewardAccountStatus, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardAccountsByStatusSandbox.');\n }\n if (status === null || status === undefined) {\n throw new Error('Required parameter status was null or undefined when calling rewardAccountsByStatusSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling rewardAccountsByStatusSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/accounts/${encodeURIComponent(String(status))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param ssu \n * @param nameFilter \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountsCount(ssu: string, nameFilter?: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardAccountsCount(ssu: string, nameFilter?: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsCount(ssu: string, nameFilter?: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsCount(ssu: string, nameFilter?: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardAccountsCount.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (nameFilter !== undefined && nameFilter !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n nameFilter, 'nameFilter');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/SsuRewardAccountsCount`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param ssu \n * @param sandbox \n * @param nameFilter \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountsCountSandbox(ssu: string, sandbox: string, nameFilter?: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardAccountsCountSandbox(ssu: string, sandbox: string, nameFilter?: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsCountSandbox(ssu: string, sandbox: string, nameFilter?: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsCountSandbox(ssu: string, sandbox: string, nameFilter?: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardAccountsCountSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling rewardAccountsCountSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (nameFilter !== undefined && nameFilter !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n nameFilter, 'nameFilter');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/SsuRewardAccountsCount`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get accounts for page\n * @param pageSize \n * @param ssu \n * @param page \n * @param nameFilter \n * @param sortColumn \n * @param sorting \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountsPage(pageSize: number, ssu: string, page: number, nameFilter?: string, sortColumn?: string, sorting?: SortingDirection, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsPage(pageSize: number, ssu: string, page: number, nameFilter?: string, sortColumn?: string, sorting?: SortingDirection, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsPage(pageSize: number, ssu: string, page: number, nameFilter?: string, sortColumn?: string, sorting?: SortingDirection, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsPage(pageSize: number, ssu: string, page: number, nameFilter?: string, sortColumn?: string, sorting?: SortingDirection, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (pageSize === null || pageSize === undefined) {\n throw new Error('Required parameter pageSize was null or undefined when calling rewardAccountsPage.');\n }\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardAccountsPage.');\n }\n if (page === null || page === undefined) {\n throw new Error('Required parameter page was null or undefined when calling rewardAccountsPage.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (pageSize !== undefined && pageSize !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pageSize, 'pageSize');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (nameFilter !== undefined && nameFilter !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n nameFilter, 'nameFilter');\n }\n if (sortColumn !== undefined && sortColumn !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortColumn, 'sortColumn');\n }\n if (sorting !== undefined && sorting !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sorting, 'sorting');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/pageAccounts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get accounts for page\n * @param pageSize \n * @param ssu \n * @param page \n * @param sandbox \n * @param nameFilter \n * @param sortColumn \n * @param sorting \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountsPageSandbox(pageSize: number, ssu: string, page: number, sandbox: string, nameFilter?: string, sortColumn?: string, sorting?: SortingDirection, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsPageSandbox(pageSize: number, ssu: string, page: number, sandbox: string, nameFilter?: string, sortColumn?: string, sorting?: SortingDirection, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsPageSandbox(pageSize: number, ssu: string, page: number, sandbox: string, nameFilter?: string, sortColumn?: string, sorting?: SortingDirection, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsPageSandbox(pageSize: number, ssu: string, page: number, sandbox: string, nameFilter?: string, sortColumn?: string, sorting?: SortingDirection, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (pageSize === null || pageSize === undefined) {\n throw new Error('Required parameter pageSize was null or undefined when calling rewardAccountsPageSandbox.');\n }\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardAccountsPageSandbox.');\n }\n if (page === null || page === undefined) {\n throw new Error('Required parameter page was null or undefined when calling rewardAccountsPageSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling rewardAccountsPageSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (pageSize !== undefined && pageSize !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n pageSize, 'pageSize');\n }\n if (page !== undefined && page !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n page, 'page');\n }\n if (nameFilter !== undefined && nameFilter !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n nameFilter, 'nameFilter');\n }\n if (sortColumn !== undefined && sortColumn !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sortColumn, 'sortColumn');\n }\n if (sorting !== undefined && sorting !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n sorting, 'sorting');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/pageAccounts`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get accounts\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardAccountsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardAccountsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public rewardAccountsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardAccountsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling rewardAccountsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/accounts`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get program\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardProgramInfo(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardProgramInfo(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardProgramInfo(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardProgramInfo(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardProgramInfo.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/program`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get program\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardProgramInfoSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardProgramInfoSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardProgramInfoSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardProgramInfoSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardProgramInfoSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling rewardProgramInfoSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/program`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get settings\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardSettings(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardSettings(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardSettings(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardSettings(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardSettings.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/settings`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get settings\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public rewardSettingsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public rewardSettingsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardSettingsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public rewardSettingsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling rewardSettingsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling rewardSettingsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/settings`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upsert rule\n * @param rewardRule \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setRewardRule(rewardRule: RewardRule, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setRewardRule(rewardRule: RewardRule, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setRewardRule(rewardRule: RewardRule, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setRewardRule(rewardRule: RewardRule, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (rewardRule === null || rewardRule === undefined) {\n throw new Error('Required parameter rewardRule was null or undefined when calling setRewardRule.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/rule`,\n rewardRule,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upsert rule\n * @param sandbox \n * @param rewardRule \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setRewardRuleSandbox(sandbox: string, rewardRule: RewardRule, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setRewardRuleSandbox(sandbox: string, rewardRule: RewardRule, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setRewardRuleSandbox(sandbox: string, rewardRule: RewardRule, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setRewardRuleSandbox(sandbox: string, rewardRule: RewardRule, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling setRewardRuleSandbox.');\n }\n if (rewardRule === null || rewardRule === undefined) {\n throw new Error('Required parameter rewardRule was null or undefined when calling setRewardRuleSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/rule`,\n rewardRule,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upsert settings\n * @param ssu \n * @param rewardProgram \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setRewardSettings(ssu: string, rewardProgram: RewardProgram, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setRewardSettings(ssu: string, rewardProgram: RewardProgram, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setRewardSettings(ssu: string, rewardProgram: RewardProgram, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setRewardSettings(ssu: string, rewardProgram: RewardProgram, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling setRewardSettings.');\n }\n if (rewardProgram === null || rewardProgram === undefined) {\n throw new Error('Required parameter rewardProgram was null or undefined when calling setRewardSettings.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/settings`,\n rewardProgram,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upsert settings\n * @param ssu \n * @param sandbox \n * @param rewardProgram \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setRewardSettingsSandbox(ssu: string, sandbox: string, rewardProgram: RewardProgram, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setRewardSettingsSandbox(ssu: string, sandbox: string, rewardProgram: RewardProgram, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setRewardSettingsSandbox(ssu: string, sandbox: string, rewardProgram: RewardProgram, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setRewardSettingsSandbox(ssu: string, sandbox: string, rewardProgram: RewardProgram, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling setRewardSettingsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling setRewardSettingsSandbox.');\n }\n if (rewardProgram === null || rewardProgram === undefined) {\n throw new Error('Required parameter rewardProgram was null or undefined when calling setRewardSettingsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/settings`,\n rewardProgram,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Sets an SSUs email settings\n * @param ssu \n * @param ssuEmailSettings \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setSsuEmailSettings(ssu: string, ssuEmailSettings: SsuEmailSettings, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setSsuEmailSettings(ssu: string, ssuEmailSettings: SsuEmailSettings, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setSsuEmailSettings(ssu: string, ssuEmailSettings: SsuEmailSettings, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setSsuEmailSettings(ssu: string, ssuEmailSettings: SsuEmailSettings, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling setSsuEmailSettings.');\n }\n if (ssuEmailSettings === null || ssuEmailSettings === undefined) {\n throw new Error('Required parameter ssuEmailSettings was null or undefined when calling setSsuEmailSettings.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (ssu !== undefined && ssu !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ssu, 'ssu');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/ssuEmailSettings`,\n ssuEmailSettings,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Sets an SSUs email settings\n * @param ssu \n * @param sandbox \n * @param ssuEmailSettings \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setSsuEmailSettingsSandbox(ssu: string, sandbox: string, ssuEmailSettings: SsuEmailSettings, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setSsuEmailSettingsSandbox(ssu: string, sandbox: string, ssuEmailSettings: SsuEmailSettings, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setSsuEmailSettingsSandbox(ssu: string, sandbox: string, ssuEmailSettings: SsuEmailSettings, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setSsuEmailSettingsSandbox(ssu: string, sandbox: string, ssuEmailSettings: SsuEmailSettings, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling setSsuEmailSettingsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling setSsuEmailSettingsSandbox.');\n }\n if (ssuEmailSettings === null || ssuEmailSettings === undefined) {\n throw new Error('Required parameter ssuEmailSettings was null or undefined when calling setSsuEmailSettingsSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (ssu !== undefined && ssu !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ssu, 'ssu');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssuEmailSettings`,\n ssuEmailSettings,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set user permissions\n * @param sapAccountNumber \n * @param userPermission \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setUserPermissions(sapAccountNumber: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setUserPermissions(sapAccountNumber: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setUserPermissions(sapAccountNumber: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setUserPermissions(sapAccountNumber: string, userPermission: Array, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling setUserPermissions.');\n }\n if (userPermission === null || userPermission === undefined) {\n throw new Error('Required parameter userPermission was null or undefined when calling setUserPermissions.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/account/${encodeURIComponent(String(sapAccountNumber))}/userPermissions`,\n userPermission,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set user permissions\n * @param sapAccountNumber \n * @param sandbox \n * @param userPermission \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setUserPermissionsSandbox(sapAccountNumber: string, sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setUserPermissionsSandbox(sapAccountNumber: string, sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setUserPermissionsSandbox(sapAccountNumber: string, sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setUserPermissionsSandbox(sapAccountNumber: string, sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling setUserPermissionsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling setUserPermissionsSandbox.');\n }\n if (userPermission === null || userPermission === undefined) {\n throw new Error('Required parameter userPermission was null or undefined when calling setUserPermissionsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/account/${encodeURIComponent(String(sapAccountNumber))}/userPermissions`,\n userPermission,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get tiers\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public ssuTiers(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public ssuTiers(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public ssuTiers(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public ssuTiers(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling ssuTiers.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/tiers`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get tiers\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public ssuTiersSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public ssuTiersSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public ssuTiersSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public ssuTiersSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling ssuTiersSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling ssuTiersSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/tiers`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Updated a given order\\'s OrderProcessed flag\n * @param id \n * @param newStatus \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateOrderStatus(id: string, newStatus: boolean, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateOrderStatus(id: string, newStatus: boolean, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateOrderStatus(id: string, newStatus: boolean, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateOrderStatus(id: string, newStatus: boolean, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateOrderStatus.');\n }\n if (newStatus === null || newStatus === undefined) {\n throw new Error('Required parameter newStatus was null or undefined when calling updateOrderStatus.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (newStatus !== undefined && newStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n newStatus, 'newStatus');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/order/${encodeURIComponent(String(id))}/status`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Updated a given order\\'s OrderProcessed flag\n * @param id \n * @param newStatus \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateOrderStatusSandbox(id: string, newStatus: boolean, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateOrderStatusSandbox(id: string, newStatus: boolean, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateOrderStatusSandbox(id: string, newStatus: boolean, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateOrderStatusSandbox(id: string, newStatus: boolean, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling updateOrderStatusSandbox.');\n }\n if (newStatus === null || newStatus === undefined) {\n throw new Error('Required parameter newStatus was null or undefined when calling updateOrderStatusSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling updateOrderStatusSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (newStatus !== undefined && newStatus !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n newStatus, 'newStatus');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/order/${encodeURIComponent(String(id))}/status`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upsert product\n * @param rewardProduct \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateRewardProduct(rewardProduct: RewardProduct, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateRewardProduct(rewardProduct: RewardProduct, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateRewardProduct(rewardProduct: RewardProduct, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateRewardProduct(rewardProduct: RewardProduct, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (rewardProduct === null || rewardProduct === undefined) {\n throw new Error('Required parameter rewardProduct was null or undefined when calling updateRewardProduct.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/product`,\n rewardProduct,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upsert product\n * @param sandbox \n * @param rewardProduct \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateRewardProductSandbox(sandbox: string, rewardProduct: RewardProduct, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateRewardProductSandbox(sandbox: string, rewardProduct: RewardProduct, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateRewardProductSandbox(sandbox: string, rewardProduct: RewardProduct, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateRewardProductSandbox(sandbox: string, rewardProduct: RewardProduct, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling updateRewardProductSandbox.');\n }\n if (rewardProduct === null || rewardProduct === undefined) {\n throw new Error('Required parameter rewardProduct was null or undefined when calling updateRewardProductSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/product`,\n rewardProduct,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upsert account transaction\n * @param sapAccountNumber \n * @param adminTransactionModel \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public upsertTransaction(sapAccountNumber: string, adminTransactionModel: AdminTransactionModel, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public upsertTransaction(sapAccountNumber: string, adminTransactionModel: AdminTransactionModel, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertTransaction(sapAccountNumber: string, adminTransactionModel: AdminTransactionModel, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertTransaction(sapAccountNumber: string, adminTransactionModel: AdminTransactionModel, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling upsertTransaction.');\n }\n if (adminTransactionModel === null || adminTransactionModel === undefined) {\n throw new Error('Required parameter adminTransactionModel was null or undefined when calling upsertTransaction.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/account/${encodeURIComponent(String(sapAccountNumber))}/transaction`,\n adminTransactionModel,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upsert account transaction\n * @param sapAccountNumber \n * @param sandbox \n * @param adminTransactionModel \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public upsertTransactionSandbox(sapAccountNumber: string, sandbox: string, adminTransactionModel: AdminTransactionModel, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public upsertTransactionSandbox(sapAccountNumber: string, sandbox: string, adminTransactionModel: AdminTransactionModel, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertTransactionSandbox(sapAccountNumber: string, sandbox: string, adminTransactionModel: AdminTransactionModel, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertTransactionSandbox(sapAccountNumber: string, sandbox: string, adminTransactionModel: AdminTransactionModel, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sapAccountNumber === null || sapAccountNumber === undefined) {\n throw new Error('Required parameter sapAccountNumber was null or undefined when calling upsertTransactionSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling upsertTransactionSandbox.');\n }\n if (adminTransactionModel === null || adminTransactionModel === undefined) {\n throw new Error('Required parameter adminTransactionModel was null or undefined when calling upsertTransactionSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/account/${encodeURIComponent(String(sapAccountNumber))}/transaction`,\n adminTransactionModel,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { RewardEngineError } from '../model/models';\nimport { WidgetContent } from '../model/models';\nimport { WidgetContentDTO } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdminWidgetContentService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Post add widget-content\n * @param widgetContentDTO \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public addWidgetContent(widgetContentDTO: WidgetContentDTO, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public addWidgetContent(widgetContentDTO: WidgetContentDTO, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addWidgetContent(widgetContentDTO: WidgetContentDTO, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public addWidgetContent(widgetContentDTO: WidgetContentDTO, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (widgetContentDTO === null || widgetContentDTO === undefined) {\n throw new Error('Required parameter widgetContentDTO was null or undefined when calling addWidgetContent.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/add/widgetContent`,\n widgetContentDTO,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete a widget-content\n * @param widgetContentId \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteWidgetContent(widgetContentId: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteWidgetContent(widgetContentId: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteWidgetContent(widgetContentId: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteWidgetContent(widgetContentId: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (widgetContentId === null || widgetContentId === undefined) {\n throw new Error('Required parameter widgetContentId was null or undefined when calling deleteWidgetContent.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/widgetContent/${encodeURIComponent(String(widgetContentId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get active widget-contents\n * @param locale \n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getActiveWidgetContents(locale: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getActiveWidgetContents(locale: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActiveWidgetContents(locale: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getActiveWidgetContents(locale: string, ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (locale === null || locale === undefined) {\n throw new Error('Required parameter locale was null or undefined when calling getActiveWidgetContents.');\n }\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getActiveWidgetContents.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (locale !== undefined && locale !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n locale, 'locale');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/activeWidgetContents`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get widget-content by Id\n * @param id \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWidgetContentById(id: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getWidgetContentById(id: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWidgetContentById(id: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWidgetContentById(id: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getWidgetContentById.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (id !== undefined && id !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n id, 'id');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/widgetContent/id`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get List widget-contents\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWidgetContents(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWidgetContents(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWidgetContents(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWidgetContents(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getWidgetContents.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/widgetContents`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get widget-contents for ssu and locale\n * @param locale \n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getWidgetContentsForSsuAndLocale(locale: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getWidgetContentsForSsuAndLocale(locale: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWidgetContentsForSsuAndLocale(locale: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getWidgetContentsForSsuAndLocale(locale: string, ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (locale === null || locale === undefined) {\n throw new Error('Required parameter locale was null or undefined when calling getWidgetContentsForSsuAndLocale.');\n }\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getWidgetContentsForSsuAndLocale.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (locale !== undefined && locale !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n locale, 'locale');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssulocale/${encodeURIComponent(String(ssu))}/widgetContents`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Update widget-content\n * @param widgetContentId \n * @param widgetContentDTO \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public updateWidgetContent(widgetContentId: string, widgetContentDTO: WidgetContentDTO, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public updateWidgetContent(widgetContentId: string, widgetContentDTO: WidgetContentDTO, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWidgetContent(widgetContentId: string, widgetContentDTO: WidgetContentDTO, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public updateWidgetContent(widgetContentId: string, widgetContentDTO: WidgetContentDTO, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (widgetContentId === null || widgetContentId === undefined) {\n throw new Error('Required parameter widgetContentId was null or undefined when calling updateWidgetContent.');\n }\n if (widgetContentDTO === null || widgetContentDTO === undefined) {\n throw new Error('Required parameter widgetContentDTO was null or undefined when calling updateWidgetContent.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (widgetContentId !== undefined && widgetContentId !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n widgetContentId, 'widgetContentId');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/update/widgetContent`,\n widgetContentDTO,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './adminUser.service';\nimport { AdminUserService } from './adminUser.service';\nexport * from './adminWidgetContent.service';\nimport { AdminWidgetContentService } from './adminWidgetContent.service';\nexport * from './asset.service';\nimport { AssetService } from './asset.service';\nexport * from './auth.service';\nimport { AuthService } from './auth.service';\nexport * from './communityUser.service';\nimport { CommunityUserService } from './communityUser.service';\nexport * from './eShop.service';\nimport { EShopService } from './eShop.service';\nexport * from './replicator.service';\nimport { ReplicatorService } from './replicator.service';\nexport * from './superAdminUser.service';\nimport { SuperAdminUserService } from './superAdminUser.service';\nexport const APIS = [AdminUserService, AdminWidgetContentService, AssetService, AuthService, CommunityUserService, EShopService, ReplicatorService, SuperAdminUserService];\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { RewardEngineError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Delete an asset\n * @param assetName Asset name\n * @param ssu Ssu\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteAsset(assetName: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteAsset(assetName: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAsset(assetName: string, ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAsset(assetName: string, ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (assetName === null || assetName === undefined) {\n throw new Error('Required parameter assetName was null or undefined when calling deleteAsset.');\n }\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling deleteAsset.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/asset/${encodeURIComponent(String(assetName))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete an asset\n * @param assetName Asset name\n * @param ssu Ssu\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteAssetSandbox(assetName: string, ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteAssetSandbox(assetName: string, ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAssetSandbox(assetName: string, ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAssetSandbox(assetName: string, ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (assetName === null || assetName === undefined) {\n throw new Error('Required parameter assetName was null or undefined when calling deleteAssetSandbox.');\n }\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling deleteAssetSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling deleteAssetSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/asset/${encodeURIComponent(String(assetName))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get assets\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAssets(ssu: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAssets(ssu: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAssets(ssu: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAssets(ssu: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getAssets.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/asset`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get assets\n * @param ssu \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAssetsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAssetsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAssetsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAssetsSandbox(ssu: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling getAssetsSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getAssetsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/asset`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upload an asset.\n * @param ssu Ssu\n * @param file \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public uploadAndCreateAsset(ssu: string, file: Blob, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public uploadAndCreateAsset(ssu: string, file: Blob, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public uploadAndCreateAsset(ssu: string, file: Blob, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public uploadAndCreateAsset(ssu: string, file: Blob, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling uploadAndCreateAsset.');\n }\n if (file === null || file === undefined) {\n throw new Error('Required parameter file was null or undefined when calling uploadAndCreateAsset.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: this.encoder});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/ssu/${encodeURIComponent(String(ssu))}/asset`,\n convertFormParamsToString ? formParams.toString() : formParams,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Upload an asset.\n * @param ssu Ssu\n * @param sandbox \n * @param file \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public uploadAndCreateAssetSandbox(ssu: string, sandbox: string, file: Blob, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public uploadAndCreateAssetSandbox(ssu: string, sandbox: string, file: Blob, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public uploadAndCreateAssetSandbox(ssu: string, sandbox: string, file: Blob, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public uploadAndCreateAssetSandbox(ssu: string, sandbox: string, file: Blob, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (ssu === null || ssu === undefined) {\n throw new Error('Required parameter ssu was null or undefined when calling uploadAndCreateAssetSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling uploadAndCreateAssetSandbox.');\n }\n if (file === null || file === undefined) {\n throw new Error('Required parameter file was null or undefined when calling uploadAndCreateAssetSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let formParams: { append(param: string, value: any): any; };\n let useForm = false;\n let convertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n useForm = canConsumeForm;\n if (useForm) {\n formParams = new FormData();\n } else {\n formParams = new HttpParams({encoder: this.encoder});\n }\n\n if (file !== undefined) {\n formParams = formParams.append('file', file) as any || formParams;\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssu/${encodeURIComponent(String(ssu))}/asset`,\n convertFormParamsToString ? formParams.toString() : formParams,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { RewardEngineError } from '../model/models';\nimport { SessionToken } from '../model/models';\nimport { UserInfo } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Gets reward-engine token from CAS id_token\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public authToken(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public authToken(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authToken(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authToken(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/auth/token`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets reward-engine token from CAS access_token\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public authTokenCas(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public authTokenCas(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authTokenCas(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authTokenCas(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/auth/token/accessToken`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets reward-engine token from CAS access_token\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public authTokenCasSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public authTokenCasSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authTokenCasSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authTokenCasSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling authTokenCasSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/auth/token/accessToken`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets reward-engine token from CAS id_token\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public authTokenSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public authTokenSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authTokenSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public authTokenSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling authTokenSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/auth/token`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get logged in user information\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserInfo(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserInfo(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserInfo(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserInfo(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/user`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get logged in user information\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserInfoSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserInfoSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserInfoSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserInfoSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserInfoSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/user`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Refresh user context\n * @param effectiveAccountSapAccountNumber \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public refreshContext(effectiveAccountSapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public refreshContext(effectiveAccountSapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public refreshContext(effectiveAccountSapAccountNumber: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public refreshContext(effectiveAccountSapAccountNumber: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (effectiveAccountSapAccountNumber === null || effectiveAccountSapAccountNumber === undefined) {\n throw new Error('Required parameter effectiveAccountSapAccountNumber was null or undefined when calling refreshContext.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (effectiveAccountSapAccountNumber !== undefined && effectiveAccountSapAccountNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n effectiveAccountSapAccountNumber, 'effectiveAccountSapAccountNumber');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/refreshContext`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Refresh user context\n * @param effectiveAccountSapAccountNumber \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public refreshContextSandbox(effectiveAccountSapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public refreshContextSandbox(effectiveAccountSapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public refreshContextSandbox(effectiveAccountSapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public refreshContextSandbox(effectiveAccountSapAccountNumber: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (effectiveAccountSapAccountNumber === null || effectiveAccountSapAccountNumber === undefined) {\n throw new Error('Required parameter effectiveAccountSapAccountNumber was null or undefined when calling refreshContextSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling refreshContextSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (effectiveAccountSapAccountNumber !== undefined && effectiveAccountSapAccountNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n effectiveAccountSapAccountNumber, 'effectiveAccountSapAccountNumber');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/refreshContext`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CartItemDto } from '../model/models';\nimport { Eshop } from '../model/models';\nimport { Redeem } from '../model/models';\nimport { RedeemRequest } from '../model/models';\nimport { RewardAccountDto } from '../model/models';\nimport { RewardEngineError } from '../model/models';\nimport { RewardOrderDto } from '../model/models';\nimport { RewardProduct } from '../model/models';\nimport { RewardProductDto } from '../model/models';\nimport { RewardProgramDto } from '../model/models';\nimport { RewardTierDto } from '../model/models';\nimport { SsuInformation } from '../model/models';\nimport { UserBalance } from '../model/models';\nimport { UserBalanceTransactions } from '../model/models';\nimport { UserContext } from '../model/models';\nimport { UserPermission } from '../model/models';\nimport { UserPermissionDto } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommunityUserService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Account user permissions\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public geAccountUserPermissions(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public geAccountUserPermissions(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public geAccountUserPermissions(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public geAccountUserPermissions(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/permissions`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Account user permissions\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public geAccountUserPermissionsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public geAccountUserPermissionsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public geAccountUserPermissionsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public geAccountUserPermissionsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling geAccountUserPermissionsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/permissions`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllEshops(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllEshops(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllEshops(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllEshops(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/eshops`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllEshopsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllEshopsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllEshopsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAllEshopsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getAllEshopsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/eshops`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all program reward products for tier benefits data\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getProgramRewardProducts(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getProgramRewardProducts(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getProgramRewardProducts(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getProgramRewardProducts(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/programProducts`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List all program reward products for tier benefits data\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getProgramRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getProgramRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getProgramRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getProgramRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getProgramRewardProductsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/programProducts`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Fetch a reward product given its identifier\n * @param id \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardProductById(id: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getRewardProductById(id: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardProductById(id: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardProductById(id: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getRewardProductById.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/product/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Fetch a reward product given its identifier\n * @param id \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getRewardProductByIdSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getRewardProductByIdSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardProductByIdSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getRewardProductByIdSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getRewardProductByIdSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getRewardProductByIdSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/product/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List advertised rewardProducts\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserAdvertisedRewardProducts(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserAdvertisedRewardProducts(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserAdvertisedRewardProducts(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserAdvertisedRewardProducts(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/advertisedProducts`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List advertised rewardProducts\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserAdvertisedRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserAdvertisedRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserAdvertisedRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserAdvertisedRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserAdvertisedRewardProductsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/advertisedProducts`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return overall user balance\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserBalance(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserBalance(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserBalance(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserBalance(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/balance`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return overall user balance\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserBalanceSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserBalanceSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserBalanceSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserBalanceSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserBalanceSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/balance`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return user transactions from the given dates\n * @param from \n * @param to \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserBalanceTransactions(from?: string, to?: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserBalanceTransactions(from?: string, to?: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserBalanceTransactions(from?: string, to?: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserBalanceTransactions(from?: string, to?: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (from !== undefined && from !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n from, 'from');\n }\n if (to !== undefined && to !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n to, 'to');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/balanceTransactions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return user transactions from the given dates\n * @param sandbox \n * @param from \n * @param to \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserBalanceTransactionsSandbox(sandbox: string, from?: string, to?: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserBalanceTransactionsSandbox(sandbox: string, from?: string, to?: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserBalanceTransactionsSandbox(sandbox: string, from?: string, to?: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserBalanceTransactionsSandbox(sandbox: string, from?: string, to?: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserBalanceTransactionsSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (from !== undefined && from !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n from, 'from');\n }\n if (to !== undefined && to !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n to, 'to');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/balanceTransactions`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return a reward order given its id\n * @param id \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserOrder(id: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserOrder(id: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserOrder(id: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserOrder(id: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getUserOrder.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/userOrder/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return a reward order given its id\n * @param id \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserOrderSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserOrderSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserOrderSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserOrderSandbox(id: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (id === null || id === undefined) {\n throw new Error('Required parameter id was null or undefined when calling getUserOrderSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserOrderSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/userOrder/${encodeURIComponent(String(id))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return reward program settings as dto\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserProgramSettings(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserProgramSettings(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserProgramSettings(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserProgramSettings(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/userProgramSettings`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return reward program settings as dto\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserProgramSettingsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserProgramSettingsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserProgramSettingsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserProgramSettingsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserProgramSettingsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/userProgramSettings`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Fetch rewardAccount information\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserRewardAccount(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserRewardAccount(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserRewardAccount(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserRewardAccount(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/account`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Fetch rewardAccount information\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserRewardAccountSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getUserRewardAccountSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserRewardAccountSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserRewardAccountSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserRewardAccountSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/account`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List reward products allowed to redeem for catalogue\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserRewardProducts(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserRewardProducts(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserRewardProducts(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserRewardProducts(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/userProducts`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List reward products allowed to redeem for catalogue\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserRewardProductsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserRewardProductsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/userProducts`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get user reward tiers sorted by level\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserRewardTiers(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserRewardTiers(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserRewardTiers(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserRewardTiers(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/tiers`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get user reward tiers sorted by level\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getUserRewardTiersSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getUserRewardTiersSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserRewardTiersSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getUserRewardTiersSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getUserRewardTiersSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/tiers`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return user transactions for the last 12 months.\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getYearUserBalanceTransactions(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getYearUserBalanceTransactions(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getYearUserBalanceTransactions(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getYearUserBalanceTransactions(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/yearBalanceTransactions`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Return user transactions for the last 12 months.\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getYearUserBalanceTransactionsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getYearUserBalanceTransactionsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getYearUserBalanceTransactionsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getYearUserBalanceTransactionsSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getYearUserBalanceTransactionsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/yearBalanceTransactions`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Redeem\n * @param redeemRequest \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public redeem(redeemRequest: RedeemRequest, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public redeem(redeemRequest: RedeemRequest, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public redeem(redeemRequest: RedeemRequest, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public redeem(redeemRequest: RedeemRequest, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (redeemRequest === null || redeemRequest === undefined) {\n throw new Error('Required parameter redeemRequest was null or undefined when calling redeem.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/redeem`,\n redeemRequest,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Redeem\n * @param sandbox \n * @param redeemRequest \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public redeemSandbox(sandbox: string, redeemRequest: RedeemRequest, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public redeemSandbox(sandbox: string, redeemRequest: RedeemRequest, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public redeemSandbox(sandbox: string, redeemRequest: RedeemRequest, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public redeemSandbox(sandbox: string, redeemRequest: RedeemRequest, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling redeemSandbox.');\n }\n if (redeemRequest === null || redeemRequest === undefined) {\n throw new Error('Required parameter redeemRequest was null or undefined when calling redeemSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/redeem`,\n redeemRequest,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Redeem simulate\n * @param cartItemDto \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public redeemSimulate(cartItemDto: Array, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public redeemSimulate(cartItemDto: Array, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public redeemSimulate(cartItemDto: Array, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public redeemSimulate(cartItemDto: Array, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (cartItemDto === null || cartItemDto === undefined) {\n throw new Error('Required parameter cartItemDto was null or undefined when calling redeemSimulate.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/redeemSimulate`,\n cartItemDto,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Redeem simulate\n * @param sandbox \n * @param cartItemDto \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public redeemSimulateSandbox(sandbox: string, cartItemDto: Array, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public redeemSimulateSandbox(sandbox: string, cartItemDto: Array, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public redeemSimulateSandbox(sandbox: string, cartItemDto: Array, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public redeemSimulateSandbox(sandbox: string, cartItemDto: Array, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling redeemSimulateSandbox.');\n }\n if (cartItemDto === null || cartItemDto === undefined) {\n throw new Error('Required parameter cartItemDto was null or undefined when calling redeemSimulateSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/redeemSimulate`,\n cartItemDto,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set permissions to users\n * @param userPermission \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setUsers(userPermission: Array, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setUsers(userPermission: Array, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setUsers(userPermission: Array, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setUsers(userPermission: Array, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (userPermission === null || userPermission === undefined) {\n throw new Error('Required parameter userPermission was null or undefined when calling setUsers.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/permissions`,\n userPermission,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set permissions to users\n * @param sandbox \n * @param userPermission \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public setUsersSandbox(sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public setUsersSandbox(sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setUsersSandbox(sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public setUsersSandbox(sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling setUsersSandbox.');\n }\n if (userPermission === null || userPermission === undefined) {\n throw new Error('Required parameter userPermission was null or undefined when calling setUsersSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/permissions`,\n userPermission,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get SSU information\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public ssuInformation(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public ssuInformation(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public ssuInformation(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public ssuInformation(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/ssuInformation`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get SSU information\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public ssuInformationSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public ssuInformationSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public ssuInformationSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public ssuInformationSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling ssuInformationSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/ssuInformation`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Accept Terms and Conditions.\n * @param userPermission \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public termsAndConditions(userPermission: Array, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public termsAndConditions(userPermission: Array, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public termsAndConditions(userPermission: Array, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public termsAndConditions(userPermission: Array, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (userPermission === null || userPermission === undefined) {\n throw new Error('Required parameter userPermission was null or undefined when calling termsAndConditions.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/acceptTermsAndConditions`,\n userPermission,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Accept Terms and Conditions.\n * @param sandbox \n * @param userPermission \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public termsAndConditionsSandbox(sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public termsAndConditionsSandbox(sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public termsAndConditionsSandbox(sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public termsAndConditionsSandbox(sandbox: string, userPermission: Array, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling termsAndConditionsSandbox.');\n }\n if (userPermission === null || userPermission === undefined) {\n throw new Error('Required parameter userPermission was null or undefined when calling termsAndConditionsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/acceptTermsAndConditions`,\n userPermission,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get user context\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public userContext(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public userContext(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public userContext(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public userContext(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/userContext`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Get user context\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public userContextSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public userContextSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public userContextSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public userContextSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling userContextSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/userContext`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { CollectCart } from '../model/models';\nimport { CollectCartResponse } from '../model/models';\nimport { RewardAccountDto } from '../model/models';\nimport { RewardEngineError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EShopService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Account information\n * @param accountId \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public accountInformation(accountId: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public accountInformation(accountId: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public accountInformation(accountId: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public accountInformation(accountId: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (accountId === null || accountId === undefined) {\n throw new Error('Required parameter accountId was null or undefined when calling accountInformation.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/account/${encodeURIComponent(String(accountId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Account information\n * @param accountId \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public accountInformationSandbox(accountId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public accountInformationSandbox(accountId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public accountInformationSandbox(accountId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public accountInformationSandbox(accountId: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (accountId === null || accountId === undefined) {\n throw new Error('Required parameter accountId was null or undefined when calling accountInformationSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling accountInformationSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/account/${encodeURIComponent(String(accountId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Perform collect points\n * @param collectCart \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public collectPoints(collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public collectPoints(collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public collectPoints(collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public collectPoints(collectCart: CollectCart, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (collectCart === null || collectCart === undefined) {\n throw new Error('Required parameter collectCart was null or undefined when calling collectPoints.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/collectPoints`,\n collectCart,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Collect points information\n * @param collectCart \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public collectPointsInfo(collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public collectPointsInfo(collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public collectPointsInfo(collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public collectPointsInfo(collectCart: CollectCart, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (collectCart === null || collectCart === undefined) {\n throw new Error('Required parameter collectCart was null or undefined when calling collectPointsInfo.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/collectPointsInfo`,\n collectCart,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Collect points information\n * @param sandbox \n * @param collectCart \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public collectPointsInfoSandbox(sandbox: string, collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public collectPointsInfoSandbox(sandbox: string, collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public collectPointsInfoSandbox(sandbox: string, collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public collectPointsInfoSandbox(sandbox: string, collectCart: CollectCart, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling collectPointsInfoSandbox.');\n }\n if (collectCart === null || collectCart === undefined) {\n throw new Error('Required parameter collectCart was null or undefined when calling collectPointsInfoSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/collectPointsInfo`,\n collectCart,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Perform collect points\n * @param sandbox \n * @param collectCart \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public collectPointsSandbox(sandbox: string, collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public collectPointsSandbox(sandbox: string, collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public collectPointsSandbox(sandbox: string, collectCart: CollectCart, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public collectPointsSandbox(sandbox: string, collectCart: CollectCart, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling collectPointsSandbox.');\n }\n if (collectCart === null || collectCart === undefined) {\n throw new Error('Required parameter collectCart was null or undefined when calling collectPointsSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/collectPoints`,\n collectCart,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { RewardEngineError } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReplicatorService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public apiV1BuildAndEnableRewardAccountsAndUsersPost(ssu?: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable;\n public apiV1BuildAndEnableRewardAccountsAndUsersPost(ssu?: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>;\n public apiV1BuildAndEnableRewardAccountsAndUsersPost(ssu?: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>;\n public apiV1BuildAndEnableRewardAccountsAndUsersPost(ssu?: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable {\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (ssu !== undefined && ssu !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ssu, 'ssu');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'text/plain',\n 'application/json',\n 'text/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/BuildAndEnableRewardAccountsAndUsers`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param sandbox \n * @param ssu \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public apiV1SandboxSandboxBuildAndEnableRewardAccountsAndUsersPost(sandbox: string, ssu?: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable;\n public apiV1SandboxSandboxBuildAndEnableRewardAccountsAndUsersPost(sandbox: string, ssu?: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>;\n public apiV1SandboxSandboxBuildAndEnableRewardAccountsAndUsersPost(sandbox: string, ssu?: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable>;\n public apiV1SandboxSandboxBuildAndEnableRewardAccountsAndUsersPost(sandbox: string, ssu?: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'text/plain' | 'application/json' | 'text/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling apiV1SandboxSandboxBuildAndEnableRewardAccountsAndUsersPost.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (ssu !== undefined && ssu !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n ssu, 'ssu');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'text/plain',\n 'application/json',\n 'text/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/BuildAndEnableRewardAccountsAndUsers`,\n null,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Replicates a Salesforce sandbox\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public replicate(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public replicate(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public replicate(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public replicate(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/replicate`,\n null,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Replicates a Salesforce sandbox\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public replicateSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public replicateSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public replicateSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public replicateSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling replicateSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.post(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/replicate`,\n null,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\nimport { ReplaceOneOperationResult } from '../model/models';\nimport { RewardEngineError } from '../model/models';\nimport { RewardOrderViewDtoPaginatedList } from '../model/models';\nimport { RewardUser } from '../model/models';\n\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SuperAdminUserService {\n\n protected basePath = 'http://localhost';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string, @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key,\n (value as Date).toISOString().substr(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Delete admin user\n * @param userId \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteAdminUser(userId: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteAdminUser(userId: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAdminUser(userId: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAdminUser(userId: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling deleteAdminUser.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/superadmin/adminUser/${encodeURIComponent(String(userId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Delete admin user\n * @param userId \n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public deleteAdminUserSandbox(userId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public deleteAdminUserSandbox(userId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAdminUserSandbox(userId: string, sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public deleteAdminUserSandbox(userId: string, sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (userId === null || userId === undefined) {\n throw new Error('Required parameter userId was null or undefined when calling deleteAdminUserSandbox.');\n }\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling deleteAdminUserSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.delete(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/superadmin/adminUser/${encodeURIComponent(String(userId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List admin user\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAdminUser(hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAdminUser(hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAdminUser(hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAdminUser(hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/superadmin/adminUser`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * List admin user\n * @param sandbox \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAdminUserSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAdminUserSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAdminUserSandbox(sandbox: string, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public getAdminUserSandbox(sandbox: string, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getAdminUserSandbox.');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get>(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/superadmin/adminUser`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets orders for all accounts in all SSUs\n * @param limit Return this many results at once\n * @param offset Offset result list by this many items\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllOrders(limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAllOrders(limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllOrders(limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllOrders(limit?: number, offset?: number, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (offset !== undefined && offset !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n offset, 'offset');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/superadmin/orders`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Gets orders for all accounts in all SSUs\n * @param sandbox \n * @param limit Return this many results at once\n * @param offset Offset result list by this many items\n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAllOrdersSandbox(sandbox: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public getAllOrdersSandbox(sandbox: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllOrdersSandbox(sandbox: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public getAllOrdersSandbox(sandbox: string, limit?: number, offset?: number, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling getAllOrdersSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (limit !== undefined && limit !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n limit, 'limit');\n }\n if (offset !== undefined && offset !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n offset, 'offset');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.get(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/superadmin/orders`,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set admin user\n * @param rewardUser \n * @param create \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public upsertAdminUser(rewardUser: RewardUser, create?: boolean, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public upsertAdminUser(rewardUser: RewardUser, create?: boolean, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertAdminUser(rewardUser: RewardUser, create?: boolean, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertAdminUser(rewardUser: RewardUser, create?: boolean, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (rewardUser === null || rewardUser === undefined) {\n throw new Error('Required parameter rewardUser was null or undefined when calling upsertAdminUser.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (create !== undefined && create !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n create, 'create');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/superadmin/adminUser`,\n rewardUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Set admin user\n * @param sandbox \n * @param rewardUser \n * @param create \n * @param hDME2ECorrelationId \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public upsertAdminUserSandbox(sandbox: string, rewardUser: RewardUser, create?: boolean, hDME2ECorrelationId?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public upsertAdminUserSandbox(sandbox: string, rewardUser: RewardUser, create?: boolean, hDME2ECorrelationId?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertAdminUserSandbox(sandbox: string, rewardUser: RewardUser, create?: boolean, hDME2ECorrelationId?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public upsertAdminUserSandbox(sandbox: string, rewardUser: RewardUser, create?: boolean, hDME2ECorrelationId?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sandbox === null || sandbox === undefined) {\n throw new Error('Required parameter sandbox was null or undefined when calling upsertAdminUserSandbox.');\n }\n if (rewardUser === null || rewardUser === undefined) {\n throw new Error('Required parameter rewardUser was null or undefined when calling upsertAdminUserSandbox.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (create !== undefined && create !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n create, 'create');\n }\n\n let headers = this.defaultHeaders;\n if (hDME2ECorrelationId !== undefined && hDME2ECorrelationId !== null) {\n headers = headers.set('HDM_E2E_CorrelationId', String(hDME2ECorrelationId));\n }\n\n let credential: string | undefined;\n // authentication (Bearer) required\n credential = this.configuration.lookupCredential('Bearer');\n if (credential) {\n }\n\n let httpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (httpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n httpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (httpHeaderAcceptSelected !== undefined) {\n headers = headers.set('Accept', httpHeaderAcceptSelected);\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n headers = headers.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType: 'text' | 'json' = 'json';\n if(httpHeaderAcceptSelected && httpHeaderAcceptSelected.startsWith('text')) {\n responseType = 'text';\n }\n\n return this.httpClient.put(`${this.configuration.basePath}/api/v1/sandbox/${encodeURIComponent(String(sandbox))}/superadmin/adminUser`,\n rewardUser,\n {\n params: queryParameters,\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials: {[ key: string ]: string | (() => string | undefined)};\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n if (configurationParameters.credentials) {\n this.credentials = configurationParameters.credentials;\n }\n else {\n this.credentials = {};\n }\n\n // init default Bearer credential\n if (!this.credentials['Bearer']) {\n }\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or undefined if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n\n public lookupCredential(key: string): string | undefined {\n const value = this.credentials[key];\n return typeof value === 'function'\n ? value()\n : value;\n }\n}\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n","export * from './api/api';\nexport * from './model/models';\nexport * from './variables';\nexport * from './configuration';\nexport * from './api.module';","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Address {\n accuracy?: string | null;\n city?: string | null;\n country?: string | null;\n countryCode?: string | null;\n latitude?: number | null;\n longitude?: number | null;\n postalCode?: string | null;\n state?: string | null;\n stateCode?: string | null;\n street?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RuleLabel } from './ruleLabel';\n\n\nexport interface AdminAppDefaults { \n roundingRules: Array;\n rewardProductCategories: Array;\n ruleStatuses: Array;\n ruleActions: Array;\n ruleModes: Array;\n ruleTypes: Array;\n pointExpiry: Array;\n pointExpiryReminderPeriod: Array;\n tierResetPeriods: Array;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { TransactionStatus } from './transactionStatus';\nimport { RuleType } from './ruleType';\n\n\nexport interface AdminTransactionModel { \n id?: string | null;\n points: number;\n comment: string;\n transactionStatus: TransactionStatus;\n ruleType: RuleType;\n orderId?: string | null;\n expiringDate?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AppliedRule { \n id?: string | null;\n name?: string | null;\n points?: number;\n conversionRate?: number;\n isAddable?: boolean;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardProductDto } from './rewardProductDto';\n\n\nexport interface CartItemDto { \n product: RewardProductDto;\n quantity: number;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Category { \n name?: string | null;\n categoryId?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { CollectItem } from './collectItem';\n\n\nexport interface CollectCart { \n ssu: string;\n contactId: string;\n accountId: string;\n currencyCode: string;\n orderId?: string | null;\n items: Array;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardAccountStatus } from './rewardAccountStatus';\nimport { CollectItemResponse } from './collectItemResponse';\n\n\nexport interface CollectCartResponse { \n ssu: string;\n accountStatus: RewardAccountStatus;\n contactId: string;\n accountId: string;\n totalPoints: number;\n items: Array;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface CollectItem { \n productId: string;\n price: number;\n quantity: number;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { AppliedRule } from './appliedRule';\n\n\nexport interface CollectItemResponse { \n points: number;\n appliedRules: Array;\n productId: string;\n price: number;\n quantity: number;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * Holds the information of a Mongo delete operation\n */\nexport interface DeleteOperationResult { \n deletedCount?: number;\n isAcknowledged?: boolean;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { EmailTemplateType } from './emailTemplateType';\n\n\nexport interface EmailSetting { \n templateType: EmailTemplateType;\n adminEmails: Array;\n userEmailSwitchedOff: boolean;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type EmailTemplateType = 'Order' | 'AccountWaitingForApproval' | 'AccountAccepted' | 'AccountDeclined' | 'TierLevelAchieved' | 'ChangePointBalance' | 'ExpiringPoints' | 'NewPromotion' | 'NewTierSeasonInfo';\n\nexport const EmailTemplateType = {\n Order: 'Order' as EmailTemplateType,\n AccountWaitingForApproval: 'AccountWaitingForApproval' as EmailTemplateType,\n AccountAccepted: 'AccountAccepted' as EmailTemplateType,\n AccountDeclined: 'AccountDeclined' as EmailTemplateType,\n TierLevelAchieved: 'TierLevelAchieved' as EmailTemplateType,\n ChangePointBalance: 'ChangePointBalance' as EmailTemplateType,\n ExpiringPoints: 'ExpiringPoints' as EmailTemplateType,\n NewPromotion: 'NewPromotion' as EmailTemplateType,\n NewTierSeasonInfo: 'NewTierSeasonInfo' as EmailTemplateType\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type ErrorType = 'UnexpectedError' | 'InvalidModel' | 'RewardServiceError' | 'CollectPointsError' | 'MongoRepositoryError' | 'EmailRepositoryError' | 'HttpContextError' | 'SalesForceAuthenticationError' | 'SfClientQueryError' | 'RedeemError' | 'UserRepository' | 'BlobStorageError' | 'SchedulerError' | 'MailComposeError' | 'AuthenticationError' | 'OrderError' | 'RewardAccountError' | 'RewardUserError' | 'RedisError' | 'RewardRepositoryError' | 'AccountsServiceError' | 'UserService' | 'RulesService' | 'TransactionsService';\n\nexport const ErrorType = {\n UnexpectedError: 'UnexpectedError' as ErrorType,\n InvalidModel: 'InvalidModel' as ErrorType,\n RewardServiceError: 'RewardServiceError' as ErrorType,\n CollectPointsError: 'CollectPointsError' as ErrorType,\n MongoRepositoryError: 'MongoRepositoryError' as ErrorType,\n EmailRepositoryError: 'EmailRepositoryError' as ErrorType,\n HttpContextError: 'HttpContextError' as ErrorType,\n SalesForceAuthenticationError: 'SalesForceAuthenticationError' as ErrorType,\n SfClientQueryError: 'SfClientQueryError' as ErrorType,\n RedeemError: 'RedeemError' as ErrorType,\n UserRepository: 'UserRepository' as ErrorType,\n BlobStorageError: 'BlobStorageError' as ErrorType,\n SchedulerError: 'SchedulerError' as ErrorType,\n MailComposeError: 'MailComposeError' as ErrorType,\n AuthenticationError: 'AuthenticationError' as ErrorType,\n OrderError: 'OrderError' as ErrorType,\n RewardAccountError: 'RewardAccountError' as ErrorType,\n RewardUserError: 'RewardUserError' as ErrorType,\n RedisError: 'RedisError' as ErrorType,\n RewardRepositoryError: 'RewardRepositoryError' as ErrorType,\n AccountsServiceError: 'AccountsServiceError' as ErrorType,\n UserService: 'UserService' as ErrorType,\n RulesService: 'RulesService' as ErrorType,\n TransactionsService: 'TransactionsService' as ErrorType\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Eshop { \n id?: string | null;\n country: string;\n eshopUrl: string;\n flagImageUrl: string;\n countryWithLanguage: string;\n region: string;\n contactFormUrl: string;\n registrationUrl: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type HttpStatusCode = 'Continue' | 'SwitchingProtocols' | 'Processing' | 'EarlyHints' | 'OK' | 'Created' | 'Accepted' | 'NonAuthoritativeInformation' | 'NoContent' | 'ResetContent' | 'PartialContent' | 'MultiStatus' | 'AlreadyReported' | 'IMUsed' | 'MultipleChoices' | 'MovedPermanently' | 'Found' | 'SeeOther' | 'NotModified' | 'UseProxy' | 'Unused' | 'RedirectKeepVerb' | 'PermanentRedirect' | 'BadRequest' | 'Unauthorized' | 'PaymentRequired' | 'Forbidden' | 'NotFound' | 'MethodNotAllowed' | 'NotAcceptable' | 'ProxyAuthenticationRequired' | 'RequestTimeout' | 'Conflict' | 'Gone' | 'LengthRequired' | 'PreconditionFailed' | 'RequestEntityTooLarge' | 'RequestUriTooLong' | 'UnsupportedMediaType' | 'RequestedRangeNotSatisfiable' | 'ExpectationFailed' | 'MisdirectedRequest' | 'UnprocessableEntity' | 'Locked' | 'FailedDependency' | 'UpgradeRequired' | 'PreconditionRequired' | 'TooManyRequests' | 'RequestHeaderFieldsTooLarge' | 'UnavailableForLegalReasons' | 'InternalServerError' | 'NotImplemented' | 'BadGateway' | 'ServiceUnavailable' | 'GatewayTimeout' | 'HttpVersionNotSupported' | 'VariantAlsoNegotiates' | 'InsufficientStorage' | 'LoopDetected' | 'NotExtended' | 'NetworkAuthenticationRequired';\n\nexport const HttpStatusCode = {\n Continue: 'Continue' as HttpStatusCode,\n SwitchingProtocols: 'SwitchingProtocols' as HttpStatusCode,\n Processing: 'Processing' as HttpStatusCode,\n EarlyHints: 'EarlyHints' as HttpStatusCode,\n Ok: 'OK' as HttpStatusCode,\n Created: 'Created' as HttpStatusCode,\n Accepted: 'Accepted' as HttpStatusCode,\n NonAuthoritativeInformation: 'NonAuthoritativeInformation' as HttpStatusCode,\n NoContent: 'NoContent' as HttpStatusCode,\n ResetContent: 'ResetContent' as HttpStatusCode,\n PartialContent: 'PartialContent' as HttpStatusCode,\n MultiStatus: 'MultiStatus' as HttpStatusCode,\n AlreadyReported: 'AlreadyReported' as HttpStatusCode,\n ImUsed: 'IMUsed' as HttpStatusCode,\n MultipleChoices: 'MultipleChoices' as HttpStatusCode,\n MovedPermanently: 'MovedPermanently' as HttpStatusCode,\n Found: 'Found' as HttpStatusCode,\n SeeOther: 'SeeOther' as HttpStatusCode,\n NotModified: 'NotModified' as HttpStatusCode,\n UseProxy: 'UseProxy' as HttpStatusCode,\n Unused: 'Unused' as HttpStatusCode,\n RedirectKeepVerb: 'RedirectKeepVerb' as HttpStatusCode,\n PermanentRedirect: 'PermanentRedirect' as HttpStatusCode,\n BadRequest: 'BadRequest' as HttpStatusCode,\n Unauthorized: 'Unauthorized' as HttpStatusCode,\n PaymentRequired: 'PaymentRequired' as HttpStatusCode,\n Forbidden: 'Forbidden' as HttpStatusCode,\n NotFound: 'NotFound' as HttpStatusCode,\n MethodNotAllowed: 'MethodNotAllowed' as HttpStatusCode,\n NotAcceptable: 'NotAcceptable' as HttpStatusCode,\n ProxyAuthenticationRequired: 'ProxyAuthenticationRequired' as HttpStatusCode,\n RequestTimeout: 'RequestTimeout' as HttpStatusCode,\n Conflict: 'Conflict' as HttpStatusCode,\n Gone: 'Gone' as HttpStatusCode,\n LengthRequired: 'LengthRequired' as HttpStatusCode,\n PreconditionFailed: 'PreconditionFailed' as HttpStatusCode,\n RequestEntityTooLarge: 'RequestEntityTooLarge' as HttpStatusCode,\n RequestUriTooLong: 'RequestUriTooLong' as HttpStatusCode,\n UnsupportedMediaType: 'UnsupportedMediaType' as HttpStatusCode,\n RequestedRangeNotSatisfiable: 'RequestedRangeNotSatisfiable' as HttpStatusCode,\n ExpectationFailed: 'ExpectationFailed' as HttpStatusCode,\n MisdirectedRequest: 'MisdirectedRequest' as HttpStatusCode,\n UnprocessableEntity: 'UnprocessableEntity' as HttpStatusCode,\n Locked: 'Locked' as HttpStatusCode,\n FailedDependency: 'FailedDependency' as HttpStatusCode,\n UpgradeRequired: 'UpgradeRequired' as HttpStatusCode,\n PreconditionRequired: 'PreconditionRequired' as HttpStatusCode,\n TooManyRequests: 'TooManyRequests' as HttpStatusCode,\n RequestHeaderFieldsTooLarge: 'RequestHeaderFieldsTooLarge' as HttpStatusCode,\n UnavailableForLegalReasons: 'UnavailableForLegalReasons' as HttpStatusCode,\n InternalServerError: 'InternalServerError' as HttpStatusCode,\n NotImplemented: 'NotImplemented' as HttpStatusCode,\n BadGateway: 'BadGateway' as HttpStatusCode,\n ServiceUnavailable: 'ServiceUnavailable' as HttpStatusCode,\n GatewayTimeout: 'GatewayTimeout' as HttpStatusCode,\n HttpVersionNotSupported: 'HttpVersionNotSupported' as HttpStatusCode,\n VariantAlsoNegotiates: 'VariantAlsoNegotiates' as HttpStatusCode,\n InsufficientStorage: 'InsufficientStorage' as HttpStatusCode,\n LoopDetected: 'LoopDetected' as HttpStatusCode,\n NotExtended: 'NotExtended' as HttpStatusCode,\n NetworkAuthenticationRequired: 'NetworkAuthenticationRequired' as HttpStatusCode\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface LocalizedString { \n context?: string | null;\n value?: string | null;\n}\n\n","export * from './address';\nexport * from './adminAppDefaults';\nexport * from './adminTransactionModel';\nexport * from './appliedRule';\nexport * from './cartItemDto';\nexport * from './category';\nexport * from './collectCart';\nexport * from './collectCartResponse';\nexport * from './collectItem';\nexport * from './collectItemResponse';\nexport * from './deleteOperationResult';\nexport * from './emailSetting';\nexport * from './emailTemplateType';\nexport * from './errorType';\nexport * from './eshop';\nexport * from './httpStatusCode';\nexport * from './localizedString';\nexport * from './nonCashBenefit';\nexport * from './paginationInfo';\nexport * from './pointExpiry';\nexport * from './pointRoundingRule';\nexport * from './pointValuation';\nexport * from './redeem';\nexport * from './redeemRequest';\nexport * from './relatedAccount';\nexport * from './replaceOneOperationResult';\nexport * from './rewardAccount';\nexport * from './rewardAccountDto';\nexport * from './rewardAccountStatus';\nexport * from './rewardCartItemDto';\nexport * from './rewardEngineError';\nexport * from './rewardOrderDto';\nexport * from './rewardOrderViewDto';\nexport * from './rewardOrderViewDtoPaginatedList';\nexport * from './rewardProduct';\nexport * from './rewardProductDto';\nexport * from './rewardProductType';\nexport * from './rewardProgram';\nexport * from './rewardProgramDocument';\nexport * from './rewardProgramDocumentType';\nexport * from './rewardProgramDto';\nexport * from './rewardRule';\nexport * from './rewardRuleDto';\nexport * from './rewardRuleTier';\nexport * from './rewardTier';\nexport * from './rewardTierDto';\nexport * from './rewardTransaction';\nexport * from './rewardTransactionDto';\nexport * from './rewardTransactionUsage';\nexport * from './rewardUser';\nexport * from './roundingRule';\nexport * from './ruleAction';\nexport * from './ruleCondition';\nexport * from './ruleCurrencyConversion';\nexport * from './ruleLabel';\nexport * from './ruleMode';\nexport * from './ruleType';\nexport * from './sapAccountId';\nexport * from './sessionToken';\nexport * from './simplePointHistoryViewDto';\nexport * from './socialMediaLinks';\nexport * from './sortingDirection';\nexport * from './ssu';\nexport * from './ssuEmailSettings';\nexport * from './ssuInfoDto';\nexport * from './ssuInformation';\nexport * from './tierSystem';\nexport * from './transactionStatus';\nexport * from './transactionType';\nexport * from './userBalance';\nexport * from './userBalanceTransactions';\nexport * from './userContext';\nexport * from './userInfo';\nexport * from './userPermission';\nexport * from './userPermissionDto';\nexport * from './userType';\nexport * from './widgetContent';\nexport * from './widgetContentDTO';\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface NonCashBenefit { \n currency?: string | null;\n value?: number;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PaginationInfo { \n totalCount?: number;\n pageSize?: number;\n limit?: number;\n offset?: number;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PointExpiry { \n enabled: boolean;\n monthlyPeriod: number;\n reminderPeriodWeeks: number;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RoundingRule } from './roundingRule';\n\n\nexport interface PointRoundingRule { \n enabled: boolean;\n roundingRule: RoundingRule;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface PointValuation { \n enabled: boolean;\n periodWeeks: number;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardOrderDto } from './rewardOrderDto';\n\n\nexport interface Redeem { \n simulated: boolean;\n success: boolean;\n pointsLeft: number;\n order?: RewardOrderDto;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Address } from './address';\nimport { CartItemDto } from './cartItemDto';\n\n\nexport interface RedeemRequest { \n cartItems: Array;\n billingAddress: Address;\n additionalInformation?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { SapAccountId } from './sapAccountId';\n\n\n/**\n * Related account to a RewardUser\n */\nexport interface RelatedAccount { \n isMainContact: boolean;\n isDirect: boolean;\n ssu?: string | null;\n name?: string | null;\n sapAccountNumber?: SapAccountId;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * The result of a replace one operation.\n */\nexport interface ReplaceOneOperationResult { \n isAcknowledged?: boolean;\n isModifiedCountAvailable?: boolean;\n matchedCount?: number;\n modifiedCount?: number;\n upsertedId?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardAccountStatus } from './rewardAccountStatus';\nimport { Address } from './address';\nimport { SapAccountId } from './sapAccountId';\n\n\nexport interface RewardAccount {\n id?: string | null;\n ssu: string;\n currency: string;\n sapAccountNumber?: SapAccountId;\n billingAddress?: Address;\n phoneNumber?: string | null;\n status?: RewardAccountStatus;\n joinDate?: string;\n accountName?: string | null;\n accountTimeZone?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardTierDto } from './rewardTierDto';\nimport { UserBalance } from './userBalance';\nimport { RewardAccountStatus } from './rewardAccountStatus';\nimport { Address } from './address';\n\n\nexport interface RewardAccountDto {\n ssu: string;\n currency: string;\n transactions: number;\n redeemers: number;\n users: number;\n joinDate?: string;\n sapAccountNumber: string;\n billingAddress?: Address;\n phoneNumber?: string | null;\n status?: RewardAccountStatus;\n accountName?: string | null;\n accountTimeZone?: string | null;\n tier?: RewardTierDto;\n balance?: UserBalance;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RewardAccountStatus = 'Unregistered' | 'WaitingForApproval' | 'Enabled' | 'Disabled' | 'Declined';\n\nexport const RewardAccountStatus = {\n Unregistered: 'Unregistered' as RewardAccountStatus,\n WaitingForApproval: 'WaitingForApproval' as RewardAccountStatus,\n Enabled: 'Enabled' as RewardAccountStatus,\n Disabled: 'Disabled' as RewardAccountStatus,\n Declined: 'Declined' as RewardAccountStatus\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardProductDto } from './rewardProductDto';\n\n\nexport interface RewardCartItemDto { \n quantity: number;\n item: RewardProductDto;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { ErrorType } from './errorType';\nimport { HttpStatusCode } from './httpStatusCode';\n\n\nexport interface RewardEngineError { \n type?: ErrorType;\n title?: string | null;\n status?: HttpStatusCode;\n detail?: string | null;\n instance?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Address } from './address';\nimport { RewardCartItemDto } from './rewardCartItemDto';\n\n\nexport interface RewardOrderDto { \n id: string;\n orderId: string;\n accountId?: string | null;\n sapAccountNumber: string;\n cart: Array;\n timestamp: string;\n nonMonetaryBenefits: number;\n shipping: number;\n total: number;\n totalItems: number;\n billingAddress: Address;\n additionalInformation?: string | null;\n orderProcessed?: boolean;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardOrderDto } from './rewardOrderDto';\nimport { RewardAccountDto } from './rewardAccountDto';\nimport { RewardTransactionDto } from './rewardTransactionDto';\n\n\nexport interface RewardOrderViewDto { \n order?: RewardOrderDto;\n transaction?: RewardTransactionDto;\n account?: RewardAccountDto;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PaginationInfo } from './paginationInfo';\nimport { RewardOrderViewDto } from './rewardOrderViewDto';\n\n\nexport interface RewardOrderViewDtoPaginatedList { \n info?: PaginationInfo;\n items?: Array | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NonCashBenefit } from './nonCashBenefit';\nimport { RewardProductType } from './rewardProductType';\nimport { LocalizedString } from './localizedString';\n\n\nexport interface RewardProduct {\n id?: string | null;\n name: Array;\n startDate: string;\n endDate: string;\n type?: RewardProductType;\n description?: Array | null;\n productImages?: Array | null;\n mainImageIndex?: number;\n active?: boolean;\n advertised?: boolean;\n points: number;\n ssu: string;\n nonCashBenefit: Array;\n minimumTier?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { NonCashBenefit } from './nonCashBenefit';\nimport { RewardProductType } from './rewardProductType';\nimport { LocalizedString } from './localizedString';\n\n\nexport interface RewardProductDto {\n id?: string | null;\n name: Array;\n startDate: string;\n endDate: string;\n type?: RewardProductType;\n description?: Array | null;\n productImages?: Array | null;\n active?: boolean;\n advertised?: boolean;\n nonCashBenefit: Array;\n points: number;\n minimumTier?: string | null;\n mainImageIndex: number;\n ssu?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RewardProductType = 'Product' | 'Coupon';\n\nexport const RewardProductType = {\n Product: 'Product' as RewardProductType,\n Coupon: 'Coupon' as RewardProductType\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PointExpiry } from './pointExpiry';\nimport { PointRoundingRule } from './pointRoundingRule';\nimport { RewardProgramDocument } from './rewardProgramDocument';\nimport { TierSystem } from './tierSystem';\nimport { PointValuation } from './pointValuation';\n\n\nexport interface RewardProgram { \n id?: string | null;\n name: string;\n ssu: string;\n contact?: string | null;\n fulfillment?: string | null;\n termsAndConditions?: string | null;\n longDescription?: string | null;\n shortDescription?: string | null;\n showNonCashBenefit?: boolean;\n bannerUrl?: string | null;\n enabled: boolean;\n currencyName: string;\n currencyAbbreviation: string;\n copayment: boolean;\n joinRequests: boolean;\n pointExpiry: PointExpiry;\n pointValuation: PointValuation;\n productDetailPage: boolean;\n pointRoundingRule: PointRoundingRule;\n orderDetails: boolean;\n tierSystem: TierSystem;\n documents?: Array | null;\n autoRegisterAllAccounts?: boolean;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardProgramDocumentType } from './rewardProgramDocumentType';\n\n\nexport interface RewardProgramDocument { \n type: RewardProgramDocumentType;\n url: string;\n name: string;\n modified?: string;\n language: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RewardProgramDocumentType = 'TermsOfService';\n\nexport const RewardProgramDocumentType = {\n TermsOfService: 'TermsOfService' as RewardProgramDocumentType\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { PointExpiry } from './pointExpiry';\nimport { RewardProgramDocument } from './rewardProgramDocument';\nimport { TierSystem } from './tierSystem';\nimport { PointValuation } from './pointValuation';\n\n\nexport interface RewardProgramDto { \n id?: string | null;\n ssu: string;\n contact?: string | null;\n fulfillment?: string | null;\n termsAndConditions?: string | null;\n enabled: boolean;\n copayment: boolean;\n joinRequests: boolean;\n pointExpiry: PointExpiry;\n pointValuation: PointValuation;\n productDetailPage: boolean;\n orderDetails: boolean;\n tierSystem: TierSystem;\n documents?: Array | null;\n autoRegisterAllAccounts?: boolean;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Category } from './category';\nimport { RuleCondition } from './ruleCondition';\nimport { RuleAction } from './ruleAction';\nimport { RuleMode } from './ruleMode';\nimport { RuleType } from './ruleType';\nimport { RewardRuleTier } from './rewardRuleTier';\n\n\nexport interface RewardRule { \n id?: string | null;\n active: boolean;\n ssu: string;\n name: string;\n startDate: string;\n endDate: string;\n type: RuleType;\n action: RuleAction;\n condition: RuleCondition;\n mode: RuleMode;\n tiers: Array;\n /**\n * If true then the rule can be added to another \\'addable\\' rules\n */\n isAddable?: boolean;\n categories?: Array | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Category } from './category';\nimport { RuleCondition } from './ruleCondition';\nimport { RuleAction } from './ruleAction';\nimport { RuleMode } from './ruleMode';\nimport { RuleType } from './ruleType';\nimport { RewardRuleTier } from './rewardRuleTier';\n\n\nexport interface RewardRuleDto { \n id?: string | null;\n active: boolean;\n ssu: string;\n name: string;\n startDate: string;\n endDate: string;\n type: RuleType;\n action: RuleAction;\n condition: RuleCondition;\n mode: RuleMode;\n tiers: Array;\n /**\n * If true then the rule can be added to another \\'addable\\' rules\n */\n isAddable?: boolean;\n categories?: Array | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RuleCurrencyConversion } from './ruleCurrencyConversion';\n\n\nexport interface RewardRuleTier { \n tierId?: string | null;\n enabled: boolean;\n conversions?: Array | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RewardTier { \n id?: string | null;\n ssu: string;\n name: string;\n yearlyPointMinimum: number;\n color1: string;\n color2: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RewardTierDto { \n id?: string | null;\n ssu: string;\n earnedPoints: number;\n yearlyPointMinimum: number;\n yearlyPointMaximum: number;\n level: number;\n name: string;\n color1: string;\n color2: string;\n isCurrent: boolean;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { TransactionType } from './transactionType';\nimport { RewardTransactionUsage } from './rewardTransactionUsage';\nimport { TransactionStatus } from './transactionStatus';\nimport { RuleType } from './ruleType';\n\n\nexport interface RewardTransaction { \n id?: string | null;\n sapAccountNumber: string;\n ssu: string;\n points: number;\n usages: Array;\n type: TransactionType;\n expiringDate: string;\n timestamp: string;\n comment: string;\n transactionStatus: TransactionStatus;\n ruleType?: RuleType;\n rewardOrderId?: string | null;\n /**\n * Flag set once the the user is notified about upcoming expiration. Only transaction of type reward use it.\n */\n expiryNotification?: boolean | null;\n orderId?: string | null;\n contactId?: string | null;\n /**\n * AdminUserId available in case the transaction was created/updated by an admin\n */\n adminUserId?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { TransactionType } from './transactionType';\nimport { TransactionStatus } from './transactionStatus';\nimport { RuleType } from './ruleType';\n\n\nexport interface RewardTransactionDto { \n id?: string | null;\n sapAccountNumber?: string | null;\n ssu: string;\n points: number;\n usedPoints: number;\n expired: boolean;\n type: TransactionType;\n expiringDate: string;\n timestamp: string;\n comment: string;\n transactionStatus: TransactionStatus;\n ruleType?: RuleType;\n rewardOrderId?: string | null;\n /**\n * Flag set once the the user is notified about upcoming expiration. Only transaction of type reward use it.\n */\n expiryNotification?: boolean | null;\n orderId?: string | null;\n contactId?: string | null;\n /**\n * AdminUserId available in case the transaction was created/updated by an admin\n */\n adminUserId?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RewardTransactionUsage { \n points: number;\n timestamp: string;\n rewardTransactionId: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RelatedAccount } from './relatedAccount';\nimport { UserType } from './userType';\n\n\nexport interface RewardUser { \n id?: string | null;\n userType: UserType;\n contactName?: string | null;\n logonId?: string | null;\n email?: string | null;\n isSuperAdmin?: boolean | null;\n contactId?: string | null;\n language?: string | null;\n /**\n * Admin user related SSUs\n */\n relatedSsu?: Array | null;\n relatedAccounts?: Array | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RoundingRule = 'Up' | 'Down' | 'Closest';\n\nexport const RoundingRule = {\n Up: 'Up' as RoundingRule,\n Down: 'Down' as RoundingRule,\n Closest: 'Closest' as RoundingRule\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RuleAction = 'ActiveOrder' | 'Registration';\n\nexport const RuleAction = {\n ActiveOrder: 'ActiveOrder' as RuleAction,\n Registration: 'Registration' as RuleAction\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RuleCondition = 'LoyaltyGreaterThan0' | 'LoyaltyGreaterThan50';\n\nexport const RuleCondition = {\n LoyaltyGreaterThan0: 'LoyaltyGreaterThan0' as RuleCondition,\n LoyaltyGreaterThan50: 'LoyaltyGreaterThan50' as RuleCondition\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RuleCurrencyConversion { \n points: number;\n perCurrencyUnits: number;\n currencyCode: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface RuleLabel { \n label?: string | null;\n value?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RuleMode = 'Fixed' | 'Factor';\n\nexport const RuleMode = {\n Fixed: 'Fixed' as RuleMode,\n Factor: 'Factor' as RuleMode\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type RuleType = 'None' | 'EShop' | 'Service';\n\nexport const RuleType = {\n None: 'None' as RuleType,\n EShop: 'EShop' as RuleType,\n Service: 'Service' as RuleType\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SapAccountId { \n value?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SessionToken { \n accessToken: string;\n createdAt: string;\n expiresAt: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SimplePointHistoryViewDto { \n ssu: string;\n date: string;\n points: number;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SocialMediaLinks { \n twitterLink?: string | null;\n linkedInLink?: string | null;\n facebookLink?: string | null;\n youtubeLink?: string | null;\n instagramLink?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type SortingDirection = 'ASC' | 'DESC';\n\nexport const SortingDirection = {\n Asc: 'ASC' as SortingDirection,\n Desc: 'DESC' as SortingDirection\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface Ssu { \n value?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { EmailSetting } from './emailSetting';\n\n\nexport interface SsuEmailSettings { \n ssu: string;\n emailSettings: Array;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Category } from './category';\n\n\nexport interface SsuInfoDto { \n currencies: Array;\n locales: Array;\n categories: Array;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { SocialMediaLinks } from './socialMediaLinks';\n\n\nexport interface SsuInformation { \n displayCurrencyForAlternativeBillingCurrencies?: string | null;\n currencies: Array | null;\n defaultLocale?: string | null;\n locales: Array | null;\n socialMediaLinks?: SocialMediaLinks;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface TierSystem { \n enabled: boolean;\n minTier: number;\n maxTier: number;\n resetPeriod: number;\n resetDate: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type TransactionStatus = 'Unknown' | 'EShopOrderPlaced' | 'EShopOrderInProgress' | 'EshopOrderCompleted' | 'Redeemed';\n\nexport const TransactionStatus = {\n Unknown: 'Unknown' as TransactionStatus,\n EShopOrderPlaced: 'EShopOrderPlaced' as TransactionStatus,\n EShopOrderInProgress: 'EShopOrderInProgress' as TransactionStatus,\n EshopOrderCompleted: 'EshopOrderCompleted' as TransactionStatus,\n Redeemed: 'Redeemed' as TransactionStatus\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type TransactionType = 'Reward' | 'Redemption';\n\nexport const TransactionType = {\n Reward: 'Reward' as TransactionType,\n Redemption: 'Redemption' as TransactionType\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UserBalance { \n pointBalance: number;\n earned: number;\n redeemed: number;\n lastUpdate: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardTransactionDto } from './rewardTransactionDto';\n\n\nexport interface UserBalanceTransactions { \n from: string;\n to: string;\n transactions: Array;\n pointBalance: number;\n earned: number;\n redeemed: number;\n lastUpdate: string;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardAccount } from './rewardAccount';\nimport { RewardUser } from './rewardUser';\nimport { UserInfo } from './userInfo';\n\n\nexport interface UserContext { \n userInfo?: UserInfo;\n rewardAccount?: RewardAccount;\n /**\n * List of RewardUsers of current RewardAccount\n */\n rewardUsers?: Array | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { RewardAccountStatus } from './rewardAccountStatus';\nimport { SapAccountId } from './sapAccountId';\nimport { RelatedAccount } from './relatedAccount';\nimport { UserType } from './userType';\n\n\nexport interface UserInfo { \n id?: string | null;\n logonId?: string | null;\n userType: UserType;\n contactName: string;\n language?: string | null;\n canRedeem?: boolean | null;\n timeZone?: string | null;\n sapAccountNumber?: SapAccountId;\n /**\n * Community user related accounts\n */\n relatedAccounts?: Array | null;\n accountName?: string | null;\n /**\n * Community user related SSUs\n */\n ssu?: string | null;\n /**\n * Admin user related SSUs\n */\n relatedSsu?: Array | null;\n contactId?: string | null;\n status?: RewardAccountStatus;\n isMainContact?: boolean | null;\n isSuperAdmin?: boolean | null;\n email?: string | null;\n /**\n * Returns true if the users program is enabled. Null if current user is of type Admin\n */\n programEnabled?: boolean | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface UserPermission { \n contactId: string;\n canRedeem: boolean;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * DTO model used to resolve contact name\n */\nexport interface UserPermissionDto { \n contactId: string;\n canRedeem: boolean;\n contactName?: string | null;\n sapAccountNumber?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport type UserType = 'Community' | 'Admin';\n\nexport const UserType = {\n Community: 'Community' as UserType,\n Admin: 'Admin' as UserType\n};\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Ssu } from './ssu';\n\n\nexport interface WidgetContent { \n id: string | null;\n headline: string | null;\n description?: string | null;\n url?: string | null;\n ssu?: Ssu;\n isActive?: boolean;\n locale?: string | null;\n}\n\n","/**\n * HDM Reward Engine API\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: v1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\nimport { Ssu } from './ssu';\n\n\nexport interface WidgetContentDTO { \n headline: string | null;\n description?: string | null;\n url?: string | null;\n ssu?: Ssu;\n isActive?: boolean;\n locale?: string | null;\n}\n\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n"],"names":["RouterModule","PublicResolver","CommunityResolver","CommunityUnregisteredResolver","environment","AuthGuardCommunityGuard","AuthGuardUnregisteredGuard","routes","path","loadChildren","then","m","RewardsModule","canActivate","resolve","data","runGuardsAndResolvers","RewardPointHistoryModule","CartModule","RegisterModule","CheckoutModule","OverviewModule","pathMatch","redirectTo","AppRoutingModule","_","_2","_3","forRoot","onSameUrlNavigation","enableTracing","production","imports","i1","exports","MultiCurrencyService","ProgramSettingsService","UserService","Router","NGXLogger","AppComponent","constructor","programSettingsService","multiCurrencyService","userService","router","logger","ngOnInit","retrieveAllProgramSpecificSettings","retrieveMutliCurrencyParams","performRedirectIfRequired","userState$","value","debug","navigate","i0","ɵɵdirectiveInject","i2","i3","i4","i5","selectors","decls","vars","consts","template","AppComponent_Template","rf","ctx","ɵɵelement","ɵɵelementStart","ɵɵelementEnd","APP_INITIALIZER","ErrorHandler","BrowserModule","HttpClient","HttpClientModule","HTTP_INTERCEPTORS","SharedModule","NgbNavModule","LoggerModule","NgxLoggerLevel","AuthConfigService","AuthModule","AuthService","AuthInterceptorService","Location","registerLocaleData","HotToastModule","ProgressInfoColumnComponent","ProgressInfoCardComponent","MiniDashboardTextboxComponent","UnregisteredPointsComponent","localeFr","localeDe","MultilanguageService","Sentry","ApiModule","Configuration","EcomAuthService","RedirectModalComponent","APP_USER_FOOTER_CONFIG_PROVIDER","APP_USER_SERVICE_CONFIG_PROVIDER","authInterceptorServiceFactory","config","authServiceFactory","httpClient","location","ecomAuthService","appInitFactory","authService","multilanguageService","upsertLanguage","initAuth","AppModule","bootstrap","provide","useFactory","deps","multi","useValue","createErrorHandler","showDialog","level","enableLog","DEBUG","OFF","casBaseUrl","redirectUri","casClientId","idmLogoutUrl","idmAccessTokenUrl","idmRedirectUri","idmAdminRedirectUri","secret","publicUrls","backendUrl","rewardTokenStorageKey","rewardUserStorageKey","basePath","withCredentials","declarations","FooterComponent","MobileNavbarFooterComponent","NavbarComponent","UserInfoLoginComponent","MiniCartComponent","i6","i7","i8","UserRoleSettingsComponent","i9","UserAccountSwitchComponent","i10","i11","i12","i13","RedemptionCartDataService","UserStatsService","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ctx_r2","localeNameOfProductItem","rewardProduct","product","userContext_r8","userInfo","language","ɵɵlistener","RedemptionCartItemsComponent_div_0_input_15_Template_input_change_0_listener","$event","ɵɵrestoreView","_r10","ctx_r9","ɵɵnextContext","ɵɵresetView","sendCartItemChange","ɵɵproperty","ctx_r3","quantity","ɵɵtextInterpolate","ctx_r4","ɵɵpipeBindV","ɵɵpureFunction3","_c0","ctx_r5","nonCashBenefitOfProductItem","currencyCode","currencyLocale","ctx_r6","RedemptionCartItemsComponent_div_0_button_35_Template_button_click_0_listener","_r12","ctx_r11","rewardCartService","rewardProductToCart","ɵɵtemplate","RedemptionCartItemsComponent_div_0_p_7_Template","RedemptionCartItemsComponent_div_0_input_15_Template","RedemptionCartItemsComponent_div_0_span_16_Template","RedemptionCartItemsComponent_div_0_p_25_Template","RedemptionCartItemsComponent_div_0_p_33_Template","RedemptionCartItemsComponent_div_0_button_35_Template","ɵɵpropertyInterpolate","ctx_r0","productImages","ɵɵsanitizeUrl","ɵɵpipeBind1","userContext$","t_r1","disableEdit","ɵɵtextInterpolate2","points","showCoPayment","RedemptionCartItemsComponent","_rewardProduct","newQuantity","calculateQuantityParamater","event","Number","target","productItem","nonCashBenefit","find","x","currency","locale","name","context","inputs","RedemptionCartItemsComponent_Template","RedemptionCartItemsComponent_div_0_Template","MenuService","FooterService","NgbModal","APP_USER_FOOTER_CONFIG","TranslocoService","menuPoint_r12","routerTarget","label","FooterComponent_div_0_div_3_a_3_Template","FooterComponent_div_0_div_3_a_4_Template","menuInformation_r9","canRedeem$","isLoggedInAndRegistered","ctx_r16","footerConfig4ActiveLang","termsOfUseLink","ctx_r17","termsOfSaleLink","ctx_r18","privacyPolicyLink","ctx_r19","aboutUsLink","FooterComponent_div_0_div_5_a_3_Template","FooterComponent_div_0_div_5_a_4_Template","FooterComponent_div_0_div_5_a_5_Template","FooterComponent_div_0_div_5_a_6_Template","ctx_r25","FooterComponent_div_0_ng_template_6_div_0_Template","footerInformation_r27","socialMediaLinks","twitterLink","linkedInLink","facebookLink","youtubeLink","instagramLink","FooterComponent_div_0_div_13_a_1_Template","FooterComponent_div_0_div_13_a_2_Template","FooterComponent_div_0_div_13_a_3_Template","FooterComponent_div_0_div_13_a_4_Template","FooterComponent_div_0_div_13_a_5_Template","FooterComponent_div_0_div_3_Template","FooterComponent_div_0_div_5_Template","FooterComponent_div_0_ng_template_6_Template","ɵɵtemplateRefExtractor","FooterComponent_div_0_Template_a_click_11_listener","_r39","ctx_r38","openRedirectModal","FooterComponent_div_0_div_13_Template","FooterComponent_div_0_ng_template_15_Template","tmp_0_0","menuInformation$","menuItems","footerInformation$","_r8","footerConfig","_footerService","_menuService","modalService","translocoService","modalOptions","centered","size","retrieveSsuInfo","ssuInfo$","menuConfig$","isLoggedIn","isRegistered","currentYear","Date","getFullYear","modalRef","open","componentInstance","_redirectType","getCurrentLanguage","ssuInfo","defaultLocale","split","activeLang","getActiveLang","has","get","undefined","FooterComponent_Template","FooterComponent_div_0_Template","EventEmitter","item_r7","ctx_r8","userContext_r9","MiniCartComponent_div_0_ng_template_3_div_7_div_4_Template","MiniCartComponent_div_0_ng_template_3_div_7_Template_i_click_7_listener","restoredCtx","_r13","$implicit","ctx_r12","removeOneFromCart","MiniCartComponent_div_0_ng_template_3_div_7_Template","MiniCartComponent_div_0_ng_template_3_Template_button_click_15_listener","_r15","ctx_r14","clickOnCart","cartItemsCount","redeemCartItems","totalPointsCart","MiniCartComponent_div_0_div_2_Template","MiniCartComponent_div_0_ng_template_3_Template","length","_r4","userStatsService","closeDialogEvent","status","calculatePointsLocal","emit","outputs","MiniCartComponent_Template","MiniCartComponent_div_0_Template","ɵɵelementContainerStart","ɵɵelementContainerEnd","headerTranslationKey","menuService","getRouterTranslation","MiniDashboardTextboxComponent_Template","MiniDashboardTextboxComponent_ng_container_0_Template","ProgressInfoCardComponent_div_0_Template_div_click_0_listener","_r3","navigateWithCard","cardTextTranslationKey","ɵɵpureFunction1","includes","queryParamsHandling","ProgressInfoCardComponent_Template","ProgressInfoCardComponent_div_0_Template","getDateTime","update_r3","lastUpdate","ProgressInfoColumnComponent_div_0_div_9_Template","tmp_1_0","userBalance$","pointBalance","date","returnDate","toLocaleDateString","navigator","getHours","getMinutes","ProgressInfoColumnComponent_Template","ProgressInfoColumnComponent_div_0_Template","ToastService","UnregisteredPointsComponent_div_0_Template_button_click_3_listener","navigateToRegister","programIsActive","hasProgram","getRegisterButtonStatusTKey","toastService","programSettings","toastParameter","toastConfig","autoClose","dismissible","duration","placeholder","showInfoMessage","isMainContact","window","href","protocol","host","programSettings$","enabled","UnregisteredPointsComponent_Template","UnregisteredPointsComponent_div_0_Template","Subject","MobileNavbarFooterComponent_div_0_ng_container_4_img_8_Template_img_click_0_listener","_r11","ctx_r10","openUserRoleSettings","MobileNavbarFooterComponent_div_0_ng_container_4_Template_div_click_1_listener","openEffectiveAccountSwitcher","MobileNavbarFooterComponent_div_0_ng_container_4_img_8_Template","MobileNavbarFooterComponent_div_0_ng_container_4_Template_span_click_9_listener","relatedAccounts","userState","accountName","tmp_2_0","MobileNavbarFooterComponent_div_0_div_9_Template_a_click_3_listener","_r19","MobileNavbarFooterComponent_div_0_ng_container_3_Template","MobileNavbarFooterComponent_div_0_ng_container_4_Template","MobileNavbarFooterComponent_div_0_Template_a_click_5_listener","_r22","ctx_r21","onLoginClick","loginState","MobileNavbarFooterComponent_div_0_ng_container_6_Template","MobileNavbarFooterComponent_div_0_ng_template_7_Template","MobileNavbarFooterComponent_div_0_div_9_Template","userType","_r6","_userState","_logout$","_login$","_loginState","_closeFired$","close$","closeSubs","subscribe","logout$","login$","closeFired$","state","userContext","ngOnDestroy","unsubscribe","MobileNavbarFooterComponent_Template","MobileNavbarFooterComponent_div_0_Template","redirectToCas","createIdmRedirectUrl","Subscription","NavigationEnd","NavigationStart","NavbarComponent_header_0_div_10_Template_neo_reward_engine_web_user_info_login_logout__1_listener","_r7","logOut","NavbarComponent_header_0_div_10_Template_neo_reward_engine_web_user_info_login_login__1_listener","logIn","cartService","t_r3","NavbarComponent_header_0_div_11_div_4_Template_neo_reward_engine_web_mini_cart_closeDialogEvent_1_listener","closeMiniCartAndNavigateCart","loggedIn","NavbarComponent_header_0_div_11_Template_div_mouseover_0_listener","hoverShoppingCart","NavbarComponent_header_0_div_11_Template_div_mouseleave_0_listener","NavbarComponent_header_0_div_11_Template_a_click_1_listener","NavbarComponent_header_0_div_11_ng_container_3_Template","NavbarComponent_header_0_div_11_div_4_Template","canRedeem","NavbarComponent_header_0_Template_div_mouseover_7_listener","hoverAccount","NavbarComponent_header_0_Template_div_mouseleave_7_listener","ctx_r20","NavbarComponent_header_0_div_10_Template","NavbarComponent_header_0_div_11_Template","getHeaderRouter","n_r28","_c1","last_r29","ɵɵpureFunction0","_c2","t_r26","NavbarComponent_div_1_div_5_li_2_Template","ɵɵpureFunction2","_c3","ctx_r24","mini","isSticky","_c4","NavbarComponent_div_1_div_1_Template","NavbarComponent_div_1_div_2_Template","NavbarComponent_div_1_div_5_Template","NavbarComponent_div_1_div_6_Template","_c5","ctx_r1","url","_c6","ctx_r32","t_r31","NavbarComponent_div_2_Template_i_click_4_listener","_r35","ctx_r34","NavbarComponent_div_2_Template_i_click_10_listener","ctx_r36","mobileMenuToggleMyAccount","NavbarComponent_div_2_div_14_Template","NavbarComponent_div_2_Template_i_click_16_listener","ctx_r37","NavbarComponent_div_2_Template_neo_reward_engine_web_mobile_navbar_footer_logout__19_listener","NavbarComponent_div_2_Template_neo_reward_engine_web_mobile_navbar_footer_login__19_listener","ctx_r39","NavbarComponent_div_2_Template_neo_reward_engine_web_mobile_navbar_footer_closeFired__19_listener","ctx_r40","onAccountSwitcherClose","ɵɵclassProp","ɵɵstyleProp","flyoutHeight","_c7","_canRedeem","subscriptions","add","next","loggedIn$","userName$","contactName","isRegistered$","rewardAccount","status$","onResize","checkStickyConditions","events","val","retrieveUserBalance","retrieveTierData","resetCartObservables","myNavbar","document","getElementById","myHeader","classList","contains","innerWidth","topScroll","scrollHeight","scrollTo","top","tierSystemActive","tierData$","userName","tierSystem","resizeFlyoutMobile","innerHeight","getUserContext","ngAfterViewInit","tid","setInterval","stickyElm","observer","IntersectionObserver","e","toggle","intersectionRatio","threshold","clearInterval","observe","logout","origin","style","adjustFooterSpacer","switchStickyNavbar","footerSpacer","height","body","sticky","myContentContainer","position","marginTop","hostBindings","NavbarComponent_HostBindings","ɵɵresolveWindow","NavbarComponent_header_0_Template","NavbarComponent_div_1_Template","NavbarComponent_div_2_Template","NgbActiveModal","CommunityUserService","EnvironmentService","shop_r11","countryWithLanguage","flagImageUrl","RedirectModalComponent_div_0_button_12_Template_button_click_0_listener","onSubmit","_r5","hasValue","RedirectModalComponent_div_0_button_13_Template_button_click_0_listener","_r16","ctx_r15","RedirectModalComponent_div_0_div_3_Template","RedirectModalComponent_div_0_ng_template_4_Template","RedirectModalComponent_div_0_Template_i_click_6_listener","close","RedirectModalComponent_div_0_Template_ng_select_ngModelChange_9_listener","eShop","RedirectModalComponent_div_0_ng_option_11_Template","RedirectModalComponent_div_0_button_12_Template","RedirectModalComponent_div_0_button_13_Template","redirectType","eShops","communityUserService","environmentService","_eShops","sub","getAllEshops","res","contactFormUrl","registrationUrl","showErrorMessage","RedirectModalComponent_Template","RedirectModalComponent_div_0_Template","AccountSwitchService","UserAccountSwitchComponent_div_0_div_14_Template_div_click_0_listener","account_r3","tmp_b_0","selectEffectiveAccount","sapAccountNumber","UserAccountSwitchComponent_div_0_Template_i_click_5_listener","ctx_r7","UserAccountSwitchComponent_div_0_div_14_Template","accountSwitchService","accountId","_this","_asyncToGenerator","switchAccount","UserAccountSwitchComponent_Template","UserAccountSwitchComponent_div_0_Template","UserContext","UserInfoLoginComponent_div_0_span_1_ng_template_6_div_3_Template_img_click_1_listener","UserInfoLoginComponent_div_0_span_1_ng_template_6_div_3_Template_span_click_2_listener","UserInfoLoginComponent_div_0_span_1_ng_template_6_Template_div_click_0_listener","UserInfoLoginComponent_div_0_span_1_ng_template_6_div_2_Template","UserInfoLoginComponent_div_0_span_1_ng_template_6_div_3_Template","UserInfoLoginComponent_div_0_span_1_ng_container_12_Template_a_click_4_listener","_r24","ctx_r23","UserInfoLoginComponent_div_0_span_1_ng_container_5_Template","UserInfoLoginComponent_div_0_span_1_ng_template_6_Template","UserInfoLoginComponent_div_0_span_1_Template_a_click_8_listener","_r27","ctx_r26","UserInfoLoginComponent_div_0_span_1_ng_container_9_Template","UserInfoLoginComponent_div_0_span_1_ng_template_10_Template","UserInfoLoginComponent_div_0_span_1_ng_container_12_Template","UserInfoLoginComponent_div_0_span_1_Template","UserInfoLoginComponent_Template","UserInfoLoginComponent_div_0_Template","FormBuilder","FormControl","finalize","loggerFn","StandardErrorHandlerService","LoadIndicatorService","UserRoleSettingsComponent_div_0_div_21_Template_input_change_5_listener","i_r4","index","ɵɵreference","onCheckBoxChange","checked","formResponsibles","user_r3","UserRoleSettingsComponent_div_0_Template_i_click_5_listener","_r9","UserRoleSettingsComponent_div_0_div_21_Template","UserRoleSettingsComponent_div_0_Template_button_click_24_listener","UserRoleSettingsComponent_div_0_Template_button_click_26_listener","userPermissionDtos","formBuilder","loadIndicatorService","_errorHandler","_userPermissionDtos","userSubscription","_formResponsibles","showLoadIndicator","setUsers","pipe","hideLoadIndicator","response","showSuccessMessage","error","handleError","group","geAccountUserPermissions","forEach","v","addControl","indexOf","toFixed","UserRoleSettingsComponent_Template","UserRoleSettingsComponent_div_0_Template","userContext_r7","i_r13","imgIndividualIndex","ProductDetailPageComponent_div_0_div_7_i_4_Template_i_click_0_listener","productsPrevious","imgSliderIndex","ProductDetailPageComponent_div_0_div_7_ng_container_5_div_1_Template_img_click_1_listener","_r21","i_r17","selectImg","ProductDetailPageComponent_div_0_div_7_ng_container_5_div_1_Template","numberOfImagesToShow","ProductDetailPageComponent_div_0_div_7_i_6_Template_i_click_0_listener","productsNext","ProductDetailPageComponent_div_0_div_7_li_3_Template","ProductDetailPageComponent_div_0_div_7_i_4_Template","ProductDetailPageComponent_div_0_div_7_ng_container_5_Template","ProductDetailPageComponent_div_0_div_7_i_6_Template","ProductDetailPageComponent_div_0_i_9_Template_i_click_0_listener","_r26","swipeLeft","ProductDetailPageComponent_div_0_i_12_Template_i_click_0_listener","_r28","ctx_r27","swipeRight","ctx_r30","ProductDetailPageComponent_div_0_div_13_span_10_Template","ProductDetailPageComponent_div_0_div_13_Template_input_ngModelChange_16_listener","_r36","ctx_r35","ProductDetailPageComponent_div_0_div_13_Template_button_click_18_listener","addToCart","ProductDetailPageComponent_div_0_div_13_div_19_Template","ProductDetailPageComponent_div_0_div_13_div_20_Template","ProductDetailPageComponent_div_0_div_13_Template_button_click_21_listener","userContext_r29","localeDescriptionOfProductItem","hasCoPayment","showAnimation","cartDataService","ProductDetailPageComponent_div_0_div_3_Template","ProductDetailPageComponent_div_0_Template_i_click_5_listener","_r41","ProductDetailPageComponent_div_0_div_7_Template","ProductDetailPageComponent_div_0_i_9_Template","ProductDetailPageComponent_div_0_i_12_Template","ProductDetailPageComponent_div_0_div_13_Template","active","ProductDetailPageComponent","activeModal","currFormat","currencyFormat","copayment","description","arrayLength","i","animationTimeout","setTimeout","ProductDetailPageComponent_Template","ProductDetailPageComponent_div_0_Template","RewardGridviewItemComponent_div_0_a_9_Template_a_click_0_listener","userContext_r6","value_r9","translate_r1","RewardGridviewItemComponent_div_0_a_9_Template","RewardGridviewItemComponent_div_0_span_30_Template","RewardGridviewItemComponent_div_0_Template_button_click_33_listener","RewardGridviewItemComponent_div_0_div_34_Template","RewardGridviewItemComponent_div_0_div_35_Template","RewardGridviewItemComponent","imageUrl","productDetailPage","substring","RewardGridviewItemComponent_Template","RewardGridviewItemComponent_div_0_Template","tap","effectiveAccount","Promise","reject","refreshContext","upsertUserState","ssu","relatedSsu","isAuthenticated","isUnauthorized","ɵɵinject","factory","ɵfac","providedIn","ActivatedRouteSnapshot","RouterStateSnapshot","UrlTree","map","route","throwError","functionName","message","t","handleErrorFn","errorMessage","ErrorEvent","Error","defaultToastParameter","showNoRewardUserToast","toastParams","handleAdminUser","adminRedirectUrl","sessionStorage","removeItem","handleCommunityUserEnabled","setMenuItems","handleCommunityUserUnregistered","handleCommunityPublic","shopUrl","toLowerCase","HttpErrorResponse","source","fatal","BehaviorSubject","_communityUserService","_ssuInfo$","asObservable","ssuInformation","counter","_isVisible","isVisible","menuConfiguration","Map","navigationArea","_menuConfig","_menuConfig$","_canRedeem$","userContextSub","hoverShoppingList","mobileMenuToggle","isNavFoldedIn","registered","retrieveCanRedeemState","getIsNavFoldedIn","isInCheckout","isInCart","navArea","navWithoutTiers","filter","prefix","switchMap","localeEnAu","localeEnNz","localeEnIn","localeId","localeJp","localeKr","localeMy","localeEnPh","localeEnSg","localeTw","localeTh","localeEsBR","localeEnDk","localeFi","localeSe","localeDeCh","localeEnGB","localeDeAT","localeCz","localeEe","localeHu","localeLt","localeLv","localePL","localeRu","localeSk","localeUa","localeEnZa","localeEnCa","localeEsMx","localeTr","localeNlBe","localeIt","localeNl","localeEs","_locale","_currencyCode","_currencyFormat","subscription","_rewardAccount$","getUserRewardAccount","_ssuInformation$","displayCurrencyForAlternativeBillingCurrencies","billingAddress","countryCode","parseUrlParameter","take","APP_USER_SERVICE_CONFIG","eShopLang$","_defaultLangMap","reduce","lang","set","eShopLang","setLanguage","setLanguageFromUser","isLang","setActiveLang","transformSimpleLanguageCode","getDefaultLang","userInfo$","getUserInfo","user","userLang","languageCodeFormatter","console","log","langCode","replace","InjectionToken","RewardProductDto","RewardProgramDto","standardErrorHandlerService","userSerivce","_programSettings$","_programProducts$","programProducts$","retrieveProgramSettings","getUserProgramSettings","info","retrieveProgramCatalogue","getProgramRewardProducts","_redeemResponse$","_redeemSimulateResponse$","_redeemCartItems","Array","myRedemptionCartLocalStorageKey","localCart","localStorage","getItem","localCartAsObject","JSON","parse","count","item","cartItems","setItem","stringify","redeemSimulateResponse$","redeemResponse$","id","cartItem","addOrRemoveFromCart","refreshProductDtoModels","newModels","copyToIterate","getRewardProductById","newItem","simulateRedemptionCart","redeemSimulate","redeemRedemptionCart","_billingAddress","_additionalInformation","redeem","additionalInformation","success","ifExists","splice","push","_4","_5","of","multiLanguageService","Observable","ResolverHandler","publicUserState","_publicUserState","calculateUserState","DateTime","convertUtcIsoDateStringToAccountDateTime","utcIsoDateString","zoneOffset","fromISO","zone","setZone","convertRewardTransactionToClientModel","rewardTransaction","zoneOffsetOfAccount","orderId","type","usedPoints","expiringDate","timeStamp","timestamp","ruleType","rewardOrderId","adminUserId","comment","HotToastService","hotToast","transloco","translationKey","processMessage","className","color","iconTheme","primary","secondary","selectTranslate","getLastDayOfMonth","getFirstDayOfMonth","settingService","_userBalance$","_totalRedemptions$","_totalPointEarnings$","_rewardTransactions$","_earningsFromTo$","_redemptionsFromTo$","_expiringPoints$","_tierData$","_userAccount$","_userContext$","totalRedemptions$","totalPointEarnings$","rewardTransactions$","earningsFromTo$","redemptionsFromTo$","expiringPoints$","currentTier$","tiers","tier","isCurrent","nextTier$","nextTier","getTierByLevel$","tierByLevel","userAccount$","retrieveUserAccount","rewardAccountDto","getUserBalance","balance","retrieveTotalTransactions","totalRedemptions","expiringPoints","getUserBalanceTransactions","transactions","transaction","today","futureDate","setDate","getDate","pointExpiry","reminderPeriodWeeks","earned","retrieveTotalTransactionPointsForLast12Months","redemptionData","fill","earningData","getYearUserBalanceTransactions","reverse","redeemed","retrieveTransactionPointsDateRange","dateRange","dateRangeIndexes","getMonth","slice","getUserRewardTiers","tierData","retrieveUserOrder","getUserOrder","filterTransactions","filterModel","property","order","sort","a","b","dateWithlastDayOfMonth","toISOString","getRangeOfMonths","from","to","days","dates","setMonth","LandingCoreComponent_div_0_Template_button_click_11_listener","LandingCoreComponent","blobStorageToS","LandingCoreComponent_Template","LandingCoreComponent_div_0_Template","LoadingSpinnerComponent_ng_container_0_div_1_Template","LoadingSpinnerComponent","LoadingSpinnerComponent_Template","LoadingSpinnerComponent_ng_container_0_Template","MonthRangePickerComponent_div_13_Template_div_click_0_listener","i_r2","onClick","MonthRangePickerComponent_div_13_Template_div_mouseover_1_listener","month_r1","setHoverProperty","rangeIndexes","globalIndexOffset","ɵɵpureFunction4","isInRange","isLowerEdge","isUpperEdge","isHovered","monthName","MonthRangePickerComponent","minShownYear","_years","_months","_monthsDataArray","_rangeIndexes","_monthViewSlicesIndexes","_currentYearIndex","_globalIndexOffset","_monthDataSlice","_hoverToggle","dateRangeSelected","getMinYear","initYearLabels","initMonthLabels","findIndex","year","initViewSlices","initMonthsData","initRangeIndexes","sliceDataIntoView","years","currentYearIndex","monthDataSlice","Math","min","range","start","stop","step","month","monthYear","toggleHoverToggle","incrementYear","decrementYear","_event","_monthsData","hoveredIndex","startIndex","hoveredMonth","indexClicked","emitDateRange","fromMonthYear","toMonthYear","MonthRangePickerComponent_Template","MonthRangePickerComponent_Template_button_click_3_listener","MonthRangePickerComponent_Template_button_click_9_listener","MonthRangePickerComponent_div_13_Template","PaginatorComponent_div_0_li_10_Template_a_click_1_listener","changePage","PaginatorComponent_div_0_li_15_Template_a_click_1_listener","page","PaginatorComponent_div_0_li_16_Template_a_click_1_listener","PaginatorComponent_div_0_li_18_Template_a_click_1_listener","_r17","pageMax","option_r18","PaginatorComponent_div_0_Template_a_click_5_listener","_r20","PaginatorComponent_div_0_li_10_Template","PaginatorComponent_div_0_li_11_Template","PaginatorComponent_div_0_li_15_Template","PaginatorComponent_div_0_li_16_Template","PaginatorComponent_div_0_li_17_Template","PaginatorComponent_div_0_li_18_Template","PaginatorComponent_div_0_Template_a_click_20_listener","PaginatorComponent_div_0_Template_select_ngModelChange_30_listener","ctx_r22","itemsPerPageSelection","PaginatorComponent_div_0_Template_select_change_30_listener","changeItemsPerPage","PaginatorComponent_div_0_option_32_Template","itemNumberOptions","PaginatorComponent","pageChange","itemsPerPageChange","ceil","itemCount","newPage","itemsPerPage","PaginatorComponent_Template","PaginatorComponent_div_0_Template","CommonModule","TranslocoRootModule","FormsModule","ReactiveFormsModule","ErrorTailorModule","NgSelectModule","errors","service","required","translate","minlength","requiredLength","actualLength","email","pattern","TRANSLOCO_LOADER","Translation","TRANSLOCO_CONFIG","translocoConfig","TranslocoModule","TranslocoHttpLoader","http","getTranslation","availableLangs","defaultLang","fallbackLang","reRenderOnLangChange","prodMode","missingHandler","useFallbackTranslation","useClass","enableProdMode","httpClientIntegration","init","dsn","integrations","failedRequestStatusCodes","sendDefaultPii","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch","err","ModuleWithProviders","AUTH_CONFIG_TOKEN","ngModule","providers","createIdmRedirectUrl4Admin","HttpHeaders","catchError","DISABLE_REDIRECT","AuthAdminInterceptorService","configuration","intercept","req","accessToken","token$","header","clone","headers","Authorization","handle","casURL","HttpParams","isRedirectToCasRequired","checkIfTokenExpired","mapBackendUserState","concatMap","delay","AuthAdminService","isAuthenticatedByExternalSystem","authCode","retrieveAccessCode","replaceState","pathname","id_token","authenticateUser","upsertToken","retrieveUserInfo","has401","checkIfTokenAndUserInfoIsPresent","URL","accessTokenSerialized","expiresAt","now","userStateSerialized","code","append","btoa","post","isSuperAdmin","jwtToken","searchParams","decodeTokenWithoutValidating","token","base64Url","base64","decodeURIComponent","atob","c","charCodeAt","toString","join","hasTokenExpired","exp","offset","createCasUrl","baseUrl","clientId","encodeURI","casUrl","saveToken","key","getToken","redirectToExternalErrorPage","reason","containsUrlToExclude","casUrlFragment","every","vote","expiresAtAsIso","compareDateTime","diffMinutes","diff","minutes","Object","assign","HttpContext","HttpContextToken","autConfigService","_userState$","_token$","_has401","needsDehydration","clear","configurationFactory","parentModule","CustomHttpParameterCodec","BASE_PATH","AdminUserService","defaultHeaders","encoder","addToHttpParams","httpParams","addToHttpParamsRecursive","isArray","elem","substr","keys","k","deleteRewardProduct","hDME2ECorrelationId","reportProgress","options","String","credential","lookupCredential","httpHeaderAcceptSelected","httpHeaderAccept","httpHeaderAccepts","selectHeaderAccept","responseType","startsWith","delete","encodeURIComponent","deleteRewardProductSandbox","sandbox","deleteRewardRule","deleteRewardRuleSandbox","deleteTransaction","deleteTransactionSandbox","getAccountOrders","orderIdQuery","limit","queryParameters","params","getAccountOrdersSandbox","getAccountTransactions","getAccountTransactionsSandbox","getAccountUserInfos","getAccountUserInfosSandbox","getAdminAppDefaults","getAdminAppDefaultsSandbox","getOrder","getOrderSandbox","getRewardAdminUser","adminId","getRewardAdminUserSandbox","getRewardProducts","getRewardProductsSandbox","getRewardRules","getRewardRulesSandbox","getRewardUser","contactId","getRewardUserSandbox","getSsuEmailSettings","getSsuEmailSettingsSandbox","getSsuInfo","getSsuInfoSandbox","getSsuTransactions","getSsuTransactionsSandbox","getTotalBalanceHistory","getTotalBalanceHistorySandbox","getUnprocessedOrdersAmount","getUnprocessedOrdersAmountSandbox","joinRequests","joinRequestsSandbox","onboardRewardAccount","onboardRewardAccountSandbox","rewardAccountSandbox","rewardAccountStatus","put","rewardAccountStatusSandbox","rewardAccounts","rewardAccountsByStatus","rewardAccountsByStatusSandbox","rewardAccountsCount","nameFilter","rewardAccountsCountSandbox","rewardAccountsPage","pageSize","sortColumn","sorting","rewardAccountsPageSandbox","rewardAccountsSandbox","rewardProgramInfo","rewardProgramInfoSandbox","rewardSettings","rewardSettingsSandbox","setRewardRule","rewardRule","consumes","httpContentTypeSelected","selectHeaderContentType","setRewardRuleSandbox","setRewardSettings","rewardProgram","setRewardSettingsSandbox","setSsuEmailSettings","ssuEmailSettings","setSsuEmailSettingsSandbox","setUserPermissions","userPermission","setUserPermissionsSandbox","ssuTiers","ssuTiersSandbox","updateOrderStatus","newStatus","updateOrderStatusSandbox","updateRewardProduct","updateRewardProductSandbox","upsertTransaction","adminTransactionModel","upsertTransactionSandbox","AdminWidgetContentService","addWidgetContent","widgetContentDTO","deleteWidgetContent","widgetContentId","getActiveWidgetContents","getWidgetContentById","getWidgetContents","getWidgetContentsForSsuAndLocale","updateWidgetContent","AssetService","EShopService","ReplicatorService","SuperAdminUserService","APIS","canConsumeForm","form","consume","deleteAsset","assetName","deleteAssetSandbox","getAssets","getAssetsSandbox","uploadAndCreateAsset","file","formParams","useForm","convertFormParamsToString","FormData","uploadAndCreateAssetSandbox","authToken","authTokenCas","authTokenCasSandbox","authTokenSandbox","getUserInfoSandbox","effectiveAccountSapAccountNumber","refreshContextSandbox","geAccountUserPermissionsSandbox","getAllEshopsSandbox","getProgramRewardProductsSandbox","getRewardProductByIdSandbox","getUserAdvertisedRewardProducts","getUserAdvertisedRewardProductsSandbox","getUserBalanceSandbox","getUserBalanceTransactionsSandbox","getUserOrderSandbox","getUserProgramSettingsSandbox","getUserRewardAccountSandbox","getUserRewardProducts","getUserRewardProductsSandbox","getUserRewardTiersSandbox","getYearUserBalanceTransactionsSandbox","redeemRequest","redeemSandbox","cartItemDto","redeemSimulateSandbox","setUsersSandbox","ssuInformationSandbox","termsAndConditions","termsAndConditionsSandbox","userContextSandbox","accountInformation","accountInformationSandbox","collectPoints","collectCart","collectPointsInfo","collectPointsInfoSandbox","collectPointsSandbox","apiV1BuildAndEnableRewardAccountsAndUsersPost","apiV1SandboxSandboxBuildAndEnableRewardAccountsAndUsersPost","replicate","replicateSandbox","deleteAdminUser","userId","deleteAdminUserSandbox","getAdminUser","getAdminUserSandbox","getAllOrders","getAllOrdersSandbox","upsertAdminUser","rewardUser","create","upsertAdminUserSandbox","configurationParameters","apiKeys","username","password","credentials","contentTypes","isJsonMime","accepts","mime","jsonMime","RegExp","test","encodeKey","encodeValue","decodeKey","decodeValue","EmailTemplateType","Order","AccountWaitingForApproval","AccountAccepted","AccountDeclined","TierLevelAchieved","ChangePointBalance","ExpiringPoints","NewPromotion","NewTierSeasonInfo","ErrorType","UnexpectedError","InvalidModel","RewardServiceError","CollectPointsError","MongoRepositoryError","EmailRepositoryError","HttpContextError","SalesForceAuthenticationError","SfClientQueryError","RedeemError","UserRepository","BlobStorageError","SchedulerError","MailComposeError","AuthenticationError","OrderError","RewardAccountError","RewardUserError","RedisError","RewardRepositoryError","AccountsServiceError","RulesService","TransactionsService","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","RedirectKeepVerb","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","RequestEntityTooLarge","RequestUriTooLong","UnsupportedMediaType","RequestedRangeNotSatisfiable","ExpectationFailed","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","RewardAccountStatus","Unregistered","WaitingForApproval","Enabled","Disabled","Declined","RewardProductType","Product","Coupon","RewardProgramDocumentType","TermsOfService","RoundingRule","Up","Down","Closest","RuleAction","ActiveOrder","Registration","RuleCondition","LoyaltyGreaterThan0","LoyaltyGreaterThan50","RuleMode","Fixed","Factor","RuleType","None","EShop","Service","SortingDirection","Asc","Desc","TransactionStatus","Unknown","EShopOrderPlaced","EShopOrderInProgress","EshopOrderCompleted","Redeemed","TransactionType","Reward","Redemption","UserType","Community","Admin","COLLECTION_FORMATS"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}