@novo-learning/service-lib 1.4.0 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageCode, PublisherResponseDto } from '@novo-learning/novo-sdk';
|
|
1
|
+
import { ConfigurationDto, LanguageCode, PublisherResponseDto } from '@novo-learning/novo-sdk';
|
|
2
2
|
import { Cache } from 'cache-manager';
|
|
3
3
|
import { NovoHttpService } from '../../nest/http/http.service';
|
|
4
4
|
import { AuthService } from '../auth-api/auth.service';
|
|
@@ -15,6 +15,7 @@ export declare class PublisherService {
|
|
|
15
15
|
private readonly name;
|
|
16
16
|
private readonly token;
|
|
17
17
|
private readonly api;
|
|
18
|
+
private readonly configApi;
|
|
18
19
|
private logger;
|
|
19
20
|
private makeKey;
|
|
20
21
|
constructor(httpService: NovoHttpService, authService: AuthService, apiUrl: string, cacheManager: Cache, cacheTtl: number, name: string, token: string);
|
|
@@ -23,5 +24,9 @@ export declare class PublisherService {
|
|
|
23
24
|
error: string;
|
|
24
25
|
}>;
|
|
25
26
|
publisherAllowed(publisherId: string, languageCode: LanguageCode): Promise<boolean>;
|
|
27
|
+
private _getConfigurations;
|
|
28
|
+
getConfigurations(language: LanguageCode): Promise<ConfigurationDto[] | {
|
|
29
|
+
error: string;
|
|
30
|
+
}>;
|
|
26
31
|
private getReadonlyPublisherAccesstoken;
|
|
27
32
|
}
|
|
@@ -32,6 +32,7 @@ let PublisherService = class PublisherService {
|
|
|
32
32
|
const url = this.apiUrl.includes('://') ? this.apiUrl : `http://${this.apiUrl}`;
|
|
33
33
|
(0, axios_retry_1.default)(this.httpService.axiosRef, { retries: 3 });
|
|
34
34
|
this.api = new novo_sdk_1.PublisherApi(undefined, url, this.httpService.axiosRef);
|
|
35
|
+
this.configApi = new novo_sdk_1.ConfigurationsApi(undefined, url, this.httpService.axiosRef);
|
|
35
36
|
}
|
|
36
37
|
async _getPublisher(id) {
|
|
37
38
|
this.logger.debug('Fetching publisher ' + id);
|
|
@@ -45,6 +46,7 @@ let PublisherService = class PublisherService {
|
|
|
45
46
|
return publisher;
|
|
46
47
|
}
|
|
47
48
|
catch (err) {
|
|
49
|
+
setTimeout(() => this._getPublisher(id), 0.95 * 1000 * this.cacheTtl);
|
|
48
50
|
const message = err.response?.data?.message;
|
|
49
51
|
const error = `${PublisherService.name}: ${message || err.message || err.response?.statusText || err.code}`;
|
|
50
52
|
this.logger.error(error);
|
|
@@ -66,6 +68,32 @@ let PublisherService = class PublisherService {
|
|
|
66
68
|
}
|
|
67
69
|
return publisher.settings?.allowedLanguages.includes(languageCode) ?? true;
|
|
68
70
|
}
|
|
71
|
+
async _getConfigurations(language) {
|
|
72
|
+
this.logger.debug('Fetching configurations ' + language);
|
|
73
|
+
try {
|
|
74
|
+
const accessToken = await this.getReadonlyPublisherAccesstoken();
|
|
75
|
+
const { data: configurations } = await this.configApi.getAllConfigurations(language, {
|
|
76
|
+
headers: { Authorization: `Bearer ${accessToken}` },
|
|
77
|
+
});
|
|
78
|
+
await this.cacheManager.set('lang_' + language, configurations, { ttl: this.cacheTtl });
|
|
79
|
+
setTimeout(() => this._getConfigurations(language), 0.95 * 1000 * this.cacheTtl);
|
|
80
|
+
return configurations;
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
setTimeout(() => this._getConfigurations(language), 0.95 * 1000 * this.cacheTtl);
|
|
84
|
+
const message = err.response?.data?.message;
|
|
85
|
+
const error = `${PublisherService.name}: ${message || err.message || err.response?.statusText || err.code}`;
|
|
86
|
+
this.logger.error(error);
|
|
87
|
+
return { error };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async getConfigurations(language) {
|
|
91
|
+
const cachedConfigurations = await this.cacheManager.get('lang_' + language);
|
|
92
|
+
if (cachedConfigurations) {
|
|
93
|
+
return cachedConfigurations;
|
|
94
|
+
}
|
|
95
|
+
return this._getConfigurations(language);
|
|
96
|
+
}
|
|
69
97
|
async getReadonlyPublisherAccesstoken() {
|
|
70
98
|
const authData = await this.authService.login(this.name, this.token, [novo_sdk_1.PermissionType.publisher_read]);
|
|
71
99
|
if ('error' in authData) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.service.js","sourceRoot":"","sources":["../../../../src/modules/clients/publisher-api/publisher.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"publisher.service.js","sourceRoot":"","sources":["../../../../src/modules/clients/publisher-api/publisher.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@novo-learning/service-lib",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "Common components for Novo services",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"@nestjs/core": "^10.1.2",
|
|
42
42
|
"@nestjs/mongoose": "^10.0.1",
|
|
43
43
|
"@nestjs/passport": "^10.0.0",
|
|
44
|
-
"@novo-learning/novo-sdk": "^0.4.
|
|
44
|
+
"@novo-learning/novo-sdk": "^0.4.9",
|
|
45
45
|
"@types/validator": "^13.7.1",
|
|
46
|
-
"axios": "
|
|
46
|
+
"axios": "1.6.5",
|
|
47
47
|
"axios-retry": "^4.0.0",
|
|
48
48
|
"buffer": "^6.0.3",
|
|
49
49
|
"cache-manager": "^4.1.0",
|