@metarisc/metarisc-js 0.0.1-alpha.69 → 0.0.1-alpha.70
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.
- package/lib/api/CommissionsAPI.d.ts +2 -2
- package/lib/client.d.ts +6 -0
- package/lib/client.js +13 -1
- package/lib/core.d.ts +1 -6
- package/lib/core.js +2 -11
- package/lib/utils.d.ts +3 -1
- package/lib/utils.js +10 -1
- package/package.json +1 -1
- package/src/api/CommissionsAPI.ts +1 -1
- package/src/client.ts +17 -0
- package/src/core.ts +2 -14
- package/src/utils.ts +10 -1
|
@@ -49,8 +49,8 @@ export declare class CommissionsAPI extends Core {
|
|
|
49
49
|
* Ajout d'un membre dans la commission.
|
|
50
50
|
*/
|
|
51
51
|
postMembresCommission(commissionId: string, params: {
|
|
52
|
-
titre
|
|
53
|
-
presenceObligatoire
|
|
52
|
+
titre: string;
|
|
53
|
+
presenceObligatoire: boolean;
|
|
54
54
|
}): Promise<AxiosResponse<CommissionMembre>>;
|
|
55
55
|
/**
|
|
56
56
|
* Mise à jour des préférences de la commission.
|
package/lib/client.d.ts
CHANGED
|
@@ -16,7 +16,11 @@ export declare enum AuthMethod {
|
|
|
16
16
|
CLIENT_CREDENTIALS = 0,
|
|
17
17
|
AUTHORIZATION_CODE = 1
|
|
18
18
|
}
|
|
19
|
+
export declare enum EventEnum {
|
|
20
|
+
request = "request"
|
|
21
|
+
}
|
|
19
22
|
export declare class Client {
|
|
23
|
+
private eventStream;
|
|
20
24
|
private axios;
|
|
21
25
|
private oauth2;
|
|
22
26
|
private access_token?;
|
|
@@ -29,6 +33,8 @@ export declare class Client {
|
|
|
29
33
|
* Lance une requête (authentifiée si possible) sur l'API Metarisc.
|
|
30
34
|
*/
|
|
31
35
|
request<T>(config: RequestConfig): Promise<AxiosResponse<T>>;
|
|
36
|
+
protected emit(eventName: EventEnum, payload: unknown): void;
|
|
37
|
+
getEventStream(): EventTarget;
|
|
32
38
|
/**
|
|
33
39
|
* Définition de l'Access Token
|
|
34
40
|
*/
|
package/lib/client.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Client = exports.AuthMethod = void 0;
|
|
6
|
+
exports.Client = exports.EventEnum = exports.AuthMethod = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const axios_retry_1 = __importDefault(require("axios-retry"));
|
|
9
9
|
const oauth2_1 = require("./auth/oauth2");
|
|
@@ -15,8 +15,13 @@ var AuthMethod;
|
|
|
15
15
|
AuthMethod[AuthMethod["CLIENT_CREDENTIALS"] = 0] = "CLIENT_CREDENTIALS";
|
|
16
16
|
AuthMethod[AuthMethod["AUTHORIZATION_CODE"] = 1] = "AUTHORIZATION_CODE";
|
|
17
17
|
})(AuthMethod = exports.AuthMethod || (exports.AuthMethod = {}));
|
|
18
|
+
var EventEnum;
|
|
19
|
+
(function (EventEnum) {
|
|
20
|
+
EventEnum["request"] = "request";
|
|
21
|
+
})(EventEnum = exports.EventEnum || (exports.EventEnum = {}));
|
|
18
22
|
class Client {
|
|
19
23
|
constructor(config) {
|
|
24
|
+
this.eventStream = new EventTarget();
|
|
20
25
|
// Paramétrage OAuth2
|
|
21
26
|
this.oauth2 = new oauth2_1.OAuth2({
|
|
22
27
|
client_id: config.client_id,
|
|
@@ -106,6 +111,7 @@ class Client {
|
|
|
106
111
|
* Lance une requête (authentifiée si possible) sur l'API Metarisc.
|
|
107
112
|
*/
|
|
108
113
|
async request(config) {
|
|
114
|
+
this.emit(EventEnum.request, config);
|
|
109
115
|
return this.axios.request({
|
|
110
116
|
method: config.method || "GET",
|
|
111
117
|
url: config.endpoint || "/",
|
|
@@ -114,6 +120,12 @@ class Client {
|
|
|
114
120
|
headers: config.headers
|
|
115
121
|
});
|
|
116
122
|
}
|
|
123
|
+
emit(eventName, payload) {
|
|
124
|
+
this.eventStream.dispatchEvent(new CustomEvent(eventName, { detail: payload }));
|
|
125
|
+
}
|
|
126
|
+
getEventStream() {
|
|
127
|
+
return this.eventStream;
|
|
128
|
+
}
|
|
117
129
|
/**
|
|
118
130
|
* Définition de l'Access Token
|
|
119
131
|
*/
|
package/lib/core.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AxiosResponse } from "axios";
|
|
2
|
-
import { AuthMethod, Client } from "./client";
|
|
2
|
+
import { AuthMethod, Client, EventEnum } from "./client";
|
|
3
3
|
import { Collection } from "./collection";
|
|
4
4
|
import { GrantResponse, RefreshResponse } from "./auth/oauth2";
|
|
5
5
|
interface RequestConfig {
|
|
@@ -29,10 +29,8 @@ export interface OAuth2Options {
|
|
|
29
29
|
export declare class Core {
|
|
30
30
|
protected client: Client;
|
|
31
31
|
protected config: MetariscConfig;
|
|
32
|
-
protected requestEvent: EventTarget;
|
|
33
32
|
constructor(config: MetariscConfig, client?: Client);
|
|
34
33
|
request<T>(config: RequestConfig): Promise<AxiosResponse<T>>;
|
|
35
|
-
protected emit(eventName: EventEnum, payload: unknown): void;
|
|
36
34
|
on(eventName: EventEnum, callback: (event: Event) => void): void;
|
|
37
35
|
collect<T>(config: RequestConfig): Collection<T>;
|
|
38
36
|
authenticate(auth_method: AuthMethod, options: OAuth2Options): Promise<GrantResponse>;
|
|
@@ -41,7 +39,4 @@ export declare class Core {
|
|
|
41
39
|
setRefreshToken(refresh_token: string): void;
|
|
42
40
|
setActiveOrganisation(orgId: string): void;
|
|
43
41
|
}
|
|
44
|
-
export declare enum EventEnum {
|
|
45
|
-
request = "request"
|
|
46
|
-
}
|
|
47
42
|
export {};
|
package/lib/core.js
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.Core = void 0;
|
|
4
4
|
const client_1 = require("./client");
|
|
5
5
|
const collection_1 = require("./collection");
|
|
6
6
|
class Core {
|
|
7
7
|
constructor(config, client) {
|
|
8
|
-
this.requestEvent = new EventTarget();
|
|
9
8
|
this.config = config;
|
|
10
9
|
this.client = client ?? new client_1.Client(config);
|
|
11
10
|
}
|
|
12
11
|
async request(config) {
|
|
13
|
-
this.emit(EventEnum.request, config);
|
|
14
12
|
return this.client.request(config);
|
|
15
13
|
}
|
|
16
|
-
emit(eventName, payload) {
|
|
17
|
-
this.requestEvent.dispatchEvent(new CustomEvent(eventName, { detail: payload }));
|
|
18
|
-
}
|
|
19
14
|
on(eventName, callback) {
|
|
20
|
-
this.
|
|
15
|
+
this.client.getEventStream().addEventListener(eventName, callback);
|
|
21
16
|
}
|
|
22
17
|
collect(config) {
|
|
23
18
|
return new collection_1.Collection(this, {
|
|
@@ -43,7 +38,3 @@ class Core {
|
|
|
43
38
|
}
|
|
44
39
|
}
|
|
45
40
|
exports.Core = Core;
|
|
46
|
-
var EventEnum;
|
|
47
|
-
(function (EventEnum) {
|
|
48
|
-
EventEnum["request"] = "request";
|
|
49
|
-
})(EventEnum = exports.EventEnum || (exports.EventEnum = {}));
|
package/lib/utils.d.ts
CHANGED
|
@@ -11,7 +11,9 @@ export declare class Utils {
|
|
|
11
11
|
*/
|
|
12
12
|
static formatDate(date: Date): string;
|
|
13
13
|
/**
|
|
14
|
-
* Filtre un objet pour
|
|
14
|
+
* Filtre un objet pour :
|
|
15
|
+
* - enlever tous les champs "undefined"
|
|
16
|
+
* - filtrer les dates
|
|
15
17
|
*/
|
|
16
18
|
static payloadFilter(payload: any): object;
|
|
17
19
|
}
|
package/lib/utils.js
CHANGED
|
@@ -43,10 +43,13 @@ class Utils {
|
|
|
43
43
|
new String(date.getUTCSeconds()).padStart(2, '0') + 'Z');
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
|
-
* Filtre un objet pour
|
|
46
|
+
* Filtre un objet pour :
|
|
47
|
+
* - enlever tous les champs "undefined"
|
|
48
|
+
* - filtrer les dates
|
|
47
49
|
*/
|
|
48
50
|
static payloadFilter(payload) {
|
|
49
51
|
const filtered = {};
|
|
52
|
+
// Filtre sur tous les champs "undefined"
|
|
50
53
|
Object.keys(payload).forEach((key) => {
|
|
51
54
|
if (payload[key] === Object(payload[key])) {
|
|
52
55
|
filtered[key] = Utils.payloadFilter(payload[key]);
|
|
@@ -55,6 +58,12 @@ class Utils {
|
|
|
55
58
|
filtered[key] = payload[key];
|
|
56
59
|
}
|
|
57
60
|
});
|
|
61
|
+
// Filtre sur la date
|
|
62
|
+
Object.keys(filtered).forEach((key) => {
|
|
63
|
+
if (filtered[key] instanceof Date) {
|
|
64
|
+
filtered[key] = this.formatDate(payload[key]);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
58
67
|
return filtered;
|
|
59
68
|
}
|
|
60
69
|
}
|
package/package.json
CHANGED
|
@@ -114,7 +114,7 @@ export class CommissionsAPI extends Core {
|
|
|
114
114
|
/**
|
|
115
115
|
* Ajout d'un membre dans la commission.
|
|
116
116
|
*/
|
|
117
|
-
async postMembresCommission(commissionId: string, params : { titre
|
|
117
|
+
async postMembresCommission(commissionId: string, params : { titre : string, presenceObligatoire : boolean, }): Promise<AxiosResponse<CommissionMembre>>
|
|
118
118
|
{
|
|
119
119
|
const pathVariable = { 'commission_id': (new String(commissionId)).toString() };
|
|
120
120
|
return this.request({
|
package/src/client.ts
CHANGED
|
@@ -23,7 +23,13 @@ export enum AuthMethod {
|
|
|
23
23
|
AUTHORIZATION_CODE,
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
export enum EventEnum {
|
|
27
|
+
request = "request"
|
|
28
|
+
}
|
|
29
|
+
|
|
26
30
|
export class Client {
|
|
31
|
+
private eventStream = new EventTarget();
|
|
32
|
+
|
|
27
33
|
private axios: AxiosInstance;
|
|
28
34
|
|
|
29
35
|
private oauth2: OAuth2;
|
|
@@ -133,6 +139,7 @@ export class Client {
|
|
|
133
139
|
* Lance une requête (authentifiée si possible) sur l'API Metarisc.
|
|
134
140
|
*/
|
|
135
141
|
async request<T>(config: RequestConfig): Promise<AxiosResponse<T>> {
|
|
142
|
+
this.emit(EventEnum.request, config);
|
|
136
143
|
return this.axios.request<T>({
|
|
137
144
|
method: config.method || "GET",
|
|
138
145
|
url: config.endpoint || "/",
|
|
@@ -142,6 +149,16 @@ export class Client {
|
|
|
142
149
|
});
|
|
143
150
|
}
|
|
144
151
|
|
|
152
|
+
protected emit(eventName: EventEnum, payload: unknown) {
|
|
153
|
+
this.eventStream.dispatchEvent(
|
|
154
|
+
new CustomEvent(eventName, { detail: payload })
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
public getEventStream(): EventTarget {
|
|
159
|
+
return this.eventStream;
|
|
160
|
+
}
|
|
161
|
+
|
|
145
162
|
/**
|
|
146
163
|
* Définition de l'Access Token
|
|
147
164
|
*/
|
package/src/core.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AxiosResponse } from "axios";
|
|
2
|
-
import { AuthMethod, Client } from "./client";
|
|
2
|
+
import { AuthMethod, Client, EventEnum } from "./client";
|
|
3
3
|
import { Collection } from "./collection";
|
|
4
4
|
import { GrantResponse, RefreshResponse } from "./auth/oauth2";
|
|
5
5
|
|
|
@@ -29,7 +29,6 @@ export interface OAuth2Options {
|
|
|
29
29
|
export class Core {
|
|
30
30
|
protected client: Client;
|
|
31
31
|
protected config: MetariscConfig;
|
|
32
|
-
protected requestEvent = new EventTarget();
|
|
33
32
|
|
|
34
33
|
constructor(config: MetariscConfig, client?: Client) {
|
|
35
34
|
this.config = config;
|
|
@@ -37,18 +36,11 @@ export class Core {
|
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
async request<T>(config: RequestConfig): Promise<AxiosResponse<T>> {
|
|
40
|
-
this.emit(EventEnum.request, config);
|
|
41
39
|
return this.client.request<T>(config);
|
|
42
40
|
}
|
|
43
41
|
|
|
44
|
-
protected emit(eventName: EventEnum, payload: unknown) {
|
|
45
|
-
this.requestEvent.dispatchEvent(
|
|
46
|
-
new CustomEvent(eventName, { detail: payload })
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
42
|
on(eventName: EventEnum, callback: (event: Event) => void): void {
|
|
51
|
-
this.
|
|
43
|
+
this.client.getEventStream().addEventListener(eventName, callback);
|
|
52
44
|
}
|
|
53
45
|
|
|
54
46
|
collect<T>(config: RequestConfig): Collection<T> {
|
|
@@ -82,7 +74,3 @@ export class Core {
|
|
|
82
74
|
this.client.setActiveOrganisation(orgId);
|
|
83
75
|
}
|
|
84
76
|
}
|
|
85
|
-
|
|
86
|
-
export enum EventEnum {
|
|
87
|
-
request = "request"
|
|
88
|
-
}
|
package/src/utils.ts
CHANGED
|
@@ -48,10 +48,13 @@ export class Utils {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
|
-
* Filtre un objet pour
|
|
51
|
+
* Filtre un objet pour :
|
|
52
|
+
* - enlever tous les champs "undefined"
|
|
53
|
+
* - filtrer les dates
|
|
52
54
|
*/
|
|
53
55
|
static payloadFilter(payload : any) : object {
|
|
54
56
|
const filtered : any = {};
|
|
57
|
+
// Filtre sur tous les champs "undefined"
|
|
55
58
|
Object.keys(payload).forEach((key) => {
|
|
56
59
|
if (payload[key] === Object(payload[key])) {
|
|
57
60
|
filtered[key] = Utils.payloadFilter(payload[key]);
|
|
@@ -60,6 +63,12 @@ export class Utils {
|
|
|
60
63
|
filtered[key] = payload[key];
|
|
61
64
|
}
|
|
62
65
|
});
|
|
66
|
+
// Filtre sur la date
|
|
67
|
+
Object.keys(filtered).forEach((key) => {
|
|
68
|
+
if(filtered[key] instanceof Date) {
|
|
69
|
+
filtered[key] = this.formatDate(payload[key]);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
63
72
|
return filtered;
|
|
64
73
|
}
|
|
65
74
|
}
|