{"version":3,"file":"main.js","mappings":"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AA,CAAAosB,cAAA,CAAAV,OAAA,CAA6C;QA8EhEzuB,uDAAA,GAAoB;QAApBA,wDAAA,iBAAAoe,GAAA,CAAoB;;;;;;;;;;;;;;;;;;;;;;;AC5VoB;AAExC,MAAM/c,SAAS,GAAG,IAAIgwB,yDAAc,CAAS,UAAU,CAAC;AACxD,MAAMC,kBAAkB,GAAG;EAC9B,KAAK,EAAE,GAAG;EACV,KAAK,EAAE,KAAK;EACZ,KAAK,EAAE,GAAG;EACV,OAAO,EAAE;CACZ;;;;;;;;;;;;;;;ACRD;AACA;AACA;AAEO,MAAMC,WAAW,GAAG;EACzBC,UAAU,EAAE;CACb;AAED;;;;;;;AAOA;;;;;;;;;;;;;;;;;ACf+C;AAGF;AACY;AAEzD,IAAID,kEAAW,CAACC,UAAU,EAAE;EAC1BC,6DAAc,EAAE;;AAGlBC,sEAAA,EAAwB,CAACE,eAAe,CAACvjB,sDAAS,CAAC,CAChDwjB,KAAK,CAACld,GAAG,IAAI1D,OAAO,CAACyE,KAAK,CAACf,GAAG,CAAC,CAAC;;;;;;;;;;ACXnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/api.module.ts","./src/app/api/api.ts","./src/app/api/apiKeyManager.service.ts","./src/app/api/certificateTypes.service.ts","./src/app/api/certificatesV2.service.ts","./src/app/api/courseMetas.service.ts","./src/app/api/dataTransfer.service.ts","./src/app/api/externalBadging.service.ts","./src/app/api/public.service.ts","./src/app/api/rulesEngine.service.ts","./src/app/api/stats.service.ts","./src/app/api/templates.service.ts","./src/app/api/uALogin.service.ts","./src/app/api/userMigration.service.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/configuration.ts","./src/app/core/auth.service.ts","./src/app/core/bu-config.service.ts","./src/app/core/cache-entry.ts","./src/app/core/cache-map.service.ts","./src/app/core/cache.interceptor.ts","./src/app/core/custom-header.ts","./src/app/core/load-notification.interceptor.ts","./src/app/core/load-notification.service.ts","./src/app/core/toast-notification.service.ts","./src/app/core/user.service.ts","./src/app/encoder.ts","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/login/login.component.ts","./src/app/login/login.component.html","./src/app/model/advancedSearch.ts","./src/app/model/advancedSearchListByteArrayTuple.ts","./src/app/model/advancedSearchListByteArrayTupleIResult.ts","./src/app/model/apiKey.ts","./src/app/model/apiKeyIEnumerableIResult.ts","./src/app/model/apiKeyIResult.ts","./src/app/model/appDetails.ts","./src/app/model/auditEvent.ts","./src/app/model/authorizationKey.ts","./src/app/model/authorizationKeyToRole.ts","./src/app/model/awardDetails.ts","./src/app/model/backdatedCertificate.ts","./src/app/model/badgeVendorApi.ts","./src/app/model/badgingAppDetails.ts","./src/app/model/badgingOptions.ts","./src/app/model/badgingOptionsModel.ts","./src/app/model/booleanIResult.ts","./src/app/model/brightlinkIntegrationOptions.ts","./src/app/model/brightlinkType.ts","./src/app/model/brightlinkTypeIEnumerableIResult.ts","./src/app/model/byteArrayIResult.ts","./src/app/model/certificateBasic.ts","./src/app/model/certificateOptions.ts","./src/app/model/certificateStatusCodeEnum.ts","./src/app/model/certificateTemplate.ts","./src/app/model/certificateTemplateIListIResult.ts","./src/app/model/certificateTemplateIResult.ts","./src/app/model/certificateTemplateStringObjectDictionaryTuple.ts","./src/app/model/courseMeta.ts","./src/app/model/courseMetaIEnumerableIResult.ts","./src/app/model/courseMetaIResult.ts","./src/app/model/courseMetaSecondaryType.ts","./src/app/model/dataCopy.ts","./src/app/model/dataCopyModel.ts","./src/app/model/dataCopyReturn.ts","./src/app/model/dataCopyReturnIResult.ts","./src/app/model/docGenOptions.ts","./src/app/model/dropTemplateField.ts","./src/app/model/dropTemplateFieldIEnumerableIResult.ts","./src/app/model/externalCredential.ts","./src/app/model/externalCredentialAwarded.ts","./src/app/model/externalCredentialIResult.ts","./src/app/model/groupedCertificate.ts","./src/app/model/guidStringDictionaryIResult.ts","./src/app/model/iCertificate.ts","./src/app/model/iCertificateIEnumerableIResult.ts","./src/app/model/iCertificateIResult.ts","./src/app/model/iCertificateMetadata.ts","./src/app/model/iCertificateMetadataIEnumerableIResult.ts","./src/app/model/iCertificateMetadataIResult.ts","./src/app/model/iCourseMetaSecondaryType.ts","./src/app/model/iError.ts","./src/app/model/iLmsItem.ts","./src/app/model/iLookupCertificateResult.ts","./src/app/model/iLookupUserResult.ts","./src/app/model/iLookupUserResultIEnumerableIResult.ts","./src/app/model/iUserDetails.ts","./src/app/model/int32IResult.ts","./src/app/model/jobOptions.ts","./src/app/model/kafkaOptions.ts","./src/app/model/lmsItem.ts","./src/app/model/lookupCertificateResult.ts","./src/app/model/mainMenu.ts","./src/app/model/menu.ts","./src/app/model/menuIResult.ts","./src/app/model/metaTypeRule.ts","./src/app/model/metaTypeRuleCollection.ts","./src/app/model/metaTypeRuleCollectionIResult.ts","./src/app/model/metaTypeRuleIResult.ts","./src/app/model/metadata.ts","./src/app/model/migrateToUserSnapshotJob.ts","./src/app/model/models.ts","./src/app/model/myCertificateMFE.ts","./src/app/model/myCertificateMFEIEnumerableBooleanTuple.ts","./src/app/model/myCertificateMFEIEnumerableBooleanTupleIResult.ts","./src/app/model/offering.ts","./src/app/model/offeringIEnumerableIResult.ts","./src/app/model/offeringIResult.ts","./src/app/model/permissions.ts","./src/app/model/problemDetails.ts","./src/app/model/publicSearch.ts","./src/app/model/renewCertificate.ts","./src/app/model/role.ts","./src/app/model/roleIEnumerableIResult.ts","./src/app/model/rulesEngineApiHookOptions.ts","./src/app/model/rulesEngineOptions.ts","./src/app/model/searchResult.ts","./src/app/model/searchResultIEnumerableIResult.ts","./src/app/model/secondaryTypes.ts","./src/app/model/stringIApiResult.ts","./src/app/model/stringIResult.ts","./src/app/model/stringStringKeyValuePair.ts","./src/app/model/subMenu.ts","./src/app/model/templateField.ts","./src/app/model/topic.ts","./src/app/model/types.ts","./src/app/model/uaOptions.ts","./src/app/model/updateStatusJob.ts","./src/app/model/userAuthoritySettings.ts","./src/app/model/userCertificate.ts","./src/app/model/userCertificateIEnumerableIResult.ts","./src/app/model/userCertificateIResult.ts","./src/app/model/userSearch.ts","./src/app/shared/certificate-status-badge/certificate-status-badge.component.ts","./src/app/shared/certificate-status-badge/certificate-status-badge.component.html","./src/app/shared/certificate-status-dropdown/certificate-status-dropdown.component.ts","./src/app/shared/certificate-status-dropdown/certificate-status-dropdown.component.html","./src/app/shared/course-card/course-card.component.ts","./src/app/shared/course-card/course-card.component.html","./src/app/shared/header/header.component.ts","./src/app/shared/header/header.component.html","./src/app/shared/load-notification/load-notification.component.ts","./src/app/shared/load-notification/load-notification.component.html","./src/app/shared/meta-course-selector/meta-course-selector.component.ts","./src/app/shared/meta-course-selector/meta-course-selector.component.html","./src/app/shared/meta-template-selector/meta-template-selector.component.ts","./src/app/shared/meta-template-selector/meta-template-selector.component.html","./src/app/shared/meta-type-selector/meta-type-selector.component.ts","./src/app/shared/meta-type-selector/meta-type-selector.component.html","./src/app/shared/shared.module.ts","./src/app/shared/template-card/template-card.component.ts","./src/app/shared/template-card/template-card.component.html","./src/app/shared/toast-notification/toast-notification.component.ts","./src/app/shared/toast-notification/toast-notification.component.html","./src/app/stats/stats.component.ts","./src/app/stats/stats.component.html","./src/app/variables.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule, ModuleWithProviders, SkipSelf, Optional, Injectable } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n//import { CertificateTypesService } from './api/certificateTypes.service';\n//import { CertificatesV2Service } from './api/certificatesV2.service';\n//import { CourseMetasService } from './api/courseMetas.service';\n//import { RulesEngineService } from './api/rulesEngine.service';\n//import { StatsService } from './api/stats.service';\n//import { TemplatesService } from './api/templates.service';\n//import { UserMigrationService } from './api/userMigration.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","export * from './apiKeyManager.service';\nimport { ApiKeyManagerService } from './apiKeyManager.service';\nexport * from './certificateTypes.service';\nimport { CertificateTypesService } from './certificateTypes.service';\nexport * from './certificatesV2.service';\nimport { CertificatesV2Service } from './certificatesV2.service';\nexport * from './courseMetas.service';\nimport { CourseMetasService } from './courseMetas.service';\nexport * from './dataTransfer.service';\nimport { DataTransferService } from './dataTransfer.service';\nexport * from './externalBadging.service';\nimport { ExternalBadgingService } from './externalBadging.service';\nexport * from './public.service';\nimport { PublicService } from './public.service';\nexport * from './rulesEngine.service';\nimport { RulesEngineService } from './rulesEngine.service';\nexport * from './stats.service';\nimport { StatsService } from './stats.service';\nexport * from './templates.service';\nimport { TemplatesService } from './templates.service';\nexport * from './uALogin.service';\nimport { UALoginService } from './uALogin.service';\nexport * from './userMigration.service';\nimport { UserMigrationService } from './userMigration.service';\nexport const APIS = [ApiKeyManagerService, CertificateTypesService, CertificatesV2Service, CourseMetasService, DataTransferService, ExternalBadgingService, PublicService, RulesEngineService, StatsService, TemplatesService, UALoginService, UserMigrationService];\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ApiKey } from '../model/models';\nimport { ApiKeyIEnumerableIResult } from '../model/models';\nimport { ApiKeyIResult } from '../model/models';\nimport { MenuIResult } from '../model/models';\nimport { ProblemDetails } from '../model/models';\nimport { RoleIEnumerableIResult } from '../model/models';\nimport { StringIApiResult } from '../model/models';\nimport { StringStringKeyValuePair } 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 ApiKeyManagerService {\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\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 stringStringKeyValuePair\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 apiV2ApiKeyManagerAuthkeyPost(stringStringKeyValuePair?: StringStringKeyValuePair, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2ApiKeyManagerAuthkeyPost(stringStringKeyValuePair?: StringStringKeyValuePair, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerAuthkeyPost(stringStringKeyValuePair?: StringStringKeyValuePair, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerAuthkeyPost(stringStringKeyValuePair?: StringStringKeyValuePair, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/ApiKeyManager/authkey`,\n stringStringKeyValuePair,\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 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 apiV2ApiKeyManagerGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2ApiKeyManagerGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/ApiKeyManager`,\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 id\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 apiV2ApiKeyManagerIdGet(id: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2ApiKeyManagerIdGet(id: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerIdGet(id: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerIdGet(id: 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 apiV2ApiKeyManagerIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/ApiKeyManager/${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 * @param id\n * @param apiKey\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 apiV2ApiKeyManagerIdPut(id: string, apiKey?: ApiKey, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2ApiKeyManagerIdPut(id: string, apiKey?: ApiKey, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerIdPut(id: string, apiKey?: ApiKey, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerIdPut(id: string, apiKey?: ApiKey, 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 apiV2ApiKeyManagerIdPut.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/ApiKeyManager/${encodeURIComponent(String(id))}`,\n apiKey,\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 apiKey\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 apiV2ApiKeyManagerPost(apiKey?: ApiKey, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2ApiKeyManagerPost(apiKey?: ApiKey, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerPost(apiKey?: ApiKey, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerPost(apiKey?: ApiKey, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/ApiKeyManager`,\n apiKey,\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 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 apiV2ApiKeyManagerRolesGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2ApiKeyManagerRolesGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerRolesGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ApiKeyManagerRolesGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/ApiKeyManager/roles`,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificateMetadataIEnumerableIResult } from '../model/models';\nimport { ICertificateMetadataIResult } from '../model/models';\nimport { Metadata } from '../model/models';\nimport { StringIApiResult } 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 CertificateTypesService {\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\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 all certificate types\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 apiV2TypesGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TypesGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TypesGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TypesGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/types`,\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 the certificate type for the id provided\n * @param id \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 apiV2TypesIdGet(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TypesIdGet(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TypesIdGet(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TypesIdGet(id: number, 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 apiV2TypesIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/types/${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 * Updates an existing certificate\n * @param id \n * @param metadata \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 apiV2TypesIdPut(id: number, metadata?: Metadata, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TypesIdPut(id: number, metadata?: Metadata, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TypesIdPut(id: number, metadata?: Metadata, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TypesIdPut(id: number, metadata?: Metadata, 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 apiV2TypesIdPut.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/types/${encodeURIComponent(String(id))}`,\n metadata,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Creates a new certificate type\n * @param metadata \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 apiV2TypesPost(metadata?: Metadata, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TypesPost(metadata?: Metadata, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TypesPost(metadata?: Metadata, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TypesPost(metadata?: Metadata, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/types`,\n metadata,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { AdvancedSearchListByteArrayTupleIResult } from '../model/models';\nimport { AwardDetails } from '../model/models';\nimport { BackdatedCertificate } from '../model/models';\nimport { BooleanIResult } from '../model/models';\nimport { ByteArrayIResult } from '../model/models';\nimport { CertificateBasic } from '../model/models';\nimport { GroupedCertificate } from '../model/models';\nimport { ICertificateIEnumerableIResult } from '../model/models';\nimport { ICertificateIResult } from '../model/models';\nimport { ILookupUserResultIEnumerableIResult } from '../model/models';\nimport { Int32IResult } from '../model/models';\nimport { RenewCertificate } from '../model/models';\nimport { StringIApiResult } from '../model/models';\nimport { UserCertificateIEnumerableIResult } from '../model/models';\nimport { UserCertificateIResult } from '../model/models';\nimport { UserSearch } 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 CertificatesV2Service {\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\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 * search for certificates by courses, start date and end date\n * - Ability to search certificates issued by course - Ability to multi-select - Ability to search certificates issued in a given time period (created start, created end) - Ability to combine any or all of the individual items above - Ability to export CSV as Flat as possible\n * @param startDate option to select course start date\n * @param endDate option to select course end date\n * @param requestBody option to select multiple courses\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 apiV2CertificatesAdvancedsearchPost(startDate?: string, endDate?: string, requestBody?: Array, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesAdvancedsearchPost(startDate?: string, endDate?: string, requestBody?: Array, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesAdvancedsearchPost(startDate?: string, endDate?: string, requestBody?: Array, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesAdvancedsearchPost(startDate?: string, endDate?: string, requestBody?: Array, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (startDate !== undefined && startDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n startDate, 'startDate');\n }\n if (endDate !== undefined && endDate !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n endDate, 'endDate');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/certificates/advancedsearch`,\n requestBody,\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 * Award certificates by course\n * @param awardDetails\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 apiV2CertificatesAwardByCoursePost(awardDetails?: AwardDetails, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesAwardByCoursePost(awardDetails?: AwardDetails, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesAwardByCoursePost(awardDetails?: AwardDetails, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesAwardByCoursePost(awardDetails?: AwardDetails, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/certificates/awardByCourse`,\n awardDetails,\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 the certificate for the number specified\n * @param certNumber\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 apiV2CertificatesCertNumberGet(certNumber: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesCertNumberGet(certNumber: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesCertNumberGet(certNumber: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesCertNumberGet(certNumber: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (certNumber === null || certNumber === undefined) {\n throw new Error('Required parameter certNumber was null or undefined when calling apiV2CertificatesCertNumberGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/certificates/${encodeURIComponent(String(certNumber))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Resends the certificate for processing\n * @param certNumber\n * @param eventType\n * @param parentCertNumber\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 apiV2CertificatesCertNumberQueuePost(certNumber: string, eventType?: string, parentCertNumber?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesCertNumberQueuePost(certNumber: string, eventType?: string, parentCertNumber?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesCertNumberQueuePost(certNumber: string, eventType?: string, parentCertNumber?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesCertNumberQueuePost(certNumber: string, eventType?: string, parentCertNumber?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (certNumber === null || certNumber === undefined) {\n throw new Error('Required parameter certNumber was null or undefined when calling apiV2CertificatesCertNumberQueuePost.');\n }\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (eventType !== undefined && eventType !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n eventType, 'eventType');\n }\n if (parentCertNumber !== undefined && parentCertNumber !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n parentCertNumber, 'parentCertNumber');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/certificates/${encodeURIComponent(String(certNumber))}/queue`,\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 * Update certificate, after a successful update a notification is sent to the topic if configured\n * @param certNumber certificate number\n * @param rowId certificate row identifier\n * @param certificateBasic certificate details for update\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 apiV2CertificatesCertNumberRowIdPut(certNumber: string, rowId: string, certificateBasic?: CertificateBasic, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesCertNumberRowIdPut(certNumber: string, rowId: string, certificateBasic?: CertificateBasic, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesCertNumberRowIdPut(certNumber: string, rowId: string, certificateBasic?: CertificateBasic, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesCertNumberRowIdPut(certNumber: string, rowId: string, certificateBasic?: CertificateBasic, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (certNumber === null || certNumber === undefined) {\n throw new Error('Required parameter certNumber was null or undefined when calling apiV2CertificatesCertNumberRowIdPut.');\n }\n if (rowId === null || rowId === undefined) {\n throw new Error('Required parameter rowId was null or undefined when calling apiV2CertificatesCertNumberRowIdPut.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/certificates/${encodeURIComponent(String(certNumber))}/${encodeURIComponent(String(rowId))}`,\n certificateBasic,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a backdated certificate with a pre-existing cert number\n * @param backdatedCertificate\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 apiV2CertificatesCreateBackdatedPost(backdatedCertificate?: BackdatedCertificate, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesCreateBackdatedPost(backdatedCertificate?: BackdatedCertificate, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesCreateBackdatedPost(backdatedCertificate?: BackdatedCertificate, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesCreateBackdatedPost(backdatedCertificate?: BackdatedCertificate, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/certificates/createBackdated`,\n backdatedCertificate,\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 uaid\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 apiV2CertificatesGroupedUaidGet(uaid: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesGroupedUaidGet(uaid: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2CertificatesGroupedUaidGet(uaid: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2CertificatesGroupedUaidGet(uaid: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (uaid === null || uaid === undefined) {\n throw new Error('Required parameter uaid was null or undefined when calling apiV2CertificatesGroupedUaidGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/certificates/grouped/${encodeURIComponent(String(uaid))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Merges certificates for 2 users - certs from source will be added to the destination\n * @param sourceUaId user id to get certificates - certificates will be removed upon success\n * @param destUaId user id to add certificates\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 apiV2CertificatesMergeSourceUaIdDestUaIdPut(sourceUaId: number, destUaId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesMergeSourceUaIdDestUaIdPut(sourceUaId: number, destUaId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesMergeSourceUaIdDestUaIdPut(sourceUaId: number, destUaId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesMergeSourceUaIdDestUaIdPut(sourceUaId: number, destUaId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (sourceUaId === null || sourceUaId === undefined) {\n throw new Error('Required parameter sourceUaId was null or undefined when calling apiV2CertificatesMergeSourceUaIdDestUaIdPut.');\n }\n if (destUaId === null || destUaId === undefined) {\n throw new Error('Required parameter destUaId was null or undefined when calling apiV2CertificatesMergeSourceUaIdDestUaIdPut.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/certificates/merge/${encodeURIComponent(String(sourceUaId))}/${encodeURIComponent(String(destUaId))}`,\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 * @param uaid\n * @param certNumber\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 apiV2CertificatesRelatedUaidCertNumberGet(uaid: number, certNumber: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesRelatedUaidCertNumberGet(uaid: number, certNumber: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2CertificatesRelatedUaidCertNumberGet(uaid: number, certNumber: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2CertificatesRelatedUaidCertNumberGet(uaid: number, certNumber: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (uaid === null || uaid === undefined) {\n throw new Error('Required parameter uaid was null or undefined when calling apiV2CertificatesRelatedUaidCertNumberGet.');\n }\n if (certNumber === null || certNumber === undefined) {\n throw new Error('Required parameter certNumber was null or undefined when calling apiV2CertificatesRelatedUaidCertNumberGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/certificates/related/${encodeURIComponent(String(uaid))}/${encodeURIComponent(String(certNumber))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Returns a byte array to render a printable certificate\n * @param rowId row identifier for certificate\n * @param format format options (i.e.: PDF)\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 apiV2CertificatesRenderRowIdFormatGet(rowId: string, format: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesRenderRowIdFormatGet(rowId: string, format: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesRenderRowIdFormatGet(rowId: string, format: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesRenderRowIdFormatGet(rowId: string, format: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (rowId === null || rowId === undefined) {\n throw new Error('Required parameter rowId was null or undefined when calling apiV2CertificatesRenderRowIdFormatGet.');\n }\n if (format === null || format === undefined) {\n throw new Error('Required parameter format was null or undefined when calling apiV2CertificatesRenderRowIdFormatGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/certificates/render/${encodeURIComponent(String(rowId))}/${encodeURIComponent(String(format))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Renew API (For internal brightlink integration service accessible by different Auth Key)\n * @param renewCertificate info for renewal\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 apiV2CertificatesRenewPost(renewCertificate?: RenewCertificate, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesRenewPost(renewCertificate?: RenewCertificate, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesRenewPost(renewCertificate?: RenewCertificate, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesRenewPost(renewCertificate?: RenewCertificate, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/certificates/renew`,\n renewCertificate,\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 uaid\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 apiV2CertificatesRenewablesUaidGet(uaid: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesRenewablesUaidGet(uaid: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2CertificatesRenewablesUaidGet(uaid: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2CertificatesRenewablesUaidGet(uaid: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (uaid === null || uaid === undefined) {\n throw new Error('Required parameter uaid was null or undefined when calling apiV2CertificatesRenewablesUaidGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/certificates/renewables/${encodeURIComponent(String(uaid))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * search for certificates by user or by cert number, searches performed against UA and local database\n * - search by userid: returns user with all certificates associated with user - search by certNumber: finds user by cert number and returns user with all certificates associated with user - search by email: returns user with all certificates associated with user - search by lastname (and firstname): returns users with associated certificates for each user\n * @param userSearch search options - at least one field is required, firstname is only valid if lastname is populated\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 apiV2CertificatesSearchPost(userSearch?: UserSearch, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesSearchPost(userSearch?: UserSearch, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesSearchPost(userSearch?: UserSearch, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesSearchPost(userSearch?: UserSearch, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/certificates/search`,\n userSearch,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Returns a list of certificates belonging to the UA Id\n * @param uaId UserAuthority ID\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 apiV2CertificatesUsersUaIdGet(uaId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CertificatesUsersUaIdGet(uaId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesUsersUaIdGet(uaId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CertificatesUsersUaIdGet(uaId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (uaId === null || uaId === undefined) {\n throw new Error('Required parameter uaId was null or undefined when calling apiV2CertificatesUsersUaIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/certificates/users/${encodeURIComponent(String(uaId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a new certificate for a user\n * @param certificateBasic\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 certificates(certificateBasic?: CertificateBasic, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public certificates(certificateBasic?: CertificateBasic, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public certificates(certificateBasic?: CertificateBasic, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public certificates(certificateBasic?: CertificateBasic, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/certificates`,\n certificateBasic,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ByteArrayIResult } from '../model/models';\nimport { CourseMeta } from '../model/models';\nimport { CourseMetaIEnumerableIResult } from '../model/models';\nimport { CourseMetaIResult } from '../model/models';\nimport { StringIApiResult } from '../model/models';\nimport { StringIResult } 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 CourseMetasService {\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\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 all course meta records\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 apiV2CoursemetasGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CoursemetasGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/coursemetas`,\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 the course meta detail for the id provided\n * @param id \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 apiV2CoursemetasIdGet(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CoursemetasIdGet(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasIdGet(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasIdGet(id: number, 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 apiV2CoursemetasIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/coursemetas/${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 * Updates an existing course meta record\n * @param id \n * @param courseMeta \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 apiV2CoursemetasIdPut(id: string, courseMeta?: CourseMeta, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CoursemetasIdPut(id: string, courseMeta?: CourseMeta, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasIdPut(id: string, courseMeta?: CourseMeta, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasIdPut(id: string, courseMeta?: CourseMeta, 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 apiV2CoursemetasIdPut.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/coursemetas/${encodeURIComponent(String(id))}`,\n courseMeta,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Inserts a new course meta record\n * @param courseMeta \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 apiV2CoursemetasPost(courseMeta?: CourseMeta, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CoursemetasPost(courseMeta?: CourseMeta, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasPost(courseMeta?: CourseMeta, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasPost(courseMeta?: CourseMeta, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/coursemetas`,\n courseMeta,\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 courseMeta \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 apiV2CoursemetasPreviewPost(courseMeta?: CourseMeta, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2CoursemetasPreviewPost(courseMeta?: CourseMeta, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasPreviewPost(courseMeta?: CourseMeta, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2CoursemetasPreviewPost(courseMeta?: CourseMeta, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/coursemetas/preview`,\n courseMeta,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ApiKey, ICertificateMetadata } from '../model/models';\nimport { CourseMeta } from '../model/models';\nimport { DataCopyModel } from '../model/models';\nimport { DataCopyReturnIResult } from '../model/models';\nimport { Metadata } from '../model/models';\nimport { StringIApiResult } 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 DataTransferService {\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\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 * Copy Course Data from present Env to higher Env\n * @param isConfirm\n * @param courseMeta\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 apiV2DatatransferCopyCoursePost(isConfirm?: boolean, courseMeta?: Array, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2DatatransferCopyCoursePost(isConfirm?: boolean, courseMeta?: Array, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2DatatransferCopyCoursePost(isConfirm?: boolean, courseMeta?: Array, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2DatatransferCopyCoursePost(isConfirm?: boolean, courseMeta?: Array, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isConfirm !== undefined && isConfirm !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isConfirm, 'isConfirm');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/datatransfer/CopyCourse`,\n courseMeta,\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 * Copy API Keys Data from present Env to higher Env\n * @param isConfirm\n * @param apiKey\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 apiV2DatatransferCopyKeysPost(isConfirm?: boolean, apiKey?: Array, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2DatatransferCopyKeysPost(isConfirm?: boolean, apiKey?: Array, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2DatatransferCopyKeysPost(isConfirm?: boolean, apiKey?: Array, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2DatatransferCopyKeysPost(isConfirm?: boolean, apiKey?: Array, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isConfirm !== undefined && isConfirm !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isConfirm, 'isConfirm');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/datatransfer/CopyKeys`,\n apiKey,\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 * Copy Templates Data from present Env to higher Env\n * @param isConfirm\n * @param requestBody\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 apiV2DatatransferCopyTemplatesPost(isConfirm?: boolean, requestBody?: Array, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2DatatransferCopyTemplatesPost(isConfirm?: boolean, requestBody?: Array, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2DatatransferCopyTemplatesPost(isConfirm?: boolean, requestBody?: Array, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2DatatransferCopyTemplatesPost(isConfirm?: boolean, requestBody?: Array, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isConfirm !== undefined && isConfirm !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isConfirm, 'isConfirm');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/datatransfer/CopyTemplates`,\n requestBody,\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 * Copy Types Data from present Env to higher Env\n * @param isConfirm\n * @param metadata\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 apiV2DatatransferCopyTypesPost(isConfirm?: boolean, metadata?: Array, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2DatatransferCopyTypesPost(isConfirm?: boolean, metadata?: Array, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2DatatransferCopyTypesPost(isConfirm?: boolean, metadata?: Array, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2DatatransferCopyTypesPost(isConfirm?: boolean, metadata?: Array, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let queryParameters = new HttpParams({encoder: this.encoder});\n if (isConfirm !== undefined && isConfirm !== null) {\n queryParameters = this.addToHttpParams(queryParameters,\n isConfirm, 'isConfirm');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/datatransfer/CopyTypes`,\n metadata,\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 * Dump Data from lower env in present\n * @param dataCopyModel\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 apiV2DatatransferDumpDataPost(dataCopyModel?: Array, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public apiV2DatatransferDumpDataPost(dataCopyModel?: Array, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public apiV2DatatransferDumpDataPost(dataCopyModel?: Array, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public apiV2DatatransferDumpDataPost(dataCopyModel?: Array, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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 ];\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/datatransfer/DumpData`,\n dataCopyModel,\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 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 apiV2DatatransferGetenvironmentGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable;\n public apiV2DatatransferGetenvironmentGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public apiV2DatatransferGetenvironmentGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined}): Observable>;\n public apiV2DatatransferGetenvironmentGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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 ];\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/v2/datatransfer/getenvironment`,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ExternalCredential } from '../model/models';\nimport { ExternalCredentialIResult } 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 ExternalBadgingService {\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\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 * Get the External Credentials based on course id.\n * @param courseMetaId \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 apiV2ExternalbadgingCourseMetaIdGet(courseMetaId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2ExternalbadgingCourseMetaIdGet(courseMetaId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ExternalbadgingCourseMetaIdGet(courseMetaId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ExternalbadgingCourseMetaIdGet(courseMetaId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (courseMetaId === null || courseMetaId === undefined) {\n throw new Error('Required parameter courseMetaId was null or undefined when calling apiV2ExternalbadgingCourseMetaIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/externalbadging/${encodeURIComponent(String(courseMetaId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Create a new external credential\n * @param externalCredential \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 apiV2ExternalbadgingPost(externalCredential?: ExternalCredential, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2ExternalbadgingPost(externalCredential?: ExternalCredential, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ExternalbadgingPost(externalCredential?: ExternalCredential, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2ExternalbadgingPost(externalCredential?: ExternalCredential, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/externalbadging`,\n externalCredential,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { PublicSearch } from '../model/models';\nimport { SearchResultIEnumerableIResult } from '../model/models';\nimport { StringIApiResult } 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 PublicService {\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\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 * search for certificates by user or by cert number, searches performed against UA and local database\n * - search by userid: returns user with all certificates associated with user - search by certNumber: finds user by cert number and returns the certificate - search by lastname (and firstname): returns users with associated certificates for each user\n * @param publicSearch search options - at least one field is required, firstname is only valid if lastname is populated\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 apiV2PCertificatesSearchPost(publicSearch?: PublicSearch, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2PCertificatesSearchPost(publicSearch?: PublicSearch, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2PCertificatesSearchPost(publicSearch?: PublicSearch, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2PCertificatesSearchPost(publicSearch?: PublicSearch, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/p/certificates/search`,\n publicSearch,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { MetaTypeRule } from '../model/models';\nimport { MetaTypeRuleCollectionIResult } from '../model/models';\nimport { MetaTypeRuleIResult } from '../model/models';\nimport { StringIApiResult } from '../model/models';\nimport { StringIResult } 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 RulesEngineService {\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\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 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 apiV2RulesEngineFieldsGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineFieldsGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2RulesEngineFieldsGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2RulesEngineFieldsGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/RulesEngine/fields`,\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 id \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 apiV2RulesEngineIdDelete(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2RulesEngineIdDelete(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineIdDelete(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineIdDelete(id: number, 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 apiV2RulesEngineIdDelete.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/RulesEngine/${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 * @param id \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 apiV2RulesEngineIdGet(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2RulesEngineIdGet(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineIdGet(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineIdGet(id: number, 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 apiV2RulesEngineIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/RulesEngine/${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 * @param id \n * @param metaTypeRule \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 apiV2RulesEngineIdPut(id: number, metaTypeRule?: MetaTypeRule, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2RulesEngineIdPut(id: number, metaTypeRule?: MetaTypeRule, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineIdPut(id: number, metaTypeRule?: MetaTypeRule, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineIdPut(id: number, metaTypeRule?: MetaTypeRule, 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 apiV2RulesEngineIdPut.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/RulesEngine/${encodeURIComponent(String(id))}`,\n metaTypeRule,\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 metaTypeRule \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 apiV2RulesEnginePost(metaTypeRule?: MetaTypeRule, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2RulesEnginePost(metaTypeRule?: MetaTypeRule, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEnginePost(metaTypeRule?: MetaTypeRule, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEnginePost(metaTypeRule?: MetaTypeRule, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/RulesEngine`,\n metaTypeRule,\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 id \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 apiV2RulesEngineTypeIdGet(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2RulesEngineTypeIdGet(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineTypeIdGet(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2RulesEngineTypeIdGet(id: number, 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 apiV2RulesEngineTypeIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/RulesEngine/type/${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","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { AppDetails } from '../model/models';\nimport { AuditEvent } from '../model/models';\nimport { BadgingAppDetails } from '../model/models';\nimport { JobOptions } from '../model/models';\nimport { ProblemDetails } 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 StatsService {\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\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 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 apiV2StatsAuditExtBadgingGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsAuditExtBadgingGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2StatsAuditExtBadgingGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2StatsAuditExtBadgingGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/stats/auditExtBadging`,\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 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 apiV2StatsAuditGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsAuditGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2StatsAuditGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2StatsAuditGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/stats/audit`,\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 item\n * @param itemId\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 apiV2StatsCertificateStatsItemItemIdGet(item: string, itemId: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsCertificateStatsItemItemIdGet(item: string, itemId: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2StatsCertificateStatsItemItemIdGet(item: string, itemId: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>>;\n public apiV2StatsCertificateStatsItemItemIdGet(item: string, itemId: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (item === null || item === undefined) {\n throw new Error('Required parameter item was null or undefined when calling apiV2StatsCertificateStatsItemItemIdGet.');\n }\n if (itemId === null || itemId === undefined) {\n throw new Error('Required parameter itemId was null or undefined when calling apiV2StatsCertificateStatsItemItemIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/stats/certificateStats/${encodeURIComponent(String(item))}/${encodeURIComponent(String(itemId))}`,\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 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 apiV2StatsGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2StatsGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/stats`,\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 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 apiV2StatsJobsGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2StatsJobsGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsJobsGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsJobsGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/stats/jobs`,\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 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 apiV2StatsStatsExtBadgingGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2StatsStatsExtBadgingGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsStatsExtBadgingGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2StatsStatsExtBadgingGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/stats/statsExtBadging`,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ByteArrayIResult } from '../model/models';\nimport { CertificateTemplate } from '../model/models';\nimport { CertificateTemplateIListIResult } from '../model/models';\nimport { CertificateTemplateIResult } from '../model/models';\nimport { CertificateTemplateStringObjectDictionaryTuple } from '../model/models';\nimport { DropTemplateFieldIEnumerableIResult } from '../model/models';\nimport { StringIApiResult } 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 TemplatesService {\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\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 mode \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 apiV2TemplatesFieldsModeGet(mode: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TemplatesFieldsModeGet(mode: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesFieldsModeGet(mode: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesFieldsModeGet(mode: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (mode === null || mode === undefined) {\n throw new Error('Required parameter mode was null or undefined when calling apiV2TemplatesFieldsModeGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/templates/fields/${encodeURIComponent(String(mode))}`,\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 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 apiV2TemplatesGet(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TemplatesGet(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesGet(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesGet(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/templates`,\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 id \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 apiV2TemplatesIdGet(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TemplatesIdGet(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesIdGet(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesIdGet(id: number, 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 apiV2TemplatesIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/templates/${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 * @param id \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 apiV2TemplatesIdJpgGet(id: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TemplatesIdJpgGet(id: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesIdJpgGet(id: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesIdJpgGet(id: number, 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 apiV2TemplatesIdJpgGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/templates/${encodeURIComponent(String(id))}.jpg`,\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 id \n * @param certificateTemplate \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 apiV2TemplatesIdPut(id: number, certificateTemplate?: CertificateTemplate, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TemplatesIdPut(id: number, certificateTemplate?: CertificateTemplate, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesIdPut(id: number, certificateTemplate?: CertificateTemplate, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesIdPut(id: number, certificateTemplate?: CertificateTemplate, 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 apiV2TemplatesIdPut.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/templates/${encodeURIComponent(String(id))}`,\n certificateTemplate,\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 certificateTemplate \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 apiV2TemplatesPost(certificateTemplate?: CertificateTemplate, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TemplatesPost(certificateTemplate?: CertificateTemplate, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesPost(certificateTemplate?: CertificateTemplate, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesPost(certificateTemplate?: CertificateTemplate, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/templates`,\n certificateTemplate,\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 certificateTemplateStringObjectDictionaryTuple \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 apiV2TemplatesPreviewPost(certificateTemplateStringObjectDictionaryTuple?: CertificateTemplateStringObjectDictionaryTuple, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2TemplatesPreviewPost(certificateTemplateStringObjectDictionaryTuple?: CertificateTemplateStringObjectDictionaryTuple, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesPreviewPost(certificateTemplateStringObjectDictionaryTuple?: CertificateTemplateStringObjectDictionaryTuple, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2TemplatesPreviewPost(certificateTemplateStringObjectDictionaryTuple?: CertificateTemplateStringObjectDictionaryTuple, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/templates/preview`,\n certificateTemplateStringObjectDictionaryTuple,\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 * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ApiKeyIResult } from '../model/models';\nimport { Permissions } from '../model/models';\nimport { ProblemDetails } from '../model/models';\nimport { StringIApiResult } 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 UALoginService {\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\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 permissions \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 apiV2UALoginPost(permissions?: Array, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2UALoginPost(permissions?: Array, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UALoginPost(permissions?: Array, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UALoginPost(permissions?: Array, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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-patch+json',\n 'application/json',\n 'text/json',\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/v2/UALogin`,\n 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","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { BooleanIResult } from '../model/models';\nimport { GuidStringDictionaryIResult } 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 UserMigrationService {\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\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 * Migrates user info for certificate to local database\n * @param rowId \n * @param uaId \n * @param certNumber \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 apiV2UsersUaIdCertNumberRowIdPost(rowId: string, uaId: number, certNumber: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2UsersUaIdCertNumberRowIdPost(rowId: string, uaId: number, certNumber: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdCertNumberRowIdPost(rowId: string, uaId: number, certNumber: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdCertNumberRowIdPost(rowId: string, uaId: number, certNumber: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (rowId === null || rowId === undefined) {\n throw new Error('Required parameter rowId was null or undefined when calling apiV2UsersUaIdCertNumberRowIdPost.');\n }\n if (uaId === null || uaId === undefined) {\n throw new Error('Required parameter uaId was null or undefined when calling apiV2UsersUaIdCertNumberRowIdPost.');\n }\n if (certNumber === null || certNumber === undefined) {\n throw new Error('Required parameter certNumber was null or undefined when calling apiV2UsersUaIdCertNumberRowIdPost.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/users/${encodeURIComponent(String(uaId))}/${encodeURIComponent(String(certNumber))}/${encodeURIComponent(String(rowId))}`,\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 * Migrates user info for certificate to local database\n * @param rowId \n * @param uaId \n * @param certNumber \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 apiV2UsersUaIdCertNumberRowIdRefreshPost(rowId: string, uaId: number, certNumber: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2UsersUaIdCertNumberRowIdRefreshPost(rowId: string, uaId: number, certNumber: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdCertNumberRowIdRefreshPost(rowId: string, uaId: number, certNumber: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdCertNumberRowIdRefreshPost(rowId: string, uaId: number, certNumber: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (rowId === null || rowId === undefined) {\n throw new Error('Required parameter rowId was null or undefined when calling apiV2UsersUaIdCertNumberRowIdRefreshPost.');\n }\n if (uaId === null || uaId === undefined) {\n throw new Error('Required parameter uaId was null or undefined when calling apiV2UsersUaIdCertNumberRowIdRefreshPost.');\n }\n if (certNumber === null || certNumber === undefined) {\n throw new Error('Required parameter certNumber was null or undefined when calling apiV2UsersUaIdCertNumberRowIdRefreshPost.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/users/${encodeURIComponent(String(uaId))}/${encodeURIComponent(String(certNumber))}/${encodeURIComponent(String(rowId))}/refresh`,\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 * Returns a dictionary with the row id and cert number of rows that have been migrated to the local database\n * @param uaId \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 apiV2UsersUaIdGet(uaId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2UsersUaIdGet(uaId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdGet(uaId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdGet(uaId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (uaId === null || uaId === undefined) {\n throw new Error('Required parameter uaId was null or undefined when calling apiV2UsersUaIdGet.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/users/${encodeURIComponent(String(uaId))}`,\n {\n responseType: responseType,\n withCredentials: this.configuration.withCredentials,\n headers: headers,\n observe: observe,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Migrates all records for the user to the local database if the user does not exist\n * @param uaId \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 apiV2UsersUaIdPost(uaId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2UsersUaIdPost(uaId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdPost(uaId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdPost(uaId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (uaId === null || uaId === undefined) {\n throw new Error('Required parameter uaId was null or undefined when calling apiV2UsersUaIdPost.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/users/${encodeURIComponent(String(uaId))}`,\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 * Migrates all records for the user to the local database, existing entries will be overwritten\n * @param uaId \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 apiV2UsersUaIdRefreshPost(uaId: number, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable;\n public apiV2UsersUaIdRefreshPost(uaId: number, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdRefreshPost(uaId: number, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json'}): Observable>;\n public apiV2UsersUaIdRefreshPost(uaId: number, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json'}): Observable {\n if (uaId === null || uaId === undefined) {\n throw new Error('Required parameter uaId was null or undefined when calling apiV2UsersUaIdRefreshPost.');\n }\n\n let headers = this.defaultHeaders;\n\n // authentication (AuthKey) required\n if (this.configuration.apiKeys) {\n const key: string | undefined = this.configuration.apiKeys[\"AuthKey\"] || this.configuration.apiKeys[\"Authorization\"];\n if (key) {\n headers = headers.set('Authorization', key);\n }\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/v2/users/${encodeURIComponent(String(uaId))}/refresh`,\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","import { Component } from '@angular/core';\nimport { Router, RouterEvent, NavigationStart, NavigationEnd } from '@angular/router';\nimport { BuConfigService } from '@core/bu-config.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n title = 'app';\n\n showLoadingSpinner = true;\n constructor(\n private router: Router,\n private buConfigService: BuConfigService\n ) {\n this.router.events.subscribe((re) => {\n if (re instanceof NavigationStart) {\n this.showLoadingSpinner = true;\n }\n\n if (re instanceof NavigationEnd) {\n this.showLoadingSpinner = false;\n }\n });\n if(this.buConfigService.getBuConfig()?.BUData) {\n this.loadJS();\n }\n }\n\n loadJS() {\n // DOM: Create the script element\n var jsElm = document.createElement(\"script\");\n // set the type attribute\n jsElm.type = \"application/javascript\";\n // make the script element load file\n jsElm.src = this.buConfigService.getBuConfig()?.BUData?.js;\n // finally insert the element to the body element in order to load the script\n document.body.appendChild(jsElm);\n }\n}\n","\n\n\n\n\n\n\n\n","import { HTTP_INTERCEPTORS, HttpClientModule, HttpClient } from '@angular/common/http';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { AuthService } from '@core/auth.service';\nimport { LoadNotificationInterceptor } from '@core/load-notification.interceptor';\nimport { LoadNotificationService } from '@core/load-notification.service';\n\nimport { AppComponent } from './app.component';\nimport { AppRoutingModule } from \"./app.routing\";\n//import { CommonModule, NgLocalization, NgLocaleLocalization } from '@angular/common';\n//import { RouterModule } from '@angular/router';\nimport { HeaderComponent } from '@shared/header/header.component';\nimport { LoadNotificationComponent } from '@shared/load-notification/load-notification.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule, ReactiveFormsModule, FormGroup } from '@angular/forms';\nimport { ApiModule } from './api.module';\nimport { Configuration, ConfigurationParameters } from './configuration';\nimport { HomeComponent } from './home/home.component';\nimport { LoginComponent } from './login/login.component';\nimport { StatsComponent } from './stats/stats.component';\nimport { ToastNotificationComponent } from '@shared/toast-notification/toast-notification.component';\nimport { ToastNotificationService } from '@core/toast-notification.service';\nimport { SharedModule } from '@shared/shared.module';\nimport { CacheInterceptor } from '@core/cache.interceptor';\nimport { CacheMapService } from '@core/cache-map.service';\n\n// import { NgxDropzoneModule } from 'ngx-dropzone';\n// import { DndModule } from 'ngx-drag-drop';\n\nimport { NgxPermissionsModule } from 'ngx-permissions';\nimport { CookieService } from 'ngx-cookie-service';\nimport { UserService } from '@core/user.service';\nimport { BuConfigService } from '@core/bu-config.service';\nimport { CustomHeader } from '@core/custom-header';\n\nexport function apiConfigFactory(): Configuration {\n const params: ConfigurationParameters = {\n // set configuration parameters here.\n basePath: \"\"\n }\n return new Configuration(params);\n}\n\n@NgModule({\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n declarations: [\n AppComponent,\n\n\n HomeComponent,\n StatsComponent,\n HeaderComponent,\n LoadNotificationComponent,\n ToastNotificationComponent,\n LoginComponent\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n ApiModule.forRoot(apiConfigFactory),\n\n NgbModule,\n // NgxDropzoneModule,\n // DndModule,\n\n AppRoutingModule,\n\n FormsModule,\n ReactiveFormsModule,\n\n HttpClientModule,\n SharedModule,\n NgxPermissionsModule.forRoot()\n ],\n providers: [\n AuthService,\n LoadNotificationService,\n ToastNotificationService,\n { provide: HTTP_INTERCEPTORS, useClass: LoadNotificationInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: CustomHeader, multi: true },\n CacheMapService, { provide: Cache, useClass: CacheMapService },\n //{ provide: NgLocalization, useClass: NgLocaleLocalization }\n CookieService,\n BuConfigService,\n UserService\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n\ndeclare global {\n interface Navigator {\n msSaveBlob?: (blob: any, defaultName?: string) => boolean\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { HomeComponent } from './home/home.component';\nimport { LoginComponent } from './login/login.component';\nimport { StatsComponent } from './stats/stats.component';\n\nconst routes: Routes = [\n\n { path: '', component: HomeComponent, pathMatch: 'full' },\n { path: 'app', component: HomeComponent, pathMatch: 'full' },\n { path: 'app/login', component: LoginComponent},\n { path: 'app/stats', component: StatsComponent },\n //{\n // path: 'app/certificate-types',\n // loadChildren: () => import('./types/types.module').then(m => m.TypesModule)\n //},\n {\n path: 'app/meta',\n loadChildren: () => import('./meta/meta-items.module').then(m => m.MetaItemsModule)\n },\n //{\n // path: 'app/users',\n // loadChildren: () => import('./awards/awards.module').then(m => m.AwardsModule)\n //},\n {\n path: 'app/awards',\n loadChildren: () => import('./awards/awards.module').then(m => m.AwardsModule)\n },\n\n {\n path: 'app/admin',\n loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule)\n },\n //{ path: '*', component: HomeComponent },\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes)\n ],\n exports: [RouterModule],\n providers: []\n})\nexport class AppRoutingModule { }\n","import { HttpParameterCodec } from '@angular/common/http';\n\nexport interface ConfigurationParameters {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\n}\n\nexport class Configuration {\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n encoder?: HttpParameterCodec;\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 }\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","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class AuthService {\n\n private currentKey = new BehaviorSubject(null);\n\n //subscribe\n apiKey = this.currentKey.asObservable();\n\n constructor() {\n\n var key = this.getKey();\n if (key!= null) {\n this.currentKey.next(key);\n }\n }\n\n hasApiKey(): boolean {\n var key = this.currentKey.getValue();\n //console.log('hasApiKey ' + key);\n return (key);\n }\n\n getApiKey(): string {\n //console.log('getting key');\n return this.currentKey.getValue();\n }\n\n setApiKey(val: string): void {\n console.log('setting key');\n this.currentKey.next(val);\n\n if (val) {\n //set key local storage in case of reload to persist\n this.setKey(this.currentKey.getValue());\n }\n else {\n this.setKey(null);\n }\n }\n\n private getKey() : any {\n return window.sessionStorage.getItem('apiKey');\n }\n\n private setKey(key: string) {\n if (key) {\n window.sessionStorage.setItem('apiKey', key);\n }\n else {\n window.sessionStorage.removeItem('apiKey');\n window.sessionStorage.removeItem('UAUsername');\n }\n }\n\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { UAConfig } from '../model_custom/uaConfig';\nimport { DOCUMENT } from '@angular/common';\nimport * as uaJson from '../../assets/buConfig.json';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BuConfigService {\n\n private uaData: UAConfig;\n\n constructor(@Inject(DOCUMENT) private document: any) {\n this.buConfig();\n }\n\n buConfig() {\n console.log(this.document.location.hostname);\n let jsonData = (uaJson as any)?.default;\n this.uaData = jsonData?.filter(x => x.BUURL.find(y => y == this.document.location.hostname))[0];\n }\n\n getBuConfig(): UAConfig {\n return this.uaData;\n }\n}\n","import { HttpResponse } from '@angular/common/http';\n\nexport interface CacheEntry {\n url: string;\n response: HttpResponse\n entryTime: number;\n}\n\nexport const MAX_CACHE_AGE = 30000; // in milliseconds ","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Cache } from './cache.service';\nimport { CacheEntry, MAX_CACHE_AGE } from './cache-entry';\n\n@Injectable()\nexport class CacheMapService implements Cache {\n cacheMap = new Map();\n get(req: HttpRequest): HttpResponse | null {\n const entry = this.cacheMap.get(req.urlWithParams);\n if (!entry) {\n return null;\n }\n const isExpired = (Date.now() - entry.entryTime) > MAX_CACHE_AGE;\n\n if (!isExpired) { console.log('returned from cache: ' + req.urlWithParams); }\n\n return isExpired ? null : entry.response;\n }\n put(req: HttpRequest, res: HttpResponse): void {\n if(!req.urlWithParams.includes('/api/v2/types/')) {\n const entry: CacheEntry = { url: req.urlWithParams, response: res, entryTime: Date.now() };\n this.cacheMap.set(req.urlWithParams, entry);\n console.log('added to cache: ' + req.urlWithParams);\n this.deleteExpiredCache();\n }\n }\n\n invalidateCache(): void {\n this.cacheMap.clear();\n console.log('clear cache');\n }\n\n private deleteExpiredCache() {\n this.cacheMap.forEach(entry => {\n if ((Date.now() - entry.entryTime) > MAX_CACHE_AGE) {\n this.cacheMap.delete(entry.url);\n console.log('removed from cache: ' + entry.url);\n }\n })\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { HttpCacheService } from './http-cache.service';\nimport { CacheMapService } from '@core/cache-map.service'\n\n//const CACHABLE_URL = \"/app/meta\";\n\n//const CACHEABLES = [\"templates\", \"types\", \"coursemetas\"];\nconst CACHEABLES = [\"templates\", \"types\"];\n\n@Injectable()\nexport class CacheInterceptor implements HttpInterceptor {\n\n constructor(private cache: CacheMapService) {}\n\n intercept(req: HttpRequest, next: HttpHandler) {\n\n var isCacheable = this.isRequestCachable(req);\n\n if (req.method !== 'GET' && isCacheable) {\n this.cache.invalidateCache();\n return next.handle(req);\n }\n\n if (!isCacheable) {\n return next.handle(req);\n }\n const cachedResponse = this.cache.get(req);\n if (cachedResponse !== null) {\n return of(cachedResponse);\n }\n return next.handle(req).pipe(\n tap(event => {\n if (event instanceof HttpResponse) {\n this.cache.put(req, event);\n }\n })\n );\n }\n private isRequestCachable(req: HttpRequest) {\n //return (req.method === 'GET') && (req.url.indexOf(CACHABLE_URL) > -1);\n\n var isCacheable = false;\n CACHEABLES.forEach(element => {\n if (req.url.indexOf(element) > -1) {\n isCacheable = true;\n }\n });\n\n\n\n return isCacheable;\n }\n\n\n// constructor(private cacheService: HttpCacheService) { }\n\n// intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n// // pass along non-cacheable requests and invalidate cache\n// if(req.method !== 'GET') {\n// console.log(`Invalidating cache: ${req.method} ${req.url}`);\n// this.cacheService.invalidateCache();\n// return next.handle(req);\n// }\n\n// // attempt to retrieve a cached response\n// const cachedResponse: HttpResponse = this.cacheService.get(req.url);\n\n// // return cached response\n// if (cachedResponse) {\n// console.log(`Returning a cached response: ${cachedResponse.url}`);\n// console.log(cachedResponse);\n// return of(cachedResponse);\n// }\n\n// // send request to server and add response to cache\n// return next.handle(req)\n// .pipe(\n// tap(event => {\n// if (event instanceof HttpResponse) {\n// console.log(`Adding item to cache: ${req.url}`);\n// this.cacheService.put(req.url, event);\n// }\n// })\n// );\n\n// }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class CustomHeader implements HttpInterceptor {\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const userName = window.sessionStorage.getItem('UAUsername');\n const modifiedReq = req.clone({\n headers: req.headers.set('UAUsername', `${userName}`),\n });\n return next.handle(modifiedReq);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpHandler, HttpEvent, HttpRequest, HttpResponse, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\nimport { LoadNotificationService } from './load-notification.service';\nimport { finalize, tap } from 'rxjs/operators';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class LoadNotificationInterceptor implements HttpInterceptor {\n\n constructor(public loaderService: LoadNotificationService, private router: Router) { }\n\n private totalRequests = 0;\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n //console.log('Loader interceptor');\n this.totalRequests++;\n this.loaderService.show();\n return next.handle(req).pipe(\n finalize(() => {\n this.totalRequests--;\n if (this.totalRequests === 0 )\n this.loaderService.hide();\n }),\n tap(() => { },\n (err: any) => {\n if (err.status == 401 || err.status == 403) {\n this.router.navigate(['app', 'admin', 'unauthorized']);\n } else {\n return;\n }\n }\n ));\n\n\n\n\n //map((event: HttpEvent) => {\n // if (event instanceof HttpResponse) {\n // console.log('event--->>>', event);\n // }\n // return event;\n //}),\n //catchError((error: HttpErrorResponse) => {\n // //let data = {};\n // //data = {\n // // reason: error && error.error && error.error.reason ? error.error.reason : '',\n // // status: error.status\n // //};\n // //console.log(error);\n\n // if (error?.status == 403 || error?.status == 401) {\n // this.router.navigate(['app', 'admin', 'unauthorized']);\n // } else {\n // this.router.navigate(['app']);\n // }\n // //this.errorDialogService.openDialog(data);\n // return throwError(error);\n //}));\n\n\n //);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class LoadNotificationService {\n constructor() { }\n\n isLoading = new Subject();\n\n show() {\n this.isLoading.next(true);\n }\n\n hide() {\n this.isLoading.next(false);\n }\n\n}\n","import { Injectable, TemplateRef } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastNotificationService {\n\n toasts: any[] = [];\n\n constructor() { }\n\n showSuccess(textOrTpl: string | TemplateRef) {\n this.toasts.push({ textOrTpl, header: \"Success\", classname: 'toast-success', delay: 10000 });\n }\n\n showError(textOrTpl: string | TemplateRef) {\n this.toasts.push({ textOrTpl, header: \"Error\", classname: 'toast-error', delay: 10000 });\n //this.toasts.push({ textOrTpl, header: \"Error\" });\n }\n\n showWarning(textOrTpl: string | TemplateRef) {\n this.toasts.push({ textOrTpl, header: \"Warning\", classname: 'toast-warning', delay: 10000 });\n }\n\n show(textOrTpl: string | TemplateRef, options: any = {}) {\n //console.log('toast svc ' + textOrTpl);\n this.toasts.push({ textOrTpl, ...options });\n }\n\n showResult(error: boolean, text: string[]) {\n if (error)\n this.showError(text.join(\"
\"));\n else\n this.showSuccess(text.join(\"
\"));\n }\n\n remove(toast) {\n this.toasts = this.toasts.filter(t => t !== toast);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport jwt_decode from \"jwt-decode\";\nimport { CookieService } from 'ngx-cookie-service';\nimport { Observable } from 'rxjs';\nimport { UaUser } from '../model_custom/uaUser';\nimport { BuConfigService } from './bu-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n\n loggedIn: boolean = false;\n\n constructor(\n private http: HttpClient,\n private cookieService: CookieService,\n private buConfigService: BuConfigService\n ) {\n var token = this.getUaTokenFromCache();\n if (token) {\n this.loggedIn = true;\n }\n }\n\n decodeJwtToken(): string {\n var cookieValue: string;\n cookieValue = this.getUaTokenFromCache();\n\n if (cookieValue) {\n let decoded = jwt_decode(cookieValue);\n console.log(decoded[\"user_id\"]);\n return decoded;\n } else {\n return \"\";\n }\n }\n\n getUserData(): Observable {\n let jwtToken: string = this.decodeJwtToken();\n let userId = jwtToken['user_id'];\n let httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Accept': '*/*',\n 'X-XSRF-TOKEN': this.getUaTokenFromCache()\n })\n }\n return this.http.get(this.buConfigService.getBuConfig().BUData.apiURL + '/api/v3/users/' + userId, httpOptions);\n }\n\n getUaTokenFromCache() {\n var xsrfToken = this.cookieService.get('XSRF-TOKEN');\n return xsrfToken;\n }\n\n logout(returnUrl?: string) {\n let qPram: string = '';\n if (returnUrl) {\n qPram = encodeURI(`?return=${returnUrl}`);\n }\n var url = `${this.buConfigService.getBuConfig().BUData.apiURL}/logout?service=${this.buConfigService.getBuConfig().BUData.serviceURL}${qPram}&gateway=true`;\n this.cookieService.delete('XSRF-TOKEN');\n\n window.location.href = url;\n }\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\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss']\n})\n/** home component*/\nexport class HomeComponent implements OnInit {\n\n constructor(private router: Router) {\n\n }\n\n ngOnInit(): void {\n\n }\n\n}\n","
\n
\n

Certificate Admin UI

\n

An API key is required. Set the key using the key icon in the top right.

\n
\n\n

Components

\n
\n
\n
\n

Using this app

\n

Manage user certificates and the components that make up the certificate.

\n

Notifications when making updates will display in the top left corner of the window with status messages.

\n

This app is using the v2 endpoints.

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

User Information

\n

User info is captured locally from UA when the certificate is created.

\n

A temporary job to migrate users can be configured to run in the background.

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

Certificate Setup

\n

Add/Edit templates for certificates. Set the background image, position and style text for the end user to receive a PDF.

\n

Add/Edit certificate types. Set the duration, the template for rendering/display and optionally add template overrides.

\n

Add/Edit course to generate certificates and assign CEU's. Courses require a type for certificate rendering.

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

Award Management

\n

Search for users or certificates

\n
    \n
  • View users' certificates
  • \n
  • Merge certificates
  • \n
  • Resend certificates to kafka topic
  • \n
  • Limited edits for certificate
  • \n
  • Migrate user to local DB
  • \n
\n\n

Manually create new or backdated certificates

\n
\n
\n\n
\n

App Settings

\n
    \n
  • \n
    Stats & Settings
    \n

    View settings for certificate service

    \n
      \n
    • Kafka topics
    • \n
    • Jobs and Job Settings
    • \n
    • Counts and breakdowns for database tables
    • \n
    • Connected services
    • \n
    \n
  • \n
  • \n
    API Key Manager
    \n

    Manage access with API Keys.

    \n
  • \n
  • \n
    Swagger API
    \n

    API documentation, endpoint signatures and model definitions.

    \n
  • \n
  • \n
    Themes
    \n

    Different themes available including dark mode.

    \n
  • \n
\n
\n
\n\n\n\n

Workflow

\n\n
Setting up certificates to be awarded
\n
\n
\n
\n

Template

\n
\n

Setup a template to use for the certificate by setting the background image and positioning/styling the award details.

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

Certificate Type

\n
\n

Setup a type to define the template and duration for the certificate.

\n

Add/Edit overrides use a different template based on custom conditionals with available fields.

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

Course Details

\n
\n

Setup the details used for course completion to apply to certificates awarded; title, CEU, sub-titles

\n
\n
\n
\n
\n\n \n\n
Awarding certificates to users
\n
\n
\n
\n

Course Completes

\n
\n

Certificate Service listens to a topic for course completion. When receiving the notification, the certificate will be awarded based on the course details.

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

Award Certificate

\n
    \n
  • Lookup course/activity for LMS
  • \n
  • Lookup user info from UA
  • \n
  • Capture award details and user info
  • \n
  • Send notification of certificate creation
  • \n
\n
\n
\n
\n
\n
\n

Certificates Awarded

\n
\n

Certificates can be created, validated, and updated from the admin tool or thru the API.

\n
\n
\n
\n
\n","import { AfterViewChecked, AfterViewInit, Component, ElementRef, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { BuConfigService } from '@core/bu-config.service';\nimport { UserService } from '@core/user.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport $ from 'jquery';\nimport { ToastNotificationService } from '@core/toast-notification.service';\nimport { UaUser } from '../model_custom/uaUser';\nimport { UALoginService } from '@api/uALogin.service';\nimport { AuthService } from '@core/auth.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\n\n @ViewChild('div') div: ElementRef;\n customError: string = '';\n public nonAdAccount: boolean = false;\n subs: Subscription[] = [];\n\n constructor(\n private cookieService: CookieService,\n private router: Router,\n private route: ActivatedRoute,\n private renderer2: Renderer2,\n private userService: UserService,\n private buConfigService: BuConfigService,\n private toastService: ToastNotificationService,\n private uaLoginService: UALoginService,\n private authService: AuthService\n ) { }\n\n ngOnInit(): void {\n }\n\n ngAfterViewChecked() {\n if ($('.ua-error-msg').html() === \"Please enter a valid Username and Password.\"\n && this.customError !== '') {\n this.customError = '';\n }\n\n $('.ua-submit').addClass('ua-submit2');\n $('.ua-submit2').removeClass('ua-submit');\n\n var loginBtn = document.getElementById('btnLogin');\n if (loginBtn == null) {\n\n const button = this.renderer2.createElement('button') as HTMLButtonElement;\n button.setAttribute(\"class\", \"btn btn-lg btn-primary text-uppercase ua-submit1\");\n button.setAttribute(\"id\", \"btnLogin\");\n button.setAttribute(\"tabindex\", \"3\");\n\n const buttonText = this.renderer2.createText('LOGIN');\n this.renderer2.appendChild(button, buttonText);\n\n var existingNode = document.querySelector(\".ua-submit2\");\n if (existingNode) {\n existingNode.parentNode.insertBefore(button, existingNode.nextSibling);\n this.renderer2.listen(button, 'click', () => this.doLogin());\n }\n }\n\n $('.ua-submit-username').on('click', function () {\n var txt = $('#ua-reset-username');\n if (txt.val() != null && txt.val() != '') {\n $(\".ua-cancel-link\").addClass('ua-cancel-link1');\n }\n });\n\n $('.ua-submit-email').on('click', function () {\n $(\".ua-verify-otp\").addClass('verfiy-mobile-after-email-click');\n $(\".ua-cancel-link1\").addClass(\"cancel-after-email-click\");\n\n if ($('.ua-submit-email')) {\n $(\"#email-alert\").addClass(\"email-alert-msg\");\n $(\"#email-alert\").removeClass(\"email-alert-msg-hide\");\n }\n\n $('.ua-cancel-link').on('click', function () {\n $(\"#email-alert\").addClass(\"email-alert-msg-hide\");\n });\n });\n\n $('.ua-submit2').removeClass('btn-block');\n\n var tmpUsername = document.getElementById(\"ua-username\");\n if (tmpUsername)\n tmpUsername.setAttribute(\"tabindex\", \"1\");\n\n var tmpPassword = document.getElementById(\"ua-password\");\n if (tmpPassword)\n tmpPassword.setAttribute(\"tabindex\", \"2\");\n\n }\n\n doLogin() {\n var loginBtn = document.querySelector('.ua-submit2') as HTMLButtonElement;\n if (loginBtn && this.buConfigService.getBuConfig().BUData.isUALoginReq) {\n loginBtn.click();\n loginBtn.disabled = true;\n var loginBtn1 = document.querySelector('.ua-submit1') as HTMLButtonElement;\n loginBtn1.disabled = true;\n setTimeout(function () { loginBtn.disabled = false; loginBtn1.disabled = false; }, 5000);\n } else if (!this.buConfigService.getBuConfig().BUData.isUALoginReq) {\n this.toastService.showError(\"UA Login is not avalaible.\");\n }\n }\n\n ngAfterViewInit() {\n if (this.userService.getUaTokenFromCache()) {\n this.getUserData();\n } else {\n this.loadLoginWidget();\n }\n }\n\n loadLoginWidget() {\n const uaLog: HTMLElement = this.renderer2.createElement('ua-ng-login');\n uaLog.setAttribute('id', 'uaLogin');\n uaLog.setAttribute('api-version', 'v3');\n uaLog.setAttribute('tos-enabled', 'false');\n uaLog.setAttribute('reset-enabled', 'false');\n uaLog.setAttribute('register-enabled', 'false');\n\n uaLog.setAttribute('widget-root', 'login');\n uaLog.setAttribute('authentication-key', 'username');\n uaLog.setAttribute('address-enabled', 'false');\n\n if (this.buConfigService.getBuConfig().BUData) {\n console.log(this.buConfigService.getBuConfig());\n uaLog.setAttribute('cas-url', this.buConfigService.getBuConfig()?.BUData?.casURL);\n uaLog.setAttribute('api-url', this.buConfigService.getBuConfig()?.BUData?.apiURL);\n uaLog.setAttribute('bu-name', this.buConfigService.getBuConfig()?.BUData?.buName);\n uaLog.setAttribute('bu-domain', this.buConfigService.getBuConfig()?.BUData?.buDomain);\n uaLog.setAttribute('service-url', this.buConfigService.getBuConfig()?.BUData?.serviceURL);\n }\n else {\n uaLog.setAttribute('cas-url', 'https://dev-auth.examfx.com');\n uaLog.setAttribute('api-url', 'https://dev-auth.examfx.com');\n uaLog.setAttribute('bu-name', 'ExamFX');\n uaLog.setAttribute('bu-domain', '.examfx.com');\n uaLog.setAttribute('service-url', 'https://examfx.com');\n }\n\n this.renderer2.appendChild(this.div.nativeElement, uaLog);\n\n const uaLogin = document.querySelector('ua-ng-login');\n\n uaLogin.addEventListener('loginEvent', (data) => {\n this.customError = '';\n this.getUserData();\n });\n }\n\n getUserData() {\n this.subs.push(this.userService.getUserData().subscribe({\n next: userData => {\n if (userData) {\n this.setToken(userData);\n }\n },\n error: (error) => {\n this.toastService.showResult(true, error.messages);\n }\n }));\n }\n\n setToken(uaUser: UaUser) {\n this.subs.push(this.uaLoginService.apiV2UALoginPost(uaUser.data.permissions).subscribe({\n next: data => {\n if (!data.error) {\n console.log(data.data);\n this.authService.setApiKey(data.data?.key);\n window.sessionStorage.setItem('UAUsername', uaUser?.data?.username);\n this.router.navigate(['/app']);\n } else {\n this.toastService.showError(\"Error logging in\");\n }\n },\n error: (error) => {\n this.toastService.showResult(true, error.error.messages);\n this.userService.logout();\n this.router.navigate(['/app']);\n }\n }));\n }\n\n ngOnDestroy() {\n for (let s of this.subs) {\n s.unsubscribe();\n }\n }\n\n}\n","
\n
\n
\n
\n
\n {{customError}}\n
\n
\n Login using your AD credentials associated with your Ascend Learning email.\n
\n
\n
\n
\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 AdvancedSearch { \n id?: number;\n firstName?: string | null;\n lastName?: string | null;\n email?: string | null;\n address1?: string | null;\n address2?: string | null;\n city?: string | null;\n state?: string | null;\n zip?: string | null;\n phone?: string | null;\n certNumber?: string | null;\n name?: string | null;\n status?: string | null;\n courseName?: string | null;\n createdDate?: string | null;\n modifiedDate?: string | null;\n expirationDate?: string | null;\n courseID?: string | null;\n sourceLMS?: string | null;\n activityID?: string | null;\n approvalNumber?: string | null;\n providerId?: string | null;\n offeringCode?: string | null;\n offeringStartDate?: string | null;\n offeringEndDate?: string | null;\n score?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { AdvancedSearch } from './advancedSearch';\n\n\nexport interface AdvancedSearchListByteArrayTuple { \n item1?: Array | null;\n item2?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { AdvancedSearchListByteArrayTuple } from './advancedSearchListByteArrayTuple';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface AdvancedSearchListByteArrayTupleIResult { \n data?: AdvancedSearchListByteArrayTuple;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 ApiKey { \n id?: string;\n name?: string | null;\n key?: string | null;\n active?: boolean;\n roles?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ApiKey } from './apiKey';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface ApiKeyIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ApiKey } from './apiKey';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface ApiKeyIResult { \n data?: ApiKey;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CertificateOptions } from './certificateOptions';\n\n\nexport interface AppDetails { \n countByStatus?: { [key: string]: number; } | null;\n totalCertificates?: number;\n totalUserInfoSnapshot?: number;\n totalCertificateTypes?: number;\n totalCourses?: number;\n options?: CertificateOptions;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 AuditEvent { \n id?: number;\n apiKeyName?: string | null;\n action?: string | null;\n item?: string | null;\n itemId?: string | null;\n message?: string | null;\n date?: string;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { AuthorizationKeyToRole } from './authorizationKeyToRole';\n\n\nexport interface AuthorizationKey { \n id?: string;\n name?: string | null;\n key?: string | null;\n description?: string | null;\n active?: boolean;\n expirationDate?: string | null;\n authorizationKeyToRole?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { AuthorizationKey } from './authorizationKey';\nimport { Role } from './role';\n\n\nexport interface AuthorizationKeyToRole { \n roleId?: number;\n authorizationKeyId?: string;\n authorizationKey?: AuthorizationKey;\n role?: Role;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 AwardDetails { \n lmsCourseId?: string | null;\n lmsSource?: string | null;\n activityId?: string | null;\n uaId?: number;\n issuedDate?: string;\n examLocation?: string | null;\n enrollmentId?: string | null;\n enrollmentDate?: string | null;\n score?: number | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CertificateStatusCodeEnum } from './certificateStatusCodeEnum';\n\n\n/**\n * create a backdated certificate for a user with a pre-defined certificate number\n */\nexport interface BackdatedCertificate { \n /**\n * user id to add certificate\n */\n uaId: number;\n /**\n * pre-definend certificate number - if the cert number already exists it will fail\n */\n certNumber: string;\n /**\n * certificate title\n */\n title: string;\n /**\n * type of certifcate\n */\n type: string;\n /**\n * source of request - possible values Moodle, Admin, CRM, Test\n */\n source: string;\n /**\n * date of issue\n */\n issuedDate: string;\n /**\n * certificate expiration\n */\n expirationDate?: string | null;\n certificateStatus?: CertificateStatusCodeEnum;\n /**\n * type id for cert\n */\n certMetadataId?: number;\n /**\n * notes for certificate notes\n */\n notes?: string | null;\n /**\n * CEU\\'s associated to cert\n */\n ceu?: string | null;\n /**\n * source cross reference\n */\n sourceXRef?: string | null;\n courseMetaId?: number | null;\n lmsCourseId?: string | null;\n lmsSource?: string | null;\n lmsItemId?: number | null;\n graceExpireDays?: number;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 BadgeVendorApi { \n host?: string | null;\n authorizationToken?: string | null;\n referringUrl?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { BadgingOptionsModel } from './badgingOptionsModel';\n\n\nexport interface BadgingAppDetails { \n totalExternalCredentialsAssociated?: number;\n totalExternalCredentialsAwarded?: number;\n options?: BadgingOptionsModel;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 BadgingOptions { \n enabled?: boolean;\n host?: string | null;\n token?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { BadgeVendorApi } from './badgeVendorApi';\nimport { UserAuthoritySettings } from './userAuthoritySettings';\nimport { KafkaOptions } from './kafkaOptions';\n\n\nexport interface BadgingOptionsModel { \n useVault?: boolean;\n applicationName?: string | null;\n authorizationKeys?: { [key: string]: string; } | null;\n kafka?: KafkaOptions;\n renewSource?: string | null;\n enableAuditEventsToDatabase?: boolean;\n badgeVendorApi?: BadgeVendorApi;\n userAuthoritySettings?: UserAuthoritySettings;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 * returns data and/or messages associated\n */\nexport interface BooleanIResult { \n /**\n * data returned from request\n */\n data?: boolean;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 BrightlinkIntegrationOptions { \n enabled?: boolean;\n host?: string | null;\n token?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 BrightlinkType { \n id?: string | null;\n slug?: string | null;\n abbreviation?: string | null;\n name?: string | null;\n clientId?: string | null;\n internal?: boolean;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { BrightlinkType } from './brightlinkType';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface BrightlinkTypeIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 * returns data and/or messages associated\n */\nexport interface ByteArrayIResult { \n /**\n * data returned from request\n */\n data?: string | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CertificateStatusCodeEnum } from './certificateStatusCodeEnum';\n\n\nexport interface CertificateBasic { \n uaId: number;\n certMetadataId?: number;\n type?: string | null;\n certNumber?: string | null;\n certificateStatus?: CertificateStatusCodeEnum;\n title: string;\n source?: string | null;\n sourceXRef?: string | null;\n issuedDate: string;\n expirationDate?: string | null;\n notes?: string | null;\n ceu?: string | null;\n courseMetaId?: number | null;\n lmsCourseId?: string | null;\n lmsSource?: string | null;\n lmsItemId?: number | null;\n graceExpireDays?: number;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { DocGenOptions } from './docGenOptions';\nimport { BadgingOptions } from './badgingOptions';\nimport { KafkaOptions } from './kafkaOptions';\nimport { DataCopy } from './dataCopy';\nimport { RulesEngineOptions } from './rulesEngineOptions';\nimport { BrightlinkIntegrationOptions } from './brightlinkIntegrationOptions';\nimport { UaOptions } from './uaOptions';\n\n\nexport interface CertificateOptions { \n useVault?: boolean;\n applicationName?: string | null;\n authorizationKeys?: { [key: string]: string; } | null;\n docGen?: DocGenOptions;\n ua?: UaOptions;\n kafka?: KafkaOptions;\n renewSource?: string | null;\n rulesEngine?: RulesEngineOptions;\n enableAuditEventsToDatabase?: boolean;\n dataCopy?: DataCopy;\n menuFile?: string | null;\n badgingOptions?: BadgingOptions;\n /**\n * original or latest\n */\n renewalCondition?: string | null;\n brightlinkIntegration?: BrightlinkIntegrationOptions;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 CertificateStatusCodeEnum = 'Valid' | 'Deactivated' | 'Revoked' | 'Expired' | 'Cancelled' | 'Duplicate' | 'Pending';\n\nexport const CertificateStatusCodeEnum = {\n Valid: 'Valid' as CertificateStatusCodeEnum,\n Deactivated: 'Deactivated' as CertificateStatusCodeEnum,\n Revoked: 'Revoked' as CertificateStatusCodeEnum,\n Expired: 'Expired' as CertificateStatusCodeEnum,\n Cancelled: 'Cancelled' as CertificateStatusCodeEnum,\n Duplicate: 'Duplicate' as CertificateStatusCodeEnum,\n Pending: 'Pending' as CertificateStatusCodeEnum\n};\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { TemplateField } from './templateField';\n\n\nexport interface CertificateTemplate { \n id?: number;\n backgroundString: string;\n tags?: Array | null;\n name?: string | null;\n isActive?: boolean;\n background?: string | null;\n height?: number;\n width?: number;\n fields?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CertificateTemplate } from './certificateTemplate';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface CertificateTemplateIListIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CertificateTemplate } from './certificateTemplate';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface CertificateTemplateIResult { \n data?: CertificateTemplate;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CertificateTemplate } from './certificateTemplate';\n\n\nexport interface CertificateTemplateStringObjectDictionaryTuple {\n item1?: CertificateTemplate;\n item2?: { [key: string]: any; } | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificateMetadata } from './iCertificateMetadata';\nimport { LmsItem } from './lmsItem';\nimport { CertificateStatusCodeEnum } from './certificateStatusCodeEnum';\nimport { CourseMetaSecondaryType } from './courseMetaSecondaryType';\nimport { ExternalCredential } from './externalCredential';\n\n\nexport interface CourseMeta { \n readonly contactHours?: number;\n type?: ICertificateMetadata;\n id?: number;\n name: string;\n earn?: boolean;\n title?: string | null;\n subTitle?: string | null;\n notes?: string | null;\n typeId?: number;\n ceu?: number;\n created?: string;\n modified?: string;\n duration?: number;\n certificateStatusOnAward?: CertificateStatusCodeEnum;\n graceExpireDays?: number;\n externalCredential?: ExternalCredential;\n secondaryTypes?: Array | null;\n lmsItems?: Array | null;\n isActive?: boolean;\n brightlinkCredentialTypeSlug?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CourseMeta } from './courseMeta';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface CourseMetaIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CourseMeta } from './courseMeta';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface CourseMetaIResult { \n data?: CourseMeta;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 CourseMetaSecondaryType { \n id?: number;\n courseId?: number;\n typeId?: number;\n fields?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 DataCopy { \n lowerEnv?: string | null;\n lowerEnvUrl?: string | null;\n nextEnv?: string | null;\n nextEnvUrl?: string | null;\n authorizationToken?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ApiKey } from './apiKey';\nimport { MetaTypeRule } from './metaTypeRule';\nimport { CourseMeta } from './courseMeta';\nimport { Metadata } from './metadata';\n\n\nexport interface DataCopyModel { \n course?: CourseMeta;\n type?: Metadata;\n rules?: Array | null;\n templatesIds?: Array | null;\n keys?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 DataCopyReturn { \n type?: string | null;\n name?: string | null;\n message?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { DataCopyReturn } from './dataCopyReturn';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface DataCopyReturnIResult { \n data?: DataCopyReturn;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 DocGenOptions { \n useInternal?: boolean;\n host?: string | null;\n authorizationToken?: string | null;\n renderPath?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { TemplateField } from './templateField';\n\n\nexport interface DropTemplateField { \n displayName?: string | null;\n content?: string | null;\n field?: TemplateField;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { DropTemplateField } from './dropTemplateField';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface DropTemplateFieldIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 ExternalCredential { \n id?: string;\n courseMetaId?: number;\n vendorID?: string;\n externalCredentialType?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 ExternalCredentialAwarded { \n id?: number;\n externalCredentialID?: string;\n userID?: number;\n accepted?: boolean;\n previewUrl?: string | null;\n acceptedDate?: string;\n certificateId?: string | null;\n vendorCredentialId?: string | null;\n issuedOn?: string | null;\n expiryDate?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ExternalCredential } from './externalCredential';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface ExternalCredentialIResult { \n data?: ExternalCredential;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { LookupCertificateResult } from './lookupCertificateResult';\n\n\nexport interface GroupedCertificate { \n relatedCertificates?: Array | null;\n certNumber?: string | null;\n title?: string | null;\n typeId?: number;\n type?: string | null;\n issuedDate?: string;\n expirationDate?: string | null;\n source?: string | null;\n status?: string | null;\n ceu?: string | null;\n sourceXRef?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 * returns data and/or messages associated\n */\nexport interface GuidStringDictionaryIResult { \n /**\n * data returned from request\n */\n data?: { [key: string]: string; } | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificateMetadata } from './iCertificateMetadata';\nimport { CertificateStatusCodeEnum } from './certificateStatusCodeEnum';\n\n\nexport interface ICertificate { \n rowId?: string;\n id?: number;\n certMetadata?: ICertificateMetadata;\n readonly statusText?: string | null;\n createdDate?: string | null;\n modifiedDate?: string | null;\n examLocation?: string | null;\n providerId?: string | null;\n approvalNumber?: string | null;\n offeringCode?: string | null;\n enrollmentId?: string | null;\n readonly eligibilityId?: string | null;\n enrollmentDate?: string | null;\n score?: number | null;\n uaId?: number;\n certNumber?: string | null;\n title?: string | null;\n issuedDate?: string;\n expirationDate?: string | null;\n certificateStatus?: CertificateStatusCodeEnum;\n type?: string | null;\n certMetadataId?: number;\n source?: string | null;\n notes?: string | null;\n ceu?: string | null;\n sourceXRef?: string | null;\n courseMetaId?: number | null;\n lmsCourseId?: string | null;\n lmsSource?: string | null;\n lmsItemId?: number | null;\n graceExpireDays?: number;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificate } from './iCertificate';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface ICertificateIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificate } from './iCertificate';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface ICertificateIResult { \n data?: ICertificate;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 ICertificateMetadata { \n id?: number;\n type?: string | null;\n duration?: number | null;\n renderTemplateId?: string | null;\n additionalInfo?: string | null;\n templateId?: number | null;\n durationType?: string | null;\n isActive?: boolean;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificateMetadata } from './iCertificateMetadata';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface ICertificateMetadataIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificateMetadata } from './iCertificateMetadata';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface ICertificateMetadataIResult { \n data?: ICertificateMetadata;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 ICourseMetaSecondaryType { \n id?: number;\n courseId?: number;\n typeId?: number;\n fields?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 IError {\n message?: string | null;\n exception?: any | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { Offering } from './offering';\n\n\nexport interface ILmsItem { \n id?: number;\n courseMetaId?: number;\n courseId?: string | null;\n source?: number;\n activityId?: string | null;\n activityName?: string | null;\n approvalNumber?: string | null;\n providerId?: string | null;\n offerings?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 ILookupCertificateResult { \n certNumber?: string | null;\n title?: string | null;\n typeId?: number;\n type?: string | null;\n issuedDate?: string;\n expirationDate?: string | null;\n source?: string | null;\n status?: string | null;\n ceu?: string | null;\n sourceXRef?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ILookupCertificateResult } from './iLookupCertificateResult';\n\n\nexport interface ILookupUserResult { \n certificates?: Array | null;\n sfId?: string | null;\n firstName?: string | null;\n lastName?: string | null;\n id?: number;\n state?: string | null;\n email?: string | null;\n phone?: string | null;\n source?: string | null;\n readonly fullName?: string | null;\n country?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ILookupUserResult } from './iLookupUserResult';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface ILookupUserResultIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 IUserDetails { \n sfId?: string | null;\n firstName?: string | null;\n lastName?: string | null;\n id?: number;\n state?: string | null;\n email?: string | null;\n phone?: string | null;\n source?: string | null;\n readonly fullName?: string | null;\n country?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 * returns data and/or messages associated\n */\nexport interface Int32IResult { \n /**\n * data returned from request\n */\n data?: number;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { MigrateToUserSnapshotJob } from './migrateToUserSnapshotJob';\nimport { UpdateStatusJob } from './updateStatusJob';\n\n\nexport interface JobOptions { \n updateStatus?: UpdateStatusJob;\n migrateToUserSnapshot?: MigrateToUserSnapshotJob;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { Topic } from './topic';\n\n\nexport interface KafkaOptions { \n /**\n * name used consuming topics name used for publishing messages Should be unique across instances such as namespace\n */\n applicationName?: string | null;\n useKafka?: boolean;\n schemaRegistry?: string | null;\n kafkaEndpoint?: string | null;\n topics?: { [key: string]: Topic; } | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { Offering } from './offering';\n\n\nexport interface LmsItem { \n id?: number;\n courseMetaId?: number;\n courseId?: string | null;\n source?: number;\n activityId?: string | null;\n activityName?: string | null;\n providerId?: string | null;\n approvalNumber?: string | null;\n offerings?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 LookupCertificateResult { \n certNumber?: string | null;\n title?: string | null;\n typeId?: number;\n type?: string | null;\n issuedDate?: string;\n expirationDate?: string | null;\n source?: string | null;\n status?: string | null;\n ceu?: string | null;\n sourceXRef?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { SubMenu } from './subMenu';\n\n\nexport interface MainMenu { \n name?: string | null;\n subMenu?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { MainMenu } from './mainMenu';\n\n\nexport interface Menu { \n role?: string | null;\n permissions?: Array | null;\n beneathRoles?: Array | null;\n mainMenu?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { Menu } from './menu';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface MenuIResult { \n data?: Menu;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 MetaTypeRule { \n id?: number;\n name?: string | null;\n typeId?: number;\n condition?: string | null;\n templateIdIfTrue?: number;\n order?: number;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificateMetadata } from './iCertificateMetadata';\nimport { MetaTypeRule } from './metaTypeRule';\n\n\nexport interface MetaTypeRuleCollection { \n type?: ICertificateMetadata;\n rules?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { MetaTypeRuleCollection } from './metaTypeRuleCollection';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface MetaTypeRuleCollectionIResult { \n data?: MetaTypeRuleCollection;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { MetaTypeRule } from './metaTypeRule';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface MetaTypeRuleIResult { \n data?: MetaTypeRule;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 * Certificate type details\n */\nexport interface Metadata { \n id?: number;\n /**\n * Name of type\n */\n type: string;\n /**\n * Duration certificate is valid for in months\n */\n duration?: number | null;\n /**\n * Template id used for rendering the printable certificate\n */\n renderTemplateId?: string | null;\n additionalInfo?: string | null;\n templateId?: number | null;\n durationType?: string | null;\n isActive?: boolean;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 MigrateToUserSnapshotJob { \n /**\n * Interval to run tasks in job using the format; 10m, 2h, 1d - 10 minutes, 2 hours, 1 day\n */\n frequency?: string | null;\n bulkUpdateSize?: number;\n enabled?: boolean;\n}\n\n","export * from './advancedSearch';\nexport * from './advancedSearchListByteArrayTuple';\nexport * from './advancedSearchListByteArrayTupleIResult';\nexport * from './apiKey';\nexport * from './apiKeyIEnumerableIResult';\nexport * from './apiKeyIResult';\nexport * from './appDetails';\nexport * from './auditEvent';\nexport * from './authorizationKey';\nexport * from './authorizationKeyToRole';\nexport * from './awardDetails';\nexport * from './backdatedCertificate';\nexport * from './badgeVendorApi';\nexport * from './badgingAppDetails';\nexport * from './badgingOptions';\nexport * from './badgingOptionsModel';\nexport * from './booleanIResult';\nexport * from './brightlinkIntegrationOptions';\nexport * from './brightlinkType';\nexport * from './brightlinkTypeIEnumerableIResult';\nexport * from './byteArrayIResult';\nexport * from './certificateBasic';\nexport * from './certificateOptions';\nexport * from './certificateStatusCodeEnum';\nexport * from './certificateTemplate';\nexport * from './certificateTemplateIListIResult';\nexport * from './certificateTemplateIResult';\nexport * from './certificateTemplateStringObjectDictionaryTuple';\nexport * from './courseMeta';\nexport * from './courseMetaIEnumerableIResult';\nexport * from './courseMetaIResult';\nexport * from './courseMetaSecondaryType';\nexport * from './dataCopy';\nexport * from './dataCopyModel';\nexport * from './dataCopyReturn';\nexport * from './dataCopyReturnIResult';\nexport * from './docGenOptions';\nexport * from './dropTemplateField';\nexport * from './dropTemplateFieldIEnumerableIResult';\nexport * from './externalCredential';\nexport * from './externalCredentialAwarded';\nexport * from './externalCredentialIResult';\nexport * from './groupedCertificate';\nexport * from './guidStringDictionaryIResult';\nexport * from './iCertificate';\nexport * from './iCertificateIEnumerableIResult';\nexport * from './iCertificateIResult';\nexport * from './iCertificateMetadata';\nexport * from './iCertificateMetadataIEnumerableIResult';\nexport * from './iCertificateMetadataIResult';\nexport * from './iCourseMetaSecondaryType';\nexport * from './iError';\nexport * from './iLmsItem';\nexport * from './iLookupCertificateResult';\nexport * from './iLookupUserResult';\nexport * from './iLookupUserResultIEnumerableIResult';\nexport * from './iUserDetails';\nexport * from './int32IResult';\nexport * from './jobOptions';\nexport * from './kafkaOptions';\nexport * from './lmsItem';\nexport * from './lookupCertificateResult';\nexport * from './mainMenu';\nexport * from './menu';\nexport * from './menuIResult';\nexport * from './metaTypeRule';\nexport * from './metaTypeRuleCollection';\nexport * from './metaTypeRuleCollectionIResult';\nexport * from './metaTypeRuleIResult';\nexport * from './metadata';\nexport * from './migrateToUserSnapshotJob';\nexport * from './myCertificateMFE';\nexport * from './myCertificateMFEIEnumerableBooleanTuple';\nexport * from './myCertificateMFEIEnumerableBooleanTupleIResult';\nexport * from './offering';\nexport * from './offeringIEnumerableIResult';\nexport * from './offeringIResult';\nexport * from './permissions';\nexport * from './problemDetails';\nexport * from './publicSearch';\nexport * from './renewCertificate';\nexport * from './role';\nexport * from './roleIEnumerableIResult';\nexport * from './rulesEngineApiHookOptions';\nexport * from './rulesEngineOptions';\nexport * from './searchResult';\nexport * from './searchResultIEnumerableIResult';\nexport * from './stringIApiResult';\nexport * from './stringIResult';\nexport * from './stringStringKeyValuePair';\nexport * from './subMenu';\nexport * from './templateField';\nexport * from './topic';\nexport * from './types';\nexport * from './uaOptions';\nexport * from './updateStatusJob';\nexport * from './userAuthoritySettings';\nexport * from './userCertificate';\nexport * from './userCertificateIEnumerableIResult';\nexport * from './userCertificateIResult';\nexport * from './userSearch';\nexport * from './secondaryTypes';\nexport * from './badgingOptions';\nexport * from './externalCredential';\nexport * from './externalCredentialIResult';\nexport * from './badgingOptionsModel';\nexport * from './badgingAppDetails';\n\nexport * from './groupedCertificate';\nexport * from './lookupCertificateResult';\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ExternalCredentialAwarded } from './externalCredentialAwarded';\nimport { ICertificate } from './iCertificate';\n\n\nexport interface MyCertificateMFE { \n certificate?: ICertificate;\n externalCredentialAwarded?: ExternalCredentialAwarded;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { MyCertificateMFE } from './myCertificateMFE';\n\n\nexport interface MyCertificateMFEIEnumerableBooleanTuple { \n item1?: Array | null;\n item2?: boolean;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { MyCertificateMFEIEnumerableBooleanTuple } from './myCertificateMFEIEnumerableBooleanTuple';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface MyCertificateMFEIEnumerableBooleanTupleIResult { \n data?: MyCertificateMFEIEnumerableBooleanTuple;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ILmsItem } from './iLmsItem';\n\n\nexport interface Offering { \n lmsItem?: ILmsItem;\n id?: number;\n code: string;\n startDate: string;\n endDate: string;\n lmsItemId: number;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { Offering } from './offering';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface OfferingIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { Offering } from './offering';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface OfferingIResult { \n data?: Offering;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 Permissions { \n user_permission_id?: number;\n permission_id?: number;\n permission_type?: string | null;\n name?: string | null;\n context?: string | null;\n expiration_at?: string;\n content_expiration?: string;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 ProblemDetails {\n [key: string]: any;\n\n\n type?: string | null;\n title?: string | null;\n status?: number | null;\n detail?: string | null;\n instance?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CertificateStatusCodeEnum } from './certificateStatusCodeEnum';\n\n\n/**\n * userSearch object - at least one item must be populated for search\n */\nexport interface PublicSearch { \n /**\n * UA ID for user\n */\n userId?: number;\n /**\n * certificate number\n */\n certNumber?: string | null;\n /**\n * only used with last name if available\n */\n firstName?: string | null;\n /**\n * last name of user\n */\n lastName?: string | null;\n status?: CertificateStatusCodeEnum;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 RenewCertificate { \n uaId?: number;\n expirationDate?: string;\n type?: string | null;\n certNumber?: string | null;\n source?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { AuthorizationKeyToRole } from './authorizationKeyToRole';\n\n\nexport interface Role { \n id?: number;\n name?: string | null;\n description?: string | null;\n authorizationKeyToRoles?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { Role } from './role';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface RoleIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 RulesEngineApiHookOptions { \n enabled?: boolean;\n host?: string | null;\n token?: string | null;\n apiPath?: string | null;\n customFieldsJsonPath?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { RulesEngineApiHookOptions } from './rulesEngineApiHookOptions';\n\n\nexport interface RulesEngineOptions { \n dropTemplateFieldsPathToJson?: string | null;\n dropTemplatePortraitFieldsPathToJson?: string | null;\n apiHook?: RulesEngineApiHookOptions;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 SearchResult { \n firstName?: string | null;\n lastName?: string | null;\n certNumber?: string | null;\n courseTitle?: string | null;\n issuedDate?: string;\n expirationDate?: string | null;\n state?: string | null;\n status?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { SearchResult } from './searchResult';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface SearchResultIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","\nimport { ICertificateMetadata } from './iCertificateMetadata';\n\nexport interface SecondaryType {\n //name: string;\n id?: number;\n typeId?: number;\n courseId?: number;\n \n title?: string | null;\n subTitle?: string | null;\n notes?: string | null;\n type?: ICertificateMetadata;\n ceu?: number | null;\n }","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { IError } from './iError';\n\n\nexport interface StringIApiResult { \n status?: number | null;\n errors?: { [key: string]: Array; } | null;\n /**\n * data returned from request\n */\n data?: string | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 * returns data and/or messages associated\n */\nexport interface StringIResult { \n /**\n * data returned from request\n */\n data?: string | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 StringStringKeyValuePair { \n key?: string | null;\n value?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 SubMenu { \n name?: string | null;\n route?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 TemplateField { \n recordId?: number | null;\n id?: string | null;\n name?: string | null;\n positionX?: number;\n positionY?: number;\n width?: number;\n height?: number;\n fontFamily?: string | null;\n fontSize?: number;\n textTemplate?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { Types } from './types';\n\n\nexport interface Topic { \n type?: Types;\n name?: string | null;\n username?: string | null;\n password?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 Types = 'Publisher' | 'Consumer';\n\nexport const Types = {\n Publisher: 'Publisher' as Types,\n Consumer: 'Consumer' as Types\n};\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 UaOptions { \n host?: string | null;\n authorizationToken?: string | null;\n referringUrl?: string | null;\n searchPath?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 UpdateStatusJob { \n /**\n * Interval to run tasks in job using the format; 10m, 2h, 1d - 10 minutes, 2 hours, 1 day\n */\n frequency?: string | null;\n bulkUpdateSize?: number;\n enabled?: boolean;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 UserAuthoritySettings { \n userAuthorityCASEndPoint?: string | null;\n userAuthorityAPIEndPoint?: string | null;\n userAuthorityAuthKey?: string | null;\n userProfileAPIEndPoint?: string | null;\n jwtEncryptionKey?: string | null;\n referralURL?: string | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { ICertificateMetadata } from './iCertificateMetadata';\nimport { IUserDetails } from './iUserDetails';\nimport { CertificateStatusCodeEnum } from './certificateStatusCodeEnum';\n\n\nexport interface UserCertificate {\n user?: IUserDetails;\n readonly statusText?: string | null;\n eligibilityId?: string | null;\n id?: number;\n rowId?: string;\n certMetadata?: ICertificateMetadata;\n createdDate?: string | null;\n modifiedDate?: string | null;\n examLocation?: string | null;\n providerId?: string | null;\n approvalNumber?: string | null;\n offeringCode?: string | null;\n enrollmentId?: string | null;\n enrollmentDate?: string | null;\n score?: number | null;\n uaId: number;\n certMetadataId?: number;\n type?: string | null;\n certNumber?: string | null;\n certificateStatus?: CertificateStatusCodeEnum;\n title: string;\n source?: string | null;\n sourceXRef?: string | null;\n issuedDate: string;\n expirationDate?: string | null;\n notes?: string | null;\n ceu?: string | null;\n courseMetaId?: number | null;\n lmsCourseId?: string | null;\n lmsSource?: string | null;\n lmsItemId?: number | null;\n graceExpireDays?: number;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { UserCertificate } from './userCertificate';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface UserCertificateIEnumerableIResult { \n /**\n * data returned from request\n */\n data?: Array | null;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { UserCertificate } from './userCertificate';\n\n\n/**\n * returns data and/or messages associated\n */\nexport interface UserCertificateIResult { \n data?: UserCertificate;\n error?: boolean;\n messages?: Array | null;\n}\n\n","/**\n * Certificate Service\n * API to manage certificates
Open Admin\n *\n * The version of the OpenAPI document: 2.0\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 { CertificateStatusCodeEnum } from './certificateStatusCodeEnum';\n\n\n/**\n * userSearch object - at least one item must be populated for search\n */\nexport interface UserSearch { \n /**\n * UA ID for user\n */\n userId?: number;\n /**\n * certificate number\n */\n certNumber?: string | null;\n /**\n * email address to search\n */\n email?: string | null;\n /**\n * only used with last name if available\n */\n firstName?: string | null;\n /**\n * last name of user\n */\n lastName?: string | null;\n status?: CertificateStatusCodeEnum;\n}\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CertificateStatusCodeEnum } from '@model/models';\n@Component({\n //selector: 'app-certificate-status-badge',\n selector: 'StatusBadge',\n templateUrl: './certificate-status-badge.component.html',\n styleUrls: ['./certificate-status-badge.component.scss']\n})\nexport class CertificateStatusBadgeComponent implements OnInit {\n\n @Input() public status: CertificateStatusCodeEnum;\n \n constructor() { }\n\n ngOnInit(): void {\n }\n\n getBadgeStyle(): string {\n switch(this.status) {\n case CertificateStatusCodeEnum.Pending: \n return \"badge badge-warning text-dark\";\n case CertificateStatusCodeEnum.Valid:\n return \"badge badge-success\";\n case CertificateStatusCodeEnum.Deactivated:\n case CertificateStatusCodeEnum.Cancelled:\n return \"badge badge-secondary\";\n default:\n return \"badge badge-danger\";\n }\n }\n}\n","{{ status }}","import { Component, Input, Output, OnInit } from '@angular/core';\nimport { CertificateStatusCodeEnum } from '@model/models';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n //selector: 'app-certificate-status-dropdown',\n selector: 'StatusDropdown',\n templateUrl: './certificate-status-dropdown.component.html',\n styleUrls: ['./certificate-status-dropdown.component.scss']\n})\nexport class CertificateStatusDropdownComponent implements OnInit {\n constructor() { } \n\n public statuses: CertificateStatusCodeEnum;\n\n @Input() public name: string;\n @Input() public value = null;\n\n private currentStatus = new BehaviorSubject(this.value);\n @Output() public change = this.currentStatus.asObservable();\n \n ngOnInit() {\n //console.log('app-certificate-status-dropdown init', this.name, this.value);\n }\n\n getStatusList() {\n return Object.keys(CertificateStatusCodeEnum).filter(\n (type) => isNaN(type) && type !== 'values'\n );\n }\n\n setStatus(status: CertificateStatusCodeEnum) {\n console.log(\"new status\", status);\n this.value = status;\n this.currentStatus.next(status);\n }\n}\n","\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CourseMeta } from '@model/courseMeta';\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\nimport moment from 'moment';\nimport { CourseMetaFlatten } from 'src/app/model_custom/courseMetaFlatten';\n\n@Component({\n selector: 'app-course-card',\n templateUrl: './course-card.component.html',\n styleUrls: ['./course-card.component.scss']\n})\nexport class CourseCardComponent implements OnInit {\n\n @Input() public course: CourseMetaFlatten;\n @Input() public issuedDate = moment.utc().format(\"YYYY-MM-DD\");\n @Input() public details = true;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n getImageUrl(id: number): string {\n return \"/api/v2/templates/\" + id + \".jpg\";\n }\n\n getLmsName(val): string {\n if (val == 0)\n return \"Moodle\";\n else if (val == 1)\n return \"Crowd Wisdom\";\n else \n return \"Other\"\n }\n\n getExpireDate() {\n var expAdd = this.course.type.duration;\n var issued = moment(this.issuedDate);\n \n if (this.course.type.durationType == \"d\") {\n return issued.add(expAdd, 'days').format(\"YYYY-MM-DD\");\n } else if (this.course.type.durationType == \"y\") {\n return issued.add(expAdd, 'years').format(\"YYYY-MM-DD\");\n } else {\n return issued.add(expAdd, 'M').format(\"YYYY-MM-DD\");\n }\n //return issued.add(expAdd, 'M').format(\"YYYY-MM-DD\");\n }\n\n getDurationtype(type): string {\n if(type == \"d\") {\n return \"Days\";\n } else if(type == \"y\") {\n return \"Years\"\n } else {\n return \"Months\";\n }\n }\n\n}\n","
\n
\n
\n {{course?.name}}\n
\n
\n
\n \n
\n
\n {{course?.title}}\n
\n
    \n
  • \n {{ course.secondaryTypes.length + 1 }} certificate{{\n course.secondaryTypes.length > 0 ? \"s\" : \"\"\n }} created for this course completion.\n
  • \n
  • \n LMS Course Id\n {{course.lmsItem?.courseId}}\n
  • \n
  • \n LMS Source\n {{getLmsName(course.lmsItem?.source)}}\n
  • \n
  • \n Type\n \n {{course.type.type}}\n
  • \n
  • \n Brightlink Credential Type\n {{course.brightlinkCredentialTypeSlug}}\n
  • \n
  • \n Valid {{ course.type.duration}} {{ getDurationtype(course.type.durationType) }}\n
  • \n
\n
\n
\n\n
\n
\n

\n {{course?.title}}\n

\n
    \n
  • \n This course will render\n {{ course.secondaryTypes.length + 1 }} certificate{{\n course.secondaryTypes.length > 0 ? \"s\" : \"\"\n }}\n on creation.\n
  • \n
  • \n LMS Course Id\n {{course.lmsItem.courseId}}\n
  • \n
  • \n LMS Source\n {{getLmsName(course.lmsItem.source)}}\n
  • \n
  • \n Award State\n \n
  • \n
  • \n Earn\n \n 0 && course.earn\" ngbTooltip=\"Earns a certificate with a CEU value of {{course.ceu}}\">\n \n {{ course.ceu | number }}\n \n \n \n \n
  • \n
  • \n Issue Date\n {{issuedDate}}\n
  • \n
  • \n Expiration Date\n {{getExpireDate()}}\n
  • \n
\n
\n
\n \n
\n
\n
\n","import { Component, Inject, Renderer2, TemplateRef } from '@angular/core';\nimport { Validators, FormBuilder, FormGroup, FormControl } from '@angular/forms';\nimport { Router, RouterModule } from '@angular/router';\nimport { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';\nimport { AuthService } from '@core/auth.service';\nimport { CommonModule, DOCUMENT, KeyValue } from '@angular/common';\nimport { ToastNotificationService } from '@core/toast-notification.service';\nimport { ApiKeyManagerService } from '@api/api';\nimport { Menu } from '@model/menu';\nimport { NgxRolesService, NgxPermissionsConfigurationService } from 'ngx-permissions';\nimport { BuConfigService } from '@core/bu-config.service';\nimport { UserService } from '@core/user.service';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\n/** header component*/\nexport class HeaderComponent {\n\n public themeDic: KeyValue[] = [];\n public currentStyle = \"default\";\n\n editForm: FormGroup;\n public showMenu = false;\n public superUser = false;\n menus: Menu;\n\n constructor(private formBuilder: FormBuilder,\n private router: Router,\n private modalService: NgbModal,\n private authService: AuthService,\n private toastService: ToastNotificationService,\n @Inject(DOCUMENT) private document: Document,\n private apiKeyService: ApiKeyManagerService,\n private rolesService: NgxRolesService,\n private readonly ngxpcs: NgxPermissionsConfigurationService,\n private renderer2: Renderer2,\n private buConfigService: BuConfigService,\n private userService: UserService) {\n this.authService.apiKey.subscribe(() => {\n this.setKeyStyle();\n this.showMenu = this.authService.hasApiKey() || this.userService.loggedIn;\n\n if (!this.showMenu) {\n this.router.navigate(['/app']);\n } else {\n if (!this.menus) {\n this.loadMenus();\n }\n }\n\n });\n\n this.themeDic.push({ key: \"default\", value: \"Default\" });\n this.themeDic.push({ key: \"cosmo\", value: \"Cosmo\" });\n this.themeDic.push({ key: \"dark\", value: \"Dark\" });\n this.themeDic.push({ key: \"flat\", value: \"Flat\" });\n this.themeDic.push({ key: \"lumen\", value: \"Lumen\" });\n this.themeDic.push({ key: \"lux\", value: \"Lux\" });\n this.themeDic.push({ key: \"sandstone\", value: \"Sandstone\" });\n this.themeDic.push({ key: \"sketch\", value: \"Sketch\" });\n this.themeDic.push({ key: \"sketch-dark\", value: \"Sketch Dark\" });\n this.themeDic.push({ key: \"slate\", value: \"Slate\" });\n this.themeDic.push({ key: \"superhero\", value: \"Superhero\" });\n this.themeDic.push({ key: \"yeti\", value: \"Yeti\" });\n }\n\n ngOnInit(): void {\n\n var selStyle = window.localStorage.getItem('selectedStyle');\n if (selStyle)\n this.loadStyle(selStyle);\n else\n this.loadStyle(this.currentStyle);\n\n this.currentStyle = selStyle;\n\n this.editForm = this.formBuilder.group({\n authkey: new FormControl('', Validators.required)\n });\n }\n\n open(content) {\n this.modalService.open(content, { windowClass: 'modal-holder', ariaLabelledBy: 'addAuthKey', centered: false });\n }\n\n isBULoginReq() {\n return this.buConfigService.getBuConfig()?.BUData?.isUALoginReq || false;\n }\n\n closeModal(modal) {\n modal.close();\n //setTimeout(function () { }, 1500);\n }\n\n public setKeyStyle(): string {\n if (this.authService.hasApiKey()) {\n return 'text-success';\n } else {\n return 'text-danger';\n }\n }\n\n onSubmit() {\n this.apiKeyService.apiV2ApiKeyManagerAuthkeyPost({\"value\": this.editForm.controls.authkey.value}).subscribe({\n next: (data) => {\n if (!data.error) {\n this.authService.setApiKey(this.editForm.controls.authkey.value);\n this.editForm.controls.authkey.setValue('');\n this.modalService.dismissAll();\n //this.menus = data.data;\n }\n this.toastService.showResult(data.error, data.messages);\n return;\n }\n });\n }\n\n onClear() {\n this.authService.setApiKey(null);\n this.editForm.controls.authkey.setValue('');\n this.toastService.showSuccess(\"Key has been cleared\");\n this.menus = null;\n this.rolesService.flushRolesAndPermissions();\n this.userService.logout();\n return;\n }\n\n loadMenus() {\n var key = this.authService.getApiKey();\n this.apiKeyService.apiV2ApiKeyManagerAuthkeyPost({ \"value\": key }).subscribe({\n next: (data) => {\n if (!data.error) {\n this.menus = data.data;\n this.rolesService.addRoleWithPermissions(data.data.role, data.data.permissions);\n this.ngxpcs.addPermissionStrategy('disable', (templateRef: TemplateRef) => {\n this.renderer2.setAttribute(templateRef.elementRef.nativeElement.previousElementSibling, 'disabled', 'true');\n });\n this.ngxpcs.addPermissionStrategy('enable', (templateRef: TemplateRef) => {\n this.renderer2.removeAttribute(templateRef.elementRef.nativeElement.previousElementSibling, 'disabled');\n });\n //this.ngxpcs.setDefaultOnAuthorizedStrategy('enable');\n //this.ngxpcs.setDefaultOnUnauthorizedStrategy('disable');\n }\n }\n });\n }\n\n loadStyle(styleName: string) {\n const head = this.document.getElementsByTagName('head')[0];\n\n let themeLink = this.document.getElementById(\n 'client-theme'\n ) as HTMLLinkElement;\n if (themeLink) {\n themeLink.href = styleName + '.css';\n } else {\n const style = this.document.createElement('link');\n style.id = 'client-theme';\n style.rel = 'stylesheet';\n style.href = `${styleName}` + '.css';\n\n head.appendChild(style);\n }\n\n window.localStorage.setItem('selectedStyle', styleName);\n this.currentStyle = styleName;\n //console.log(this.currentStyle);\n //console.log(styleName);\n }\n\n\n}\n","
\n \n
\n\n\n
\n

Set Auth Key for Access

\n \n ×\n \n
\n
\n
\n\n

Enter the auth/api key to view data.

\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 { LoadNotificationService } from '@core/load-notification.service';\n//import { LoadNotificationService } from '@app/load-notification.service';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-load-notification',\n templateUrl: './load-notification.component.html',\n styleUrls: ['./load-notification.component.scss']\n})\n/** LoadNotification component*/\nexport class LoadNotificationComponent {\n isLoading: Subject = this.loaderService.isLoading;\n constructor(private loaderService: LoadNotificationService) { }\n}\n","\n
\n
\n

\n Loading...\n
\n
\n","import { LowerCasePipe } from '@angular/common';\nimport { Component, Input, OnInit, Output, PipeTransform } from '@angular/core';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CourseMetasService } from '@api/courseMetas.service';\nimport { ToastNotificationService } from '@core/toast-notification.service';\nimport { CourseMeta } from '@model/models';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { CourseMetaFlatten } from 'src/app/model_custom/courseMetaFlatten';\n\n@Component({\n selector: 'app-meta-course-selector',\n templateUrl: './meta-course-selector.component.html',\n styleUrls: ['./meta-course-selector.component.scss']\n})\nexport class MetaCourseSelectorComponent implements OnInit {\n\n /** courseId pre-selected id */\n @Input() public lmsItemId: number;\n\n subs: Subscription[] = [];\n public courses: CourseMetaFlatten[] = [];\n public filteredCourses: CourseMetaFlatten[] = [];\n\n private currentCourse = new BehaviorSubject(null);\n @Output() selected = this.currentCourse.asObservable();\n\n filterForm: FormGroup;\n\n constructor(private cmApi: CourseMetasService,\n private activeRte: ActivatedRoute,\n private toastService: ToastNotificationService,\n private router: Router,\n private pipe: LowerCasePipe,\n private formBuilder: FormBuilder) {\n this.filterForm = this.formBuilder.group({\n filter: ['']\n });\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit() {\n console.log('meta-course-selector after view init');\n setTimeout(() => {\n this.cmApi.apiV2CoursemetasGet()\n .subscribe({\n next: res => {\n if (!res.error) {\n res.data?.filter(x => x.isActive == true)?.forEach(a => {\n if (a.earn) {\n //this.courses.push(a);\n a.lmsItems.forEach(l => {\n var c: CourseMetaFlatten = { ...a };\n c.lmsItem = l;\n this.courses.push(c);\n })\n }\n });\n this.filteredCourses = this.courses?.filter(x => x.isActive == true);\n if (this.currentCourse == null && this.lmsItemId > 0)\n this.currentCourse.next(this.courses.find(a => a.lmsItem.id == this.lmsItemId));\n\n this.filterForm.controls['filter'].valueChanges\n .pipe(startWith(''), map(text => this.search(text, this.pipe)))\n .subscribe(results => {\n this.filteredCourses = results;\n // this.collectionSize = results?.length;\n // this.page = 1;\n });\n }\n else\n this.toastService.showResult(res.error, res.messages);\n },\n error: err => this.toastService.showResult(true, err.error.messages)\n });\n });\n }\n\n ngOnDestroy() {\n for (let s of this.subs) {\n s.unsubscribe();\n }\n }\n\n setSelectedCourse(lmsItemId: number) {\n this.lmsItemId = lmsItemId;\n console.log(lmsItemId + ' selected');\n this.currentCourse.next(this.courses.find(a => a.lmsItem.id == this.lmsItemId));\n }\n\n search(text: string, pipe: PipeTransform): CourseMetaFlatten[] {\n // console.log(text);\n // console.log(this.courses?.length);\n return this.courses?.filter(cm => {\n const term = text.toLowerCase();\n //return pipe.transform(cm.name).includes(term)\n return cm.name.toLowerCase().includes(term)\n || pipe.transform(cm.lmsItem.activityName)?.includes(term)\n || pipe.transform(cm.lmsItem.courseId)?.includes(term)\n || pipe.transform(cm.lmsItem.activityId)?.includes(term)\n || pipe.transform(cm.title)?.includes(term)\n || pipe.transform(cm.subTitle)?.includes(term)\n || pipe.transform(this.getLmsName(cm.lmsItem.source))?.includes(term)\n || pipe.transform(cm.notes)?.includes(term)\n || pipe.transform(cm.type.type)?.includes(term);\n });\n }\n\n getLmsName(val): string {\n if (val == 0)\n return \"Moodle\";\n else if (val == 1)\n return \"Crowd Wisdom\";\n else\n return \"Other\"\n }\n\n}\n\n","
\n

Courses

\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n \n
{{ item.name }}
\n
\n\n
\n {{ getLmsName(item.lmsItem.source) }} \n {{ item.lmsItem.courseId }} \n
\n\n
\n Activity Name\n {{ item.lmsItem.activityName }}\n
\n \n
\n Activity Id\n {{ item.lmsItem.activityId }}\n
\n\n
\n Title\n {{ item.title }} \n
\n\n
\n Type\n {{ item.type.type }} \n
\n
\n
\n
","import { Component, OnInit, OnDestroy, Output, Input, PipeTransform } from '@angular/core';\nimport { CertificateTemplate } from '@model/models';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { TemplatesService } from '@api/api';\nimport { AuthService } from '@core/auth.service';\nimport { ToastNotificationService } from '@core/toast-notification.service';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { map, startWith } from 'rxjs/operators';\nimport { LowerCasePipe } from '@angular/common';\n\n@Component({\n selector: 'app-meta-template-selector',\n templateUrl: './meta-template-selector.component.html',\n styleUrls: ['./meta-template-selector.component.scss']\n})\n/** MetaTemplateSelector component*/\nexport class MetaTemplateSelectorComponent implements OnInit, OnDestroy {\n\n @Input() public templateId: number;\n\n subs: Subscription[] = [];\n public templates: CertificateTemplate[];\n private pt: CertificateTemplate[];\n private currentType = new BehaviorSubject(null);\n\n @Output() selected = this.currentType.asObservable();\n\n filterForm: FormGroup;\n\n /** MetaTemplateSelector ctor */\n constructor(private apiTemplates: TemplatesService,\n private auth: AuthService,\n private toastService: ToastNotificationService,\n private pipe: LowerCasePipe,\n private formBuilder: FormBuilder) {\n\n this.filterForm = this.formBuilder.group({\n filter: ['']\n });\n }\n\n ngOnInit(): void {\n console.log('meta-template-selector init');\n\n this.apiTemplates.configuration.apiKeys = { \"Authorization\": this.auth.getApiKey() };\n\n this.apiTemplates.apiV2TemplatesGet()\n .subscribe({\n next: res => {\n if (!res.error) {\n this.templates = res.data?.filter( x => x.isActive == true);\n this.pt = res.data?.filter( x => x.isActive == true);\n }\n else\n this.toastService.showResult(res.error, res.messages);\n },\n error: err => this.toastService.showResult(true, err.error.messages)\n });\n\n this.filterForm.controls['filter'].valueChanges\n .pipe(startWith(''), map(text => this.search(text, this.pipe)))\n .subscribe(results => {\n this.templates = results;\n });\n }\n\n ngOnDestroy() {\n for (let s of this.subs) {\n s.unsubscribe();\n }\n }\n\n setSelectedTemplate(templateId: number) {\n this.templateId = templateId;\n console.log(templateId + ' selected');\n this.currentType.next(templateId);\n }\n\n search(text: string, pipe: PipeTransform): CertificateTemplate[] {\n console.log(text);\n console.log(this.templates?.length);\n return this.pt?.filter(cert => {\n const term = text.toLowerCase();\n return pipe.transform(cert.name).includes(term)\n || pipe.transform(cert.tags.join(\", \")).includes(term);\n });\n }\n\n get templateColl(): CertificateTemplate[] {\n return this.templates;\n }\n\n getImageUrl(id: number): string {\n return \"/api/v2/templates/\" + id + \".jpg\";\n }\n\n}\n","\n
\n

Templates

\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n \n
{{ item.name }}
\n {{ item.tags.toString() }}\n
\n \n
\n
\n
\n
\n","import { Component, Output, Input, PipeTransform } from \"@angular/core\";\nimport { ICertificateMetadata } from '@model/models';\nimport { BehaviorSubject, Subscription, map, startWith } from 'rxjs';\nimport { CertificateTypesService } from '@api/api';\nimport { AuthService } from '@core/auth.service';\nimport { ToastNotificationService } from '@core/toast-notification.service';\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\nimport { LowerCasePipe } from \"@angular/common\";\n\n@Component({\n selector: 'app-meta-type-selector',\n templateUrl: './meta-type-selector.component.html',\n styleUrls: ['./meta-type-selector.component.scss']\n})\n/** MetaTypeSelector component*/\nexport class MetaTypeSelectorComponent {\n\n @Input() public type: ICertificateMetadata;\n @Input() public typeId: number;\n\n public metaTypes: ICertificateMetadata[];\n public filteredTypes: ICertificateMetadata[];\n\n private metaTypeList = new BehaviorSubject(null);\n @Output() typesLoaded = this.metaTypeList.asObservable();\n\n private currentType = new BehaviorSubject(null);\n @Output() selected = this.currentType.asObservable();\n\n filterForm: FormGroup;\n\n /** MetaTypeSelector ctor */\n constructor(private csApiTypes: CertificateTypesService,\n private auth: AuthService,\n private toastService: ToastNotificationService,\n private pipe: LowerCasePipe,\n private formBuilder: FormBuilder) {\n this.filterForm = this.formBuilder.group({\n filter: ['']\n });\n }\n\n ngOnInit(): void {\n console.log('meta-type-selector init');\n this.csApiTypes.configuration.apiKeys = { \"Authorization\": this.auth.getApiKey() };\n }\n\n ngAfterViewInit() {\n console.log('meta-type-selector after view init');\n setTimeout(() => {\n this.csApiTypes.apiV2TypesGet()\n .subscribe(\n {\n next: res => {\n if (!res.error) {\n this.metaTypes = res.data?.filter(x => x.isActive == true);\n this.metaTypeList.next(this.metaTypes);\n if (this.type == null && this.typeId > 0)\n this.type = this.metaTypes.find(a => a.id == this.typeId);\n\n this.filterForm.controls['filter'].valueChanges\n .pipe(startWith(''), map(text => this.search(text, this.pipe)))\n .subscribe(results => {\n this.filteredTypes = results;\n // this.collectionSize = results?.length;\n // this.page = 1;\n });\n }\n else\n this.toastService.showResult(res.error, res.messages);\n },\n error: err => this.toastService.showResult(true, err.error.messages)\n });\n });\n }\n\n ngOnDestroy() {\n }\n\n search(text: string, pipe: PipeTransform): ICertificateMetadata[] {\n // console.log(text);\n // console.log(this.courses?.length);\n return this.metaTypes?.filter(t => {\n const term = text.toLowerCase();\n //return pipe.transform(cm.name).includes(term)\n return t.type.toLowerCase().includes(term);\n });\n }\n\n setSelectedType(type: ICertificateMetadata) {\n this.type = type;\n this.typeId = type.id;\n console.log(\"type selected\", this.type);\n this.currentType.next(type);\n }\n\n getDurationtype(type): string {\n if (type == \"d\") {\n return \"Days\";\n } else if (type == \"y\") {\n return \"Years\"\n } else {\n return \"Months\";\n }\n }\n}\n","\n
\n

Certificate Type

\n
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
{{ item.type }}
\n
\n {{ item.renderTemplateId }}\n \n {{ item.duration }} {{ getDurationtype(item.durationType) }} \n \n \n Completion\n \n
\n
\n
\n
\n\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { MetaTypeSelectorComponent } from './meta-type-selector/meta-type-selector.component';\nimport { MetaTemplateSelectorComponent } from './meta-template-selector/meta-template-selector.component';\nimport { CommonModule, LowerCasePipe } from '@angular/common';\nimport { TemplateCardComponent } from './template-card/template-card.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CertificateStatusDropdownComponent } from './certificate-status-dropdown/certificate-status-dropdown.component';\nimport { CertificateStatusBadgeComponent } from './certificate-status-badge/certificate-status-badge.component';\nimport { MetaCourseSelectorComponent } from './meta-course-selector/meta-course-selector.component';\nimport { CourseCardComponent } from './course-card/course-card.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\n@NgModule({\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgbModule\n ],\n declarations: [\n MetaTypeSelectorComponent,\n MetaTemplateSelectorComponent,\n TemplateCardComponent,\n CertificateStatusDropdownComponent,\n CertificateStatusBadgeComponent,\n MetaCourseSelectorComponent,\n CourseCardComponent\n ],\n exports: [\n MetaTypeSelectorComponent,\n MetaTemplateSelectorComponent,\n MetaCourseSelectorComponent,\n \n TemplateCardComponent,\n CertificateStatusDropdownComponent,\n CertificateStatusBadgeComponent,\n CourseCardComponent,\n NgbModule\n ],\n providers: [\n LowerCasePipe\n ]\n})\nexport class SharedModule {\n}\n\nexport function GetLmsName_SH(val: number): string {\n if (val == 0)\n return \"Moodle\";\n else if (val == 1)\n return \"Crowd Wisdom\";\n else \n return \"Other\"\n}\n","import { Component, Output, Input, PipeTransform } from '@angular/core';\nimport { CertificateTemplate } from '@model/models';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { TemplatesService } from '@api/api';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '@core/auth.service';\nimport { ToastNotificationService } from '@core/toast-notification.service';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { map, startWith } from 'rxjs/operators';\nimport { LowerCasePipe } from '@angular/common';\n\n@Component({\n selector: 'app-template-card',\n templateUrl: './template-card.component.html',\n styleUrls: ['./template-card.component.scss']\n})\n/** template-card component*/\nexport class TemplateCardComponent {\n\n @Input() public templateId: number;\n\n subs: Subscription[] = [];\n public templates: CertificateTemplate[];\n //private currentType = new BehaviorSubject(this.templateId);\n public template: CertificateTemplate;\n\n /** template-card ctor */\n constructor(private apiTemplates: TemplatesService,\n private auth: AuthService,\n private toastService: ToastNotificationService,\n private router: Router,\n private pipe: LowerCasePipe,\n private formBuilder: FormBuilder) {\n\n }\n\n ngOnInit(): void {\n console.log('meta-template-selector init');\n this.apiTemplates.configuration.apiKeys = { \"Authorization\": this.auth.getApiKey() };\n\n this.apiTemplates.apiV2TemplatesGet()\n .subscribe({\n next: res => {\n if (!res.error) {\n this.templates = res.data;\n this.setTemplate();\n }\n else\n this.toastService.showResult(res.error, res.messages);\n },\n error: err => this.toastService.showResult(true, err.error.messages)\n });\n }\n\n setTemplate() {\n this.template = this.templates.filter(t => t.id == this.templateId).slice(0, 1)[0];\n }\n\n getImageUrl(id: number): string {\n return \"/api/v2/templates/\" + id + \".jpg\";\n }\n}\n","\n
\n
\n
\n \n
\n
\n
{{ template?.name }}
\n

{{ template?.tags }}

\n
\n
\n
\n","import { Component, TemplateRef } from '@angular/core';\nimport { ToastNotificationService } from '@core/toast-notification.service';\n\n@Component({\n selector: 'app-toast-notification',\n host: { '[class.ngb-toasts-left]': 'true' },\n templateUrl: './toast-notification.component.html',\n styleUrls: ['./toast-notification.component.scss']\n})\n/** toast-notification component*/\nexport class ToastNotificationComponent {\n constructor(public toastService: ToastNotificationService) { }\n\n isTemplate(toast) { return toast.textOrTpl instanceof TemplateRef; }\n}\n","\n\n \n \n \n\n \n \n
\n
\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { StatsService } from '../api/api';\nimport { JobOptions } from '@model/jobOptions';\nimport { AuthService } from '@core/auth.service';\nimport { Subscription, Observable, BehaviorSubject } from 'rxjs';\nimport { AuditEvent, AppDetails } from '../model/models';\nimport { BadgingAppDetails } from '../model/badgingAppDetails';\n\n@Component({\n selector: 'app-stats',\n templateUrl: './stats.component.html',\n styleUrls: ['./stats.component.scss']\n})\n/** stats component*/\nexport class StatsComponent implements OnInit, OnDestroy {\n\n public stats: AppDetails;\n public jobs: JobOptions;\n public auditEvents: AuditEvent[];\n public badgingAuditEvents: AuditEvent[];\n public badgingStats: BadgingAppDetails;\n\n appDetails$: BehaviorSubject;\n\n //subs: Subscription[] = [];\n public activeTab = 1;\n\n constructor(private router: Router, private statsApi: StatsService, private auth: AuthService) {\n\n }\n\n ngOnInit(): void {\n this.loadData();\n }\n\n ngOnDestroy() {\n // for (let s of this.subs) {\n // s.unsubscribe();\n // }\n }\n\n loadData() {\n if (this.auth.hasApiKey()) {\n this.statsApi.configuration.apiKeys = { \"Authorization\": this.auth.getApiKey() };\n\n this.statsApi.apiV2StatsGet().subscribe({\n next: (data) => {\n this.stats = data\n if (this.stats?.options?.badgingOptions?.enabled) {\n this.statsApi.apiV2StatsAuditExtBadgingGet().subscribe({\n next: (data) => this.badgingAuditEvents = data\n });\n }\n }\n });\n\n this.statsApi.apiV2StatsJobsGet().subscribe({\n next: (data) => this.jobs = data\n });\n\n this.statsApi.apiV2StatsAuditGet().subscribe({\n next: (data) => this.auditEvents = data\n });\n\n this.statsApi.apiV2StatsStatsExtBadgingGet().subscribe({\n next: (data) => this.badgingStats = data\n })\n }\n else\n this.router.navigate([\"/app\"]);\n }\n}\n","
\n\n \n
\n \n
\n\n
    \n
  • \n Settings & Stats\n \n\n
    \n
    \n

    \n Table Counts\n

    \n
      \n
    • \n Total Certificates\n {{ stats?.totalCertificates }}\n
    • \n
    • \n Total Certificate Types\n {{ stats?.totalCertificateTypes }}\n
    • \n
    • \n Total UserInfoSnapshot\n {{ stats?.totalUserInfoSnapshot }}\n
    • \n
    • \n Total Courses\n {{ stats?.totalCourses }}\n
    • \n
    \n
    \n\n
    \n \n

    Certificate By Status

    \n
      \n
    • \n {{ item.key }}\n {{ item.value }}\n
    • \n
    \n
    \n\n
    \n

    \n Jobs\n

    \n \n
    JOB IS DISABLED
    \n
    \n
      \n
    • \n
      \n
      Update Status Job
      \n {{\n jobs?.updateStatus?.frequency }}\n
      \n
      \n Updates {{ jobs?.updateStatus?.bulkUpdateSize }} records every {{ jobs?.updateStatus?.frequency }}.\n
      \n
    • \n
    • \n
      \n
      Migrate To UserSnapshot Table
      \n {{\n jobs?.migrateToUserSnapshot?.frequency }}\n
      \n
      \n Updates {{ jobs?.migrateToUserSnapshot?.bulkUpdateSize }} users every {{\n jobs?.migrateToUserSnapshot?.frequency }}.\n
      \n
    • \n \n
    \n
    \n\n
    \n\n
    \n
    \n
      \n
    • \n

      \n Kafka Topics\n

      \n
    • \n\n \n
    • \n\n
      \n
      {{ item.key }}
      \n {{\n item.value.type }}\n
      \n {{ item.value.name }}\n
    • \n
      \n\n \n
    \n\n
    \n
    \n
      \n
    • \n

      Connected Services

      \n
    • \n
    • \n User Authority\n {{ stats?.options.ua.host }}\n
    • \n
    • \n Doc Gen - ext\n {{ stats?.options.docGen.host }}\n
    • \n
    • \n Doc Gen - Template Builder\n {{ stats?.options.docGen.useInternal }}\n
    • \n
    • \n \n Rules Engine API\n \n [Enabled={{ stats?.options.rulesEngine.apiHook.enabled }}]\n \n \n {{ stats?.options.rulesEngine.apiHook.host }}\n
    • \n
    • \n \n Kafka\n \n [Enabled={{ stats?.options.kafka.useKafka }}]\n \n \n {{ stats?.options.kafka.kafkaEndpoint }}\n
    • \n
    • \n \n Badging Service\n \n [Enabled={{ stats?.options.badgingOptions.enabled }}]\n \n \n {{ stats?.options.badgingOptions.host }}\n
    • \n
    • \n \n Brightlink Integration\n \n [Enabled={{ stats?.options.brightlinkIntegration.enabled }}]\n \n \n {{ stats?.options.brightlinkIntegration.host }}\n
    • \n
    \n
    \n
    \n\n
    \n
  • \n
  • \n Audit Events\n \n

    Last 100 audit events with adds and updates

    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
    Date/TimeAPI KeyMessage
    {{ event.date }}\n\n {{ event.apiKeyName }}\n \n
    \n
    \n {{ event.message }}\n
    \n
    \n {{ event.item }}: {{ event.itemId }}\n
    \n
    \n\n
    \n
    \n
  • \n
  • \n Badging Audit Events\n \n

    Last 100 audit events with adds and updates

    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
    Date/TimeAPI KeyMessage
    {{ event.date }}\n\n {{ event.apiKeyName }}\n \n
    \n
    \n {{ event.message }}\n
    \n
    \n {{ event.item }}: {{ event.itemId }}\n
    \n
    \n\n
    \n
    \n
  • \n
  • \n Badging Settings & Stats\n \n
    \n
    \n
      \n
    • \n

      \n Table Counts\n

      \n
    • \n
    • \n
      \n Total Credentials Associated\n {{ badgingStats?.totalExternalCredentialsAssociated }}\n
      \n
    • \n
    • \n
      \n Total Credentials Awarded \n {{ badgingStats?.totalExternalCredentialsAwarded }}\n
      \n
    • \n
    \n
    \n
    \n
      \n
    • \n

      \n Kafka Topics\n

      \n
    • \n \n
    • \n\n
      \n
      {{ item.key }}
      \n {{\n item.value.type }}\n
      \n {{ item.value.name }}\n
    • \n
      \n
    \n
    \n
    \n
      \n
    • \n

      Connected Services

      \n
    • \n
    • \n \n Kafka\n \n [Enabled={{ badgingStats?.options.kafka.useKafka }}]\n \n \n {{ badgingStats?.options.kafka.kafkaEndpoint }}\n
    • \n
    • \n \n Badging Vender API\n \n [Enabled={{ badgingStats?.options?.badgeVendorApi?.host ? true : false }}]\n \n \n {{ badgingStats?.options?.badgeVendorApi?.host }}\n
    • \n
    \n
    \n
    \n
    \n
  • \n
\n\n
\n\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","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n\n\n","var map = {\n\t\"./af\": 5528,\n\t\"./af.js\": 5528,\n\t\"./ar\": 1036,\n\t\"./ar-dz\": 7579,\n\t\"./ar-dz.js\": 7579,\n\t\"./ar-kw\": 9588,\n\t\"./ar-kw.js\": 9588,\n\t\"./ar-ly\": 1650,\n\t\"./ar-ly.js\": 1650,\n\t\"./ar-ma\": 3258,\n\t\"./ar-ma.js\": 3258,\n\t\"./ar-sa\": 4085,\n\t\"./ar-sa.js\": 4085,\n\t\"./ar-tn\": 287,\n\t\"./ar-tn.js\": 287,\n\t\"./ar.js\": 1036,\n\t\"./az\": 9757,\n\t\"./az.js\": 9757,\n\t\"./be\": 9620,\n\t\"./be.js\": 9620,\n\t\"./bg\": 1139,\n\t\"./bg.js\": 1139,\n\t\"./bm\": 4042,\n\t\"./bm.js\": 4042,\n\t\"./bn\": 9641,\n\t\"./bn-bd\": 9126,\n\t\"./bn-bd.js\": 9126,\n\t\"./bn.js\": 9641,\n\t\"./bo\": 494,\n\t\"./bo.js\": 494,\n\t\"./br\": 934,\n\t\"./br.js\": 934,\n\t\"./bs\": 6274,\n\t\"./bs.js\": 6274,\n\t\"./ca\": 5831,\n\t\"./ca.js\": 5831,\n\t\"./cs\": 2354,\n\t\"./cs.js\": 2354,\n\t\"./cv\": 9692,\n\t\"./cv.js\": 9692,\n\t\"./cy\": 8774,\n\t\"./cy.js\": 8774,\n\t\"./da\": 8955,\n\t\"./da.js\": 8955,\n\t\"./de\": 1557,\n\t\"./de-at\": 4954,\n\t\"./de-at.js\": 4954,\n\t\"./de-ch\": 1881,\n\t\"./de-ch.js\": 1881,\n\t\"./de.js\": 1557,\n\t\"./dv\": 6475,\n\t\"./dv.js\": 6475,\n\t\"./el\": 8877,\n\t\"./el.js\": 8877,\n\t\"./en-au\": 454,\n\t\"./en-au.js\": 454,\n\t\"./en-ca\": 7356,\n\t\"./en-ca.js\": 7356,\n\t\"./en-gb\": 456,\n\t\"./en-gb.js\": 456,\n\t\"./en-ie\": 8789,\n\t\"./en-ie.js\": 8789,\n\t\"./en-il\": 5471,\n\t\"./en-il.js\": 5471,\n\t\"./en-in\": 9664,\n\t\"./en-in.js\": 9664,\n\t\"./en-nz\": 5664,\n\t\"./en-nz.js\": 5664,\n\t\"./en-sg\": 805,\n\t\"./en-sg.js\": 805,\n\t\"./eo\": 7390,\n\t\"./eo.js\": 7390,\n\t\"./es\": 1564,\n\t\"./es-do\": 1473,\n\t\"./es-do.js\": 1473,\n\t\"./es-mx\": 1906,\n\t\"./es-mx.js\": 1906,\n\t\"./es-us\": 4156,\n\t\"./es-us.js\": 4156,\n\t\"./es.js\": 1564,\n\t\"./et\": 6513,\n\t\"./et.js\": 6513,\n\t\"./eu\": 7856,\n\t\"./eu.js\": 7856,\n\t\"./fa\": 2378,\n\t\"./fa.js\": 2378,\n\t\"./fi\": 2687,\n\t\"./fi.js\": 2687,\n\t\"./fil\": 32,\n\t\"./fil.js\": 32,\n\t\"./fo\": 6845,\n\t\"./fo.js\": 6845,\n\t\"./fr\": 8875,\n\t\"./fr-ca\": 6425,\n\t\"./fr-ca.js\": 6425,\n\t\"./fr-ch\": 1746,\n\t\"./fr-ch.js\": 1746,\n\t\"./fr.js\": 8875,\n\t\"./fy\": 7037,\n\t\"./fy.js\": 7037,\n\t\"./ga\": 1217,\n\t\"./ga.js\": 1217,\n\t\"./gd\": 7010,\n\t\"./gd.js\": 7010,\n\t\"./gl\": 1931,\n\t\"./gl.js\": 1931,\n\t\"./gom-deva\": 4488,\n\t\"./gom-deva.js\": 4488,\n\t\"./gom-latn\": 8032,\n\t\"./gom-latn.js\": 8032,\n\t\"./gu\": 4984,\n\t\"./gu.js\": 4984,\n\t\"./he\": 9090,\n\t\"./he.js\": 9090,\n\t\"./hi\": 2085,\n\t\"./hi.js\": 2085,\n\t\"./hr\": 8787,\n\t\"./hr.js\": 8787,\n\t\"./hu\": 2901,\n\t\"./hu.js\": 2901,\n\t\"./hy-am\": 9819,\n\t\"./hy-am.js\": 9819,\n\t\"./id\": 4074,\n\t\"./id.js\": 4074,\n\t\"./is\": 715,\n\t\"./is.js\": 715,\n\t\"./it\": 3838,\n\t\"./it-ch\": 7040,\n\t\"./it-ch.js\": 7040,\n\t\"./it.js\": 3838,\n\t\"./ja\": 3180,\n\t\"./ja.js\": 3180,\n\t\"./jv\": 4346,\n\t\"./jv.js\": 4346,\n\t\"./ka\": 5538,\n\t\"./ka.js\": 5538,\n\t\"./kk\": 9772,\n\t\"./kk.js\": 9772,\n\t\"./km\": 7905,\n\t\"./km.js\": 7905,\n\t\"./kn\": 9125,\n\t\"./kn.js\": 9125,\n\t\"./ko\": 9140,\n\t\"./ko.js\": 9140,\n\t\"./ku\": 6780,\n\t\"./ku.js\": 6780,\n\t\"./ky\": 3768,\n\t\"./ky.js\": 3768,\n\t\"./lb\": 4016,\n\t\"./lb.js\": 4016,\n\t\"./lo\": 3169,\n\t\"./lo.js\": 3169,\n\t\"./lt\": 2353,\n\t\"./lt.js\": 2353,\n\t\"./lv\": 3243,\n\t\"./lv.js\": 3243,\n\t\"./me\": 2338,\n\t\"./me.js\": 2338,\n\t\"./mi\": 5555,\n\t\"./mi.js\": 5555,\n\t\"./mk\": 5794,\n\t\"./mk.js\": 5794,\n\t\"./ml\": 3151,\n\t\"./ml.js\": 3151,\n\t\"./mn\": 6458,\n\t\"./mn.js\": 6458,\n\t\"./mr\": 9165,\n\t\"./mr.js\": 9165,\n\t\"./ms\": 8680,\n\t\"./ms-my\": 7477,\n\t\"./ms-my.js\": 7477,\n\t\"./ms.js\": 8680,\n\t\"./mt\": 9684,\n\t\"./mt.js\": 9684,\n\t\"./my\": 285,\n\t\"./my.js\": 285,\n\t\"./nb\": 5922,\n\t\"./nb.js\": 5922,\n\t\"./ne\": 9040,\n\t\"./ne.js\": 9040,\n\t\"./nl\": 5066,\n\t\"./nl-be\": 4460,\n\t\"./nl-be.js\": 4460,\n\t\"./nl.js\": 5066,\n\t\"./nn\": 3693,\n\t\"./nn.js\": 3693,\n\t\"./oc-lnc\": 8676,\n\t\"./oc-lnc.js\": 8676,\n\t\"./pa-in\": 2341,\n\t\"./pa-in.js\": 2341,\n\t\"./pl\": 7416,\n\t\"./pl.js\": 7416,\n\t\"./pt\": 4344,\n\t\"./pt-br\": 113,\n\t\"./pt-br.js\": 113,\n\t\"./pt.js\": 4344,\n\t\"./ro\": 2643,\n\t\"./ro.js\": 2643,\n\t\"./ru\": 1305,\n\t\"./ru.js\": 1305,\n\t\"./sd\": 6095,\n\t\"./sd.js\": 6095,\n\t\"./se\": 4486,\n\t\"./se.js\": 4486,\n\t\"./si\": 8742,\n\t\"./si.js\": 8742,\n\t\"./sk\": 6722,\n\t\"./sk.js\": 6722,\n\t\"./sl\": 3345,\n\t\"./sl.js\": 3345,\n\t\"./sq\": 2416,\n\t\"./sq.js\": 2416,\n\t\"./sr\": 9450,\n\t\"./sr-cyrl\": 501,\n\t\"./sr-cyrl.js\": 501,\n\t\"./sr.js\": 9450,\n\t\"./ss\": 2222,\n\t\"./ss.js\": 2222,\n\t\"./sv\": 9454,\n\t\"./sv.js\": 9454,\n\t\"./sw\": 9638,\n\t\"./sw.js\": 9638,\n\t\"./ta\": 6494,\n\t\"./ta.js\": 6494,\n\t\"./te\": 4435,\n\t\"./te.js\": 4435,\n\t\"./tet\": 5003,\n\t\"./tet.js\": 5003,\n\t\"./tg\": 3706,\n\t\"./tg.js\": 3706,\n\t\"./th\": 6025,\n\t\"./th.js\": 6025,\n\t\"./tk\": 9780,\n\t\"./tk.js\": 9780,\n\t\"./tl-ph\": 2068,\n\t\"./tl-ph.js\": 2068,\n\t\"./tlh\": 9167,\n\t\"./tlh.js\": 9167,\n\t\"./tr\": 2494,\n\t\"./tr.js\": 2494,\n\t\"./tzl\": 8707,\n\t\"./tzl.js\": 8707,\n\t\"./tzm\": 1296,\n\t\"./tzm-latn\": 4532,\n\t\"./tzm-latn.js\": 4532,\n\t\"./tzm.js\": 1296,\n\t\"./ug-cn\": 2086,\n\t\"./ug-cn.js\": 2086,\n\t\"./uk\": 5069,\n\t\"./uk.js\": 5069,\n\t\"./ur\": 9304,\n\t\"./ur.js\": 9304,\n\t\"./uz\": 5115,\n\t\"./uz-latn\": 7609,\n\t\"./uz-latn.js\": 7609,\n\t\"./uz.js\": 5115,\n\t\"./vi\": 4802,\n\t\"./vi.js\": 4802,\n\t\"./x-pseudo\": 5605,\n\t\"./x-pseudo.js\": 5605,\n\t\"./yo\": 8456,\n\t\"./yo.js\": 8456,\n\t\"./zh-cn\": 3272,\n\t\"./zh-cn.js\": 3272,\n\t\"./zh-hk\": 9402,\n\t\"./zh-hk.js\": 9402,\n\t\"./zh-mo\": 8101,\n\t\"./zh-mo.js\": 8101,\n\t\"./zh-tw\": 262,\n\t\"./zh-tw.js\": 262\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;"],"names":["Configuration","ApiModule","forRoot","configurationFactory","ngModule","providers","provide","useFactory","constructor","parentModule","http","Error","_","i0","ɵɵinject","i1","HttpClient","_2","_3","ApiKeyManagerService","CertificateTypesService","CertificatesV2Service","CourseMetasService","DataTransferService","ExternalBadgingService","PublicService","RulesEngineService","StatsService","TemplatesService","UALoginService","UserMigrationService","APIS","HttpHeaders","CustomHttpParameterCodec","BASE_PATH","httpClient","basePath","configuration","defaultHeaders","encoder","addToHttpParams","httpParams","value","key","Date","addToHttpParamsRecursive","Array","isArray","forEach","elem","append","toISOString","substr","Object","keys","k","apiV2ApiKeyManagerAuthkeyPost","stringStringKeyValuePair","observe","reportProgress","options","headers","apiKeys","set","httpHeaderAcceptSelected","httpHeaderAccept","undefined","httpHeaderAccepts","selectHeaderAccept","consumes","httpContentTypeSelected","selectHeaderContentType","responseType","startsWith","post","withCredentials","apiV2ApiKeyManagerGet","get","apiV2ApiKeyManagerIdGet","id","encodeURIComponent","String","apiV2ApiKeyManagerIdPut","apiKey","put","apiV2ApiKeyManagerPost","apiV2ApiKeyManagerRolesGet","i2","factory","ɵfac","providedIn","apiV2TypesGet","apiV2TypesIdGet","apiV2TypesIdPut","metadata","apiV2TypesPost","HttpParams","apiV2CertificatesAdvancedsearchPost","startDate","endDate","requestBody","queryParameters","params","apiV2CertificatesAwardByCoursePost","awardDetails","apiV2CertificatesCertNumberGet","certNumber","apiV2CertificatesCertNumberQueuePost","eventType","parentCertNumber","apiV2CertificatesCertNumberRowIdPut","rowId","certificateBasic","apiV2CertificatesCreateBackdatedPost","backdatedCertificate","apiV2CertificatesGroupedUaidGet","uaid","apiV2CertificatesMergeSourceUaIdDestUaIdPut","sourceUaId","destUaId","apiV2CertificatesRelatedUaidCertNumberGet","apiV2CertificatesRenderRowIdFormatGet","format","apiV2CertificatesRenewPost","renewCertificate","apiV2CertificatesRenewablesUaidGet","apiV2CertificatesSearchPost","userSearch","apiV2CertificatesUsersUaIdGet","uaId","certificates","apiV2CoursemetasGet","apiV2CoursemetasIdGet","apiV2CoursemetasIdPut","courseMeta","apiV2CoursemetasPost","apiV2CoursemetasPreviewPost","apiV2DatatransferCopyCoursePost","isConfirm","apiV2DatatransferCopyKeysPost","apiV2DatatransferCopyTemplatesPost","apiV2DatatransferCopyTypesPost","apiV2DatatransferDumpDataPost","dataCopyModel","apiV2DatatransferGetenvironmentGet","apiV2ExternalbadgingCourseMetaIdGet","courseMetaId","apiV2ExternalbadgingPost","externalCredential","apiV2PCertificatesSearchPost","publicSearch","apiV2RulesEngineFieldsGet","apiV2RulesEngineIdDelete","delete","apiV2RulesEngineIdGet","apiV2RulesEngineIdPut","metaTypeRule","apiV2RulesEnginePost","apiV2RulesEngineTypeIdGet","apiV2StatsAuditExtBadgingGet","apiV2StatsAuditGet","apiV2StatsCertificateStatsItemItemIdGet","item","itemId","apiV2StatsGet","apiV2StatsJobsGet","apiV2StatsStatsExtBadgingGet","apiV2TemplatesFieldsModeGet","mode","apiV2TemplatesGet","apiV2TemplatesIdGet","apiV2TemplatesIdJpgGet","apiV2TemplatesIdPut","certificateTemplate","apiV2TemplatesPost","apiV2TemplatesPreviewPost","certificateTemplateStringObjectDictionaryTuple","apiV2UALoginPost","permissions","apiV2UsersUaIdCertNumberRowIdPost","apiV2UsersUaIdCertNumberRowIdRefreshPost","apiV2UsersUaIdGet","apiV2UsersUaIdPost","apiV2UsersUaIdRefreshPost","NavigationStart","NavigationEnd","AppComponent","router","buConfigService","title","showLoadingSpinner","events","subscribe","re","getBuConfig","BUData","loadJS","jsElm","document","createElement","type","src","js","body","appendChild","ɵɵdirectiveInject","Router","BuConfigService","selectors","decls","vars","template","AppComponent_Template","rf","ctx","ɵɵelement","HTTP_INTERCEPTORS","HttpClientModule","BrowserModule","BrowserAnimationsModule","AuthService","LoadNotificationInterceptor","LoadNotificationService","AppRoutingModule","HeaderComponent","LoadNotificationComponent","NgbModule","FormsModule","ReactiveFormsModule","HomeComponent","LoginComponent","StatsComponent","ToastNotificationComponent","ToastNotificationService","SharedModule","CacheInterceptor","CacheMapService","NgxPermissionsModule","CookieService","UserService","CustomHeader","apiConfigFactory","AppModule","bootstrap","useClass","multi","Cache","imports","declarations","RouterModule","routes","path","component","pathMatch","loadChildren","then","m","MetaItemsModule","AwardsModule","AdminModule","exports","configurationParameters","username","password","accessToken","contentTypes","length","find","x","isJsonMime","accepts","mime","jsonMime","RegExp","test","toLowerCase","BehaviorSubject","currentKey","asObservable","getKey","next","hasApiKey","getValue","getApiKey","setApiKey","val","console","log","setKey","window","sessionStorage","getItem","setItem","removeItem","DOCUMENT","uaJson","buConfig","location","hostname","jsonData","default","uaData","filter","BUURL","y","MAX_CACHE_AGE","cacheMap","Map","req","entry","urlWithParams","isExpired","now","entryTime","response","res","includes","url","deleteExpiredCache","invalidateCache","clear","HttpResponse","of","tap","CACHEABLES","cache","intercept","isCacheable","isRequestCachable","method","handle","cachedResponse","pipe","event","element","indexOf","userName","modifiedReq","clone","finalize","loaderService","totalRequests","show","hide","err","status","navigate","Subject","isLoading","toasts","showSuccess","textOrTpl","push","header","classname","delay","showError","showWarning","showResult","error","text","join","remove","toast","t","jwt_decode","cookieService","loggedIn","token","getUaTokenFromCache","decodeJwtToken","cookieValue","decoded","getUserData","jwtToken","userId","httpOptions","apiURL","xsrfToken","logout","returnUrl","qPram","encodeURI","serviceURL","href","i3","encodeKey","encodeValue","v","decodeKey","decodeURIComponent","decodeValue","ngOnInit","consts","HomeComponent_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","$","route","renderer2","userService","toastService","uaLoginService","authService","customError","nonAdAccount","subs","ngAfterViewChecked","html","addClass","removeClass","loginBtn","getElementById","button","setAttribute","buttonText","createText","existingNode","querySelector","parentNode","insertBefore","nextSibling","listen","doLogin","on","txt","tmpUsername","tmpPassword","isUALoginReq","click","disabled","loginBtn1","setTimeout","ngAfterViewInit","loadLoginWidget","uaLog","casURL","buName","buDomain","div","nativeElement","uaLogin","addEventListener","data","userData","setToken","messages","uaUser","ngOnDestroy","s","unsubscribe","ActivatedRoute","Renderer2","i4","i5","i6","i7","viewQuery","LoginComponent_Query","ɵɵtemplate","LoginComponent_h6_7_Template","ɵɵadvance","ɵɵtextInterpolate1","ɵɵproperty","CertificateStatusCodeEnum","Valid","Deactivated","Revoked","Expired","Cancelled","Duplicate","Pending","Types","Publisher","Consumer","CertificateStatusBadgeComponent","getBadgeStyle","inputs","CertificateStatusBadgeComponent_Template","ɵɵclassMap","ɵɵtextInterpolate","item_r2","ctx_r1","CertificateStatusDropdownComponent","currentStatus","change","getStatusList","isNaN","setStatus","name","outputs","CertificateStatusDropdownComponent_Template","ɵɵlistener","CertificateStatusDropdownComponent_Template_select_change_0_listener","ɵɵrestoreView","_r3","_r0","ɵɵreference","ɵɵresetView","CertificateStatusDropdownComponent_option_2_Template","moment","ctx_r3","course","brightlinkCredentialTypeSlug","CourseCardComponent_div_0_div_4_li_23_Template","ɵɵtextInterpolate2","secondaryTypes","lmsItem","courseId","getLmsName","source","duration","getDurationtype","durationType","ɵɵpropertyInterpolate1","ctx_r4","ceu","ɵɵpipeBind1","ctx_r7","issuedDate","ctx_r8","getExpireDate","CourseCardComponent_div_0_div_5_span_25_Template","CourseCardComponent_div_0_div_5_i_26_Template","CourseCardComponent_div_0_div_5_label_27_Template","CourseCardComponent_div_0_div_5_li_28_Template","CourseCardComponent_div_0_div_5_li_29_Template","ctx_r2","certificateStatusOnAward","earn","getImageUrl","templateId","ɵɵsanitizeUrl","CourseCardComponent_div_0_div_4_Template","CourseCardComponent_div_0_div_5_Template","ctx_r0","details","CourseCardComponent","utc","expAdd","issued","add","CourseCardComponent_Template","CourseCardComponent_div_0_Template","Validators","FormControl","ɵɵpureFunction1","_c0","sub_r9","ɵɵelementContainerStart","HeaderComponent_ul_7_li_1_ng_container_4_a_1_Template","ɵɵelementContainerEnd","showMenu","HeaderComponent_ul_7_li_1_ng_container_4_Template","menu_r6","subMenu","HeaderComponent_ul_7_li_1_Template","ɵɵpureFunction0","_c1","_c2","HeaderComponent_a_30_Template_a_click_0_listener","restoredCtx","_r16","kv_r13","$implicit","ctx_r15","ɵɵnextContext","loadStyle","HeaderComponent_a_30_i_2_Template","currentStyle","HeaderComponent_ng_template_31_a_21_Template_a_click_0_listener","_r21","modal_r17","ctx_r19","closeModal","_c3","HeaderComponent_ng_template_31_Template_a_click_3_listener","_r23","ctx_r22","HeaderComponent_ng_template_31_Template_form_ngSubmit_7_listener","ctx_r24","editForm","valid","onSubmit","HeaderComponent_ng_template_31_Template_button_click_18_listener","ctx_r25","onClear","HeaderComponent_ng_template_31_a_21_Template","HeaderComponent_ng_template_31_Template_button_click_23_listener","ctx_r26","ctx_r5","isBULoginReq","formBuilder","modalService","apiKeyService","rolesService","ngxpcs","themeDic","superUser","setKeyStyle","menus","loadMenus","selStyle","localStorage","group","authkey","required","open","content","windowClass","ariaLabelledBy","centered","modal","close","controls","setValue","dismissAll","flushRolesAndPermissions","addRoleWithPermissions","role","addPermissionStrategy","templateRef","elementRef","previousElementSibling","removeAttribute","styleName","head","getElementsByTagName","themeLink","style","rel","FormBuilder","NgbModal","NgxRolesService","NgxPermissionsConfigurationService","i8","i9","HeaderComponent_Template","HeaderComponent_ul_7_Template","HeaderComponent_Template_a_click_10_listener","_r27","_r4","HeaderComponent_a_18_Template","HeaderComponent_a_19_Template","HeaderComponent_a_30_Template","HeaderComponent_ng_template_31_Template","ɵɵtemplateRefExtractor","_c4","mainMenu","LoadNotificationComponent_Template","LoadNotificationComponent_div_0_Template","map","startWith","MetaCourseSelectorComponent_div_8_Template_div_click_0_listener","item_r1","setSelectedCourse","ɵɵpureFunction2","lmsItemId","activityName","activityId","MetaCourseSelectorComponent","cmApi","activeRte","courses","filteredCourses","currentCourse","selected","filterForm","isActive","a","lmsItems","l","c","valueChanges","search","results","cm","term","transform","subTitle","notes","LowerCasePipe","MetaCourseSelectorComponent_Template","MetaCourseSelectorComponent_div_8_Template","MetaTemplateSelectorComponent_div_8_Template_div_click_0_listener","setSelectedTemplate","tags","toString","MetaTemplateSelectorComponent","apiTemplates","auth","currentType","templates","pt","cert","templateColl","MetaTemplateSelectorComponent_Template","MetaTemplateSelectorComponent_div_8_Template","MetaTypeSelectorComponent_div_8_Template_div_click_0_listener","_r7","ctx_r6","setSelectedType","MetaTypeSelectorComponent_div_8_ng_container_6_Template","MetaTypeSelectorComponent_div_8_ng_template_7_Template","renderTemplateId","MetaTypeSelectorComponent","csApiTypes","metaTypeList","typesLoaded","metaTypes","typeId","filteredTypes","MetaTypeSelectorComponent_Template","MetaTypeSelectorComponent_div_8_Template","CommonModule","TemplateCardComponent","GetLmsName_SH","setTemplate","slice","TemplateCardComponent_Template","TemplateRef","ToastNotificationComponent_ngb_toast_0_ng_template_1_ng_template_0_Template","toast_r1","ɵɵsanitizeHtml","ToastNotificationComponent_ngb_toast_0_Template_ngb_toast_hide_0_listener","_r9","ToastNotificationComponent_ngb_toast_0_ng_template_1_Template","ToastNotificationComponent_ngb_toast_0_ng_template_2_Template","isTemplate","hostVars","hostBindings","ToastNotificationComponent_HostBindings","ToastNotificationComponent_ngb_toast_0_Template","item_r12","jobs","updateStatus","bulkUpdateSize","frequency","ctx_r9","migrateToUserSnapshot","item_r13","StatsComponent_ng_template_10_ng_container_53_li_1_Template","ctx_r11","stats","docGen","host","StatsComponent_ng_template_10_li_25_Template","StatsComponent_ng_template_10_ng_template_30_Template","StatsComponent_ng_template_10_div_39_Template","StatsComponent_ng_template_10_div_46_Template","StatsComponent_ng_template_10_ng_container_53_Template","StatsComponent_ng_template_10_li_64_Template","totalCertificates","totalCertificateTypes","totalUserInfoSnapshot","totalCourses","countByStatus","enabled","_r6","kafka","topics","ua","useInternal","rulesEngine","apiHook","useKafka","kafkaEndpoint","badgingOptions","brightlinkIntegration","event_r17","StatsComponent_ng_template_14_tr_12_div_9_Template","date","apiKeyName","message","StatsComponent_ng_template_14_tr_12_Template","auditEvents","event_r22","StatsComponent_li_15_ng_template_3_tr_12_div_9_Template","StatsComponent_li_15_ng_template_3_tr_12_Template","ctx_r20","badgingAuditEvents","StatsComponent_li_15_ng_template_3_Template","item_r27","StatsComponent_li_16_ng_template_3_ng_container_23_li_1_Template","StatsComponent_li_16_ng_template_3_ng_container_23_Template","badgingStats","totalExternalCredentialsAssociated","totalExternalCredentialsAwarded","badgeVendorApi","StatsComponent_li_16_ng_template_3_Template","statsApi","activeTab","loadData","StatsComponent_Template","StatsComponent_Template_button_click_2_listener","StatsComponent_Template_ul_activeIdChange_5_listener","$event","StatsComponent_ng_template_10_Template","StatsComponent_ng_template_14_Template","StatsComponent_li_15_Template","StatsComponent_li_16_Template","InjectionToken","COLLECTION_FORMATS","environment","production","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[163]}