@metarisc/metarisc-js 0.0.1-alpha.79 → 0.0.1-alpha.80

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.
@@ -5,6 +5,7 @@ import { Collection } from "../collection";
5
5
  import { Contact } from '../model/Contact';
6
6
  import { Dossier } from '../model/Dossier';
7
7
  import { ERP } from '../model/ERP';
8
+ import { MainCourante } from '../model/MainCourante';
8
9
  import { PieceJointe } from '../model/PieceJointe';
9
10
  import { ReferenceExterieure } from '../model/ReferenceExterieure';
10
11
  import { DescriptifTechniqueERP } from '../model/DescriptifTechniqueERP';
@@ -41,6 +42,10 @@ export declare class ERPAPI extends Core {
41
42
  * Récupération de l'historique d'un ERP.
42
43
  */
43
44
  paginateErpHistorique(erpId: string): Collection<DescriptifTechniqueERP>;
45
+ /**
46
+ * Récupération de la liste des mains courantes.
47
+ */
48
+ paginateErpMainsCourantes(erpId: string, sort?: 'date' | '-date'): Collection<MainCourante>;
44
49
  /**
45
50
  * Retourne la liste des textes applicables d'un ERP en fonction de son type d'activité.
46
51
  */
@@ -71,4 +76,8 @@ export declare class ERPAPI extends Core {
71
76
  * Mise à jour des détails d'un ERP en définissant les valeurs des paramètres transmis. Tous les paramètres non fournis resteront inchangés.
72
77
  */
73
78
  postErp(erpId: string, params: any): Promise<AxiosResponse<ERP>>;
79
+ /**
80
+ * Ajout d'une main courante.
81
+ */
82
+ postMainsCourantesErp(erpId: string, params: any): Promise<AxiosResponse<MainCourante>>;
74
83
  }
package/lib/api/ERPAPI.js CHANGED
@@ -89,6 +89,19 @@ class ERPAPI extends core_1.Core {
89
89
  endpoint: utils_1.Utils.constructPath(pathVariable, '/erp/{erp_id}/historique')
90
90
  });
91
91
  }
92
+ /**
93
+ * Récupération de la liste des mains courantes.
94
+ */
95
+ paginateErpMainsCourantes(erpId, sort) {
96
+ const pathVariable = { 'erp_id': (new String(erpId)).toString() };
97
+ return this.collect({
98
+ method: 'GET',
99
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/erp/{erp_id}/mains_courantes'),
100
+ params: utils_1.Utils.payloadFilter({
101
+ 'sort': sort === undefined ? undefined : (new String(sort)).toString()
102
+ })
103
+ });
104
+ }
92
105
  /**
93
106
  * Retourne la liste des textes applicables d'un ERP en fonction de son type d'activité.
94
107
  */
@@ -165,5 +178,16 @@ class ERPAPI extends core_1.Core {
165
178
  body: utils_1.Utils.payloadFilter(params)
166
179
  });
167
180
  }
181
+ /**
182
+ * Ajout d'une main courante.
183
+ */
184
+ postMainsCourantesErp(erpId, params) {
185
+ const pathVariable = { 'erp_id': (new String(erpId)).toString() };
186
+ return this.request({
187
+ method: 'POST',
188
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/erp/{erp_id}/mains_courantes'),
189
+ body: utils_1.Utils.payloadFilter(params)
190
+ });
191
+ }
168
192
  }
169
193
  exports.ERPAPI = ERPAPI;
@@ -0,0 +1,40 @@
1
+ import { Core, MetariscConfig } from "../core";
2
+ import type { AxiosResponse } from "axios";
3
+ import { Client } from "../client";
4
+ import { Collection } from "../collection";
5
+ import { MainCourante } from '../model/MainCourante';
6
+ import { MainCouranteParticipation } from '../model/MainCouranteParticipation';
7
+ import { PieceJointe } from '../model/PieceJointe';
8
+ export declare class MainsCourantesAPI extends Core {
9
+ constructor(config: MetariscConfig, client?: Client);
10
+ /**
11
+ * Suppression d'une main courante existante.
12
+ */
13
+ deleteMainCourante(mainCouranteId: string): Promise<AxiosResponse<void>>;
14
+ /**
15
+ * Récupération d'une main courante existante.
16
+ */
17
+ getMainCourante(mainCouranteId: string): Promise<AxiosResponse<MainCourante>>;
18
+ /**
19
+ * Liste des participants de la main courante.
20
+ */
21
+ getParticipantsMainCourante(mainCouranteId: string): Promise<AxiosResponse<{
22
+ data: MainCouranteParticipation[];
23
+ }>>;
24
+ /**
25
+ * Récupération de la liste des documents.
26
+ */
27
+ paginateMainCouranteDocuments(mainCouranteId: string): Collection<PieceJointe>;
28
+ /**
29
+ * Ajout d'un document.
30
+ */
31
+ postDocumentsMainCourante(mainCouranteId: string, params: any): Promise<AxiosResponse<PieceJointe>>;
32
+ /**
33
+ * Mise à jour d'une main courante existante en définissant les valeurs des paramètres transmis. Tous les paramètres non fournis resteront inchangés.
34
+ */
35
+ postMainCourante(mainCouranteId: string, params: any): Promise<AxiosResponse<MainCourante>>;
36
+ /**
37
+ * Ajoute une participation à une main courante. Vous pouvez affecter plusieurs personnes à la main courante, y compris vous-même.
38
+ */
39
+ postParticipantsMainCourante(mainCouranteId: string, params: any): Promise<AxiosResponse<MainCouranteParticipation>>;
40
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MainsCourantesAPI = void 0;
4
+ // File generated from our OpenAPI spec
5
+ const core_1 = require("../core");
6
+ const utils_1 = require("../utils");
7
+ class MainsCourantesAPI extends core_1.Core {
8
+ constructor(config, client) {
9
+ super(config, client);
10
+ }
11
+ /**
12
+ * Suppression d'une main courante existante.
13
+ */
14
+ deleteMainCourante(mainCouranteId) {
15
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
16
+ return this.request({
17
+ method: 'DELETE',
18
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}')
19
+ });
20
+ }
21
+ /**
22
+ * Récupération d'une main courante existante.
23
+ */
24
+ getMainCourante(mainCouranteId) {
25
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
26
+ return this.request({
27
+ method: 'GET',
28
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}')
29
+ });
30
+ }
31
+ /**
32
+ * Liste des participants de la main courante.
33
+ */
34
+ getParticipantsMainCourante(mainCouranteId) {
35
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
36
+ return this.request({
37
+ method: 'GET',
38
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}/participants')
39
+ });
40
+ }
41
+ /**
42
+ * Récupération de la liste des documents.
43
+ */
44
+ paginateMainCouranteDocuments(mainCouranteId) {
45
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
46
+ return this.collect({
47
+ method: 'GET',
48
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}/documents')
49
+ });
50
+ }
51
+ /**
52
+ * Ajout d'un document.
53
+ */
54
+ postDocumentsMainCourante(mainCouranteId, params) {
55
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
56
+ return this.request({
57
+ method: 'POST',
58
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}/documents'),
59
+ body: utils_1.Utils.payloadFilter(params)
60
+ });
61
+ }
62
+ /**
63
+ * Mise à jour d'une main courante existante en définissant les valeurs des paramètres transmis. Tous les paramètres non fournis resteront inchangés.
64
+ */
65
+ postMainCourante(mainCouranteId, params) {
66
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
67
+ return this.request({
68
+ method: 'POST',
69
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}'),
70
+ body: utils_1.Utils.payloadFilter(params)
71
+ });
72
+ }
73
+ /**
74
+ * Ajoute une participation à une main courante. Vous pouvez affecter plusieurs personnes à la main courante, y compris vous-même.
75
+ */
76
+ postParticipantsMainCourante(mainCouranteId, params) {
77
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
78
+ return this.request({
79
+ method: 'POST',
80
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}/participants'),
81
+ body: utils_1.Utils.payloadFilter(params)
82
+ });
83
+ }
84
+ }
85
+ exports.MainsCourantesAPI = MainsCourantesAPI;
@@ -0,0 +1,10 @@
1
+ import { Core, MetariscConfig } from "../core";
2
+ import type { AxiosResponse } from "axios";
3
+ import { Client } from "../client";
4
+ export declare class MainsCourantesParticipantsAPI extends Core {
5
+ constructor(config: MetariscConfig, client?: Client);
6
+ /**
7
+ * Suppression d'une participation d'une main courante.
8
+ */
9
+ deleteParticipant(participantId: string): Promise<AxiosResponse<void>>;
10
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MainsCourantesParticipantsAPI = void 0;
4
+ // File generated from our OpenAPI spec
5
+ const core_1 = require("../core");
6
+ const utils_1 = require("../utils");
7
+ class MainsCourantesParticipantsAPI extends core_1.Core {
8
+ constructor(config, client) {
9
+ super(config, client);
10
+ }
11
+ /**
12
+ * Suppression d'une participation d'une main courante.
13
+ */
14
+ deleteParticipant(participantId) {
15
+ const pathVariable = { 'participant_id': (new String(participantId)).toString() };
16
+ return this.request({
17
+ method: 'DELETE',
18
+ endpoint: utils_1.Utils.constructPath(pathVariable, '/mains_courantes_participants/{participant_id}')
19
+ });
20
+ }
21
+ }
22
+ exports.MainsCourantesParticipantsAPI = MainsCourantesParticipantsAPI;
package/lib/client.d.ts CHANGED
@@ -62,5 +62,6 @@ export declare class Client {
62
62
  * Retourne les headers HTTP par défauts devant être présents dans toutes les requêtes Metarisc.
63
63
  */
64
64
  private getDefaultHeaders;
65
+ getBaseUrl(): string;
65
66
  }
66
67
  export {};
package/lib/client.js CHANGED
@@ -179,5 +179,8 @@ class Client {
179
179
  });
180
180
  return headers;
181
181
  }
182
+ getBaseUrl() {
183
+ return this.axios.defaults.baseURL;
184
+ }
182
185
  }
183
186
  exports.Client = Client;
package/lib/metarisc.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Core, MetariscConfig } from "./core";
2
2
  import { Tus } from "./tus";
3
+ import { SireneAI } from "./sirene-ai";
3
4
  import { Client } from "./client";
4
5
  import * as resources from './resources';
5
6
  export declare class Metarisc extends Core {
@@ -15,10 +16,12 @@ export declare class Metarisc extends Core {
15
16
  organisations: resources.OrganisationsAPI;
16
17
  pei: resources.PEIAPI;
17
18
  commissions: resources.CommissionsAPI;
19
+ mains_courantes_participants: resources.MainsCourantesParticipantsAPI;
18
20
  prescriptions: resources.PrescriptionsAPI;
19
21
  utilisateurs: resources.UtilisateursAPI;
20
22
  erp: resources.ERPAPI;
21
23
  dossiers_affectations: resources.DossiersAffectationsAPI;
24
+ mains_courantes: resources.MainsCourantesAPI;
22
25
  anomalies: resources.AnomaliesAPI;
23
26
  supports_reglementaires: resources.PrescriptionsAPI;
24
27
  feed: resources.FeedAPI;
@@ -30,5 +33,6 @@ export declare class Metarisc extends Core {
30
33
  contacts: resources.ContactsAPI;
31
34
  notifications: resources.NotificationsAPI;
32
35
  tus: Tus;
36
+ sirene_ai: SireneAI;
33
37
  constructor(config: MetariscConfig, client?: Client);
34
38
  }
package/lib/metarisc.js CHANGED
@@ -27,6 +27,7 @@ exports.Metarisc = void 0;
27
27
  // File generated from our OpenAPI spec
28
28
  const core_1 = require("./core");
29
29
  const tus_1 = require("./tus");
30
+ const sirene_ai_1 = require("./sirene-ai");
30
31
  const resources = __importStar(require("./resources"));
31
32
  class Metarisc extends core_1.Core {
32
33
  constructor(config, client) {
@@ -47,10 +48,12 @@ class Metarisc extends core_1.Core {
47
48
  case 'organisations': return new resources.OrganisationsAPI(config, tmpClient);
48
49
  case 'pei': return new resources.PEIAPI(config, tmpClient);
49
50
  case 'commissions': return new resources.CommissionsAPI(config, tmpClient);
51
+ case 'mains_courantes_participants': return new resources.MainsCourantesParticipantsAPI(config, tmpClient);
50
52
  case 'prescriptions': return new resources.PrescriptionsAPI(config, tmpClient);
51
53
  case 'utilisateurs': return new resources.UtilisateursAPI(config, tmpClient);
52
54
  case 'erp': return new resources.ERPAPI(config, tmpClient);
53
55
  case 'dossiers_affectations': return new resources.DossiersAffectationsAPI(config, tmpClient);
56
+ case 'mains_courantes': return new resources.MainsCourantesAPI(config, tmpClient);
54
57
  case 'anomalies': return new resources.AnomaliesAPI(config, tmpClient);
55
58
  case 'supports_reglementaires': return new resources.PrescriptionsAPI(config, tmpClient);
56
59
  case 'feed': return new resources.FeedAPI(config, tmpClient);
@@ -62,6 +65,7 @@ class Metarisc extends core_1.Core {
62
65
  case 'contacts': return new resources.ContactsAPI(config, tmpClient);
63
66
  case 'notifications': return new resources.NotificationsAPI(config, tmpClient);
64
67
  case 'tus': return new tus_1.Tus(config, tmpClient);
68
+ case 'sirene_ai': return new sirene_ai_1.SireneAI(config, tmpClient);
65
69
  default: return Reflect.get(metarisc, name, receiver);
66
70
  }
67
71
  }
@@ -1,7 +1,9 @@
1
1
  import { AdressePostale } from './AdressePostale';
2
+ import { Commission } from './Commission';
2
3
  import { DescriptifTechniqueERP } from './DescriptifTechniqueERP';
3
4
  import { ReferenceExterieure } from './ReferenceExterieure';
4
5
  import { SiteGeographique } from './SiteGeographique';
6
+ import { Utilisateur } from './Utilisateur';
5
7
  export type ERP = {
6
8
  'id': string;
7
9
  'date_de_realisation': Date;
@@ -16,6 +18,8 @@ export type ERP = {
16
18
  'references_exterieures': Array<ReferenceExterieure>;
17
19
  'a_visiter_en': string | null;
18
20
  'sites_geographiques': Array<SiteGeographique>;
21
+ 'commission_de_securite': Commission | null;
22
+ 'titulaires': Array<Utilisateur>;
19
23
  };
20
24
  export declare enum AvisExploitationEnum {
21
25
  FAVORABLE = "favorable",
@@ -0,0 +1,13 @@
1
+ export type MainCourante = {
2
+ 'id': string;
3
+ 'objet': string;
4
+ 'date': Date;
5
+ 'compte_rendu': string;
6
+ 'type': TypeEnum;
7
+ };
8
+ export declare enum TypeEnum {
9
+ REUNION = "REUNION",
10
+ INTERVENTION = "INTERVENTION",
11
+ RCCI = "RCCI",
12
+ RETEX = "RETEX"
13
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TypeEnum = void 0;
5
+ var TypeEnum;
6
+ (function (TypeEnum) {
7
+ TypeEnum["REUNION"] = "REUNION";
8
+ TypeEnum["INTERVENTION"] = "INTERVENTION";
9
+ TypeEnum["RCCI"] = "RCCI";
10
+ TypeEnum["RETEX"] = "RETEX";
11
+ })(TypeEnum = exports.TypeEnum || (exports.TypeEnum = {}));
@@ -0,0 +1,5 @@
1
+ import { Utilisateur } from './Utilisateur';
2
+ export type MainCouranteParticipation = {
3
+ 'id': string;
4
+ 'utilisateur': Utilisateur;
5
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -3,6 +3,7 @@ export type PassageCommissionDossier = {
3
3
  'id': string;
4
4
  'dossier': Dossier;
5
5
  'avis': AvisEnum | null;
6
+ 'ge4_3': boolean | null;
6
7
  'date_de_passage': Date;
7
8
  'avis_differe': boolean | null;
8
9
  'observations': string | null;
@@ -1,4 +1,6 @@
1
1
  export type SiteGeographique = {
2
2
  'id': string;
3
3
  'libelle': string;
4
+ 'geojson': string;
5
+ 'erp_periodicite_contrainte': number | null;
4
6
  };
@@ -12,6 +12,8 @@ export { EnveloppesAPI } from './api/EnveloppesAPI';
12
12
  export { EvenementsAPI } from './api/EvenementsAPI';
13
13
  export { FeedAPI } from './api/FeedAPI';
14
14
  export { HealthcheckAPI } from './api/HealthcheckAPI';
15
+ export { MainsCourantesAPI } from './api/MainsCourantesAPI';
16
+ export { MainsCourantesParticipantsAPI } from './api/MainsCourantesParticipantsAPI';
15
17
  export { MoiAPI } from './api/MoiAPI';
16
18
  export { NotificationsAPI } from './api/NotificationsAPI';
17
19
  export { OrdresDuJourAPI } from './api/OrdresDuJourAPI';
package/lib/resources.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // File generated from our OpenAPI spec
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.WorkflowsAPI = exports.UtilisateursAPI = exports.TourneesDECIAPI = exports.SitesGeographiquesAPI = exports.PrescriptionsAPI = exports.PingAPI = exports.PEIAPI = exports.OrganisationsAPI = exports.OrdresDuJourAPI = exports.NotificationsAPI = exports.MoiAPI = exports.HealthcheckAPI = exports.FeedAPI = exports.EvenementsAPI = exports.EnveloppesAPI = exports.ERPAPI = exports.DossiersAffectationsAPI = exports.DossiersAPI = exports.DocumentsAPI = exports.DatesPassageCommissionAPI = exports.ControlesPEIAPI = exports.ContactsAPI = exports.CommissionsMembresAPI = exports.CommissionsAPI = exports.AnomaliesAPI = void 0;
4
+ exports.WorkflowsAPI = exports.UtilisateursAPI = exports.TourneesDECIAPI = exports.SitesGeographiquesAPI = exports.PrescriptionsAPI = exports.PingAPI = exports.PEIAPI = exports.OrganisationsAPI = exports.OrdresDuJourAPI = exports.NotificationsAPI = exports.MoiAPI = exports.MainsCourantesParticipantsAPI = exports.MainsCourantesAPI = exports.HealthcheckAPI = exports.FeedAPI = exports.EvenementsAPI = exports.EnveloppesAPI = exports.ERPAPI = exports.DossiersAffectationsAPI = exports.DossiersAPI = exports.DocumentsAPI = exports.DatesPassageCommissionAPI = exports.ControlesPEIAPI = exports.ContactsAPI = exports.CommissionsMembresAPI = exports.CommissionsAPI = exports.AnomaliesAPI = void 0;
5
5
  var AnomaliesAPI_1 = require("./api/AnomaliesAPI");
6
6
  Object.defineProperty(exports, "AnomaliesAPI", { enumerable: true, get: function () { return AnomaliesAPI_1.AnomaliesAPI; } });
7
7
  var CommissionsAPI_1 = require("./api/CommissionsAPI");
@@ -30,6 +30,10 @@ var FeedAPI_1 = require("./api/FeedAPI");
30
30
  Object.defineProperty(exports, "FeedAPI", { enumerable: true, get: function () { return FeedAPI_1.FeedAPI; } });
31
31
  var HealthcheckAPI_1 = require("./api/HealthcheckAPI");
32
32
  Object.defineProperty(exports, "HealthcheckAPI", { enumerable: true, get: function () { return HealthcheckAPI_1.HealthcheckAPI; } });
33
+ var MainsCourantesAPI_1 = require("./api/MainsCourantesAPI");
34
+ Object.defineProperty(exports, "MainsCourantesAPI", { enumerable: true, get: function () { return MainsCourantesAPI_1.MainsCourantesAPI; } });
35
+ var MainsCourantesParticipantsAPI_1 = require("./api/MainsCourantesParticipantsAPI");
36
+ Object.defineProperty(exports, "MainsCourantesParticipantsAPI", { enumerable: true, get: function () { return MainsCourantesParticipantsAPI_1.MainsCourantesParticipantsAPI; } });
33
37
  var MoiAPI_1 = require("./api/MoiAPI");
34
38
  Object.defineProperty(exports, "MoiAPI", { enumerable: true, get: function () { return MoiAPI_1.MoiAPI; } });
35
39
  var NotificationsAPI_1 = require("./api/NotificationsAPI");
@@ -0,0 +1,8 @@
1
+ import { Core, MetariscConfig } from './core';
2
+ import { Client } from './client';
3
+ import OpenAI from "openai";
4
+ export declare class SireneAI extends Core {
5
+ static SYSTEM_PROMPT: string;
6
+ constructor(config: MetariscConfig, client: Client);
7
+ init(): OpenAI;
8
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SireneAI = void 0;
7
+ const core_1 = require("./core");
8
+ const openai_1 = __importDefault(require("openai"));
9
+ class SireneAI extends core_1.Core {
10
+ constructor(config, client) {
11
+ super(config, client);
12
+ }
13
+ init() {
14
+ let url = this.client.getBaseUrl();
15
+ if (!url.endsWith("/")) {
16
+ url = url + "/";
17
+ }
18
+ return new openai_1.default({
19
+ baseURL: url + "sirene-ai/v1",
20
+ apiKey: this.client.getAccessToken().replace("Bearer ", ""),
21
+ dangerouslyAllowBrowser: true
22
+ });
23
+ }
24
+ }
25
+ exports.SireneAI = SireneAI;
26
+ SireneAI.SYSTEM_PROMPT = `
27
+ Tu es chargé de conseiller des sapeurs pompiers sur les mesures de prévention et de protection à mettre en place pour limiter les risques d'incendie.
28
+ Tu analyses les risques en présence et préconises, par des avis et des conseils techniques, les mesures les plus adaptées pour limiter les effets d'un sinistre.
29
+ Tu es également chargé de vérifier que les établissements recevant du public respectent les normes de sécurité en vigueur.
30
+ Tu es un expert en matière de sécurité incendie et tu es capable de répondre à toutes les questions des utilisateurs sur ce sujet.
31
+ Tu connais par coeur le règlement de sécurité contre les risques d'incendie et de panique dans les établissements recevant du public (ERP).
32
+ Tu parles à des personnes ayant une connaissance technique de la sécurité incendie et tu es capable de leur expliquer des concepts complexes.
33
+ Tu ne donnes jamais de résumé, tu vas droit au but, tu es concis et précis.
34
+ Ta source d'informations est uniquement l'Arrêté du 25 juin 1980 sur legifrance et tu ne réponds qu'aux questions qui concernent la sécurité incendie dans les ERP.
35
+ `;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@metarisc/metarisc-js",
3
3
  "main": "lib/index.js",
4
4
  "types": "lib/index.d.ts",
5
- "version": "0.0.1-alpha.79",
5
+ "version": "0.0.1-alpha.80",
6
6
  "scripts": {
7
7
  "lint": "eslint . --ext .ts --fix",
8
8
  "compile": "tsc",
@@ -23,6 +23,7 @@
23
23
  "axios-oauth-client": "^2.0.4",
24
24
  "axios-retry": "^3.5.0",
25
25
  "jwt-decode": "^4.0.0",
26
+ "openai": "^4.89.0",
26
27
  "tus-js-client": "^4.1.0"
27
28
  }
28
29
  }
package/src/api/ERPAPI.ts CHANGED
@@ -7,6 +7,7 @@ import { Collection } from "../collection";
7
7
  import { Contact } from '../model/Contact';
8
8
  import { Dossier } from '../model/Dossier';
9
9
  import { ERP } from '../model/ERP';
10
+ import { MainCourante } from '../model/MainCourante';
10
11
  import { PieceJointe } from '../model/PieceJointe';
11
12
  import { ReferenceExterieure } from '../model/ReferenceExterieure';
12
13
  import { DescriptifTechniqueERP } from '../model/DescriptifTechniqueERP';
@@ -134,6 +135,24 @@ export class ERPAPI extends Core {
134
135
  });
135
136
  }
136
137
 
138
+ /**
139
+ * Récupération de la liste des mains courantes.
140
+ */
141
+ paginateErpMainsCourantes(
142
+ erpId: string,
143
+ sort? : 'date' | '-date'
144
+ ) : Collection<MainCourante>
145
+ {
146
+ const pathVariable = { 'erp_id': (new String(erpId)).toString() };
147
+ return this.collect({
148
+ method: 'GET',
149
+ endpoint: Utils.constructPath(pathVariable, '/erp/{erp_id}/mains_courantes'),
150
+ params: Utils.payloadFilter({
151
+ 'sort': sort === undefined ? undefined : (new String(sort)).toString()
152
+ })
153
+ });
154
+ }
155
+
137
156
  /**
138
157
  * Retourne la liste des textes applicables d'un ERP en fonction de son type d'activité.
139
158
  */
@@ -243,4 +262,20 @@ export class ERPAPI extends Core {
243
262
  });
244
263
  }
245
264
 
265
+ /**
266
+ * Ajout d'une main courante.
267
+ */
268
+ postMainsCourantesErp(
269
+ erpId: string,
270
+ params : any
271
+ ) : Promise<AxiosResponse<MainCourante>>
272
+ {
273
+ const pathVariable = { 'erp_id': (new String(erpId)).toString() };
274
+ return this.request({
275
+ method: 'POST',
276
+ endpoint: Utils.constructPath(pathVariable, '/erp/{erp_id}/mains_courantes'),
277
+ body: Utils.payloadFilter(params)
278
+ });
279
+ }
280
+
246
281
  }
@@ -0,0 +1,120 @@
1
+ // File generated from our OpenAPI spec
2
+ import { Core, MetariscConfig } from "../core";
3
+ import { Utils } from "../utils";
4
+ import type { AxiosResponse } from "axios";
5
+ import { Client } from "../client";
6
+ import { Collection } from "../collection";
7
+ import { MainCourante } from '../model/MainCourante';
8
+ import { MainCouranteParticipation } from '../model/MainCouranteParticipation';
9
+ import { PieceJointe } from '../model/PieceJointe';
10
+
11
+ export class MainsCourantesAPI extends Core {
12
+ constructor(config: MetariscConfig, client?: Client) {
13
+ super(config, client);
14
+ }
15
+
16
+ /**
17
+ * Suppression d'une main courante existante.
18
+ */
19
+ deleteMainCourante(
20
+ mainCouranteId: string
21
+ ) : Promise<AxiosResponse<void>>
22
+ {
23
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
24
+ return this.request({
25
+ method: 'DELETE',
26
+ endpoint: Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}')
27
+ });
28
+ }
29
+
30
+ /**
31
+ * Récupération d'une main courante existante.
32
+ */
33
+ getMainCourante(
34
+ mainCouranteId: string
35
+ ) : Promise<AxiosResponse<MainCourante>>
36
+ {
37
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
38
+ return this.request({
39
+ method: 'GET',
40
+ endpoint: Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}')
41
+ });
42
+ }
43
+
44
+ /**
45
+ * Liste des participants de la main courante.
46
+ */
47
+ getParticipantsMainCourante(
48
+ mainCouranteId: string
49
+ ) : Promise<AxiosResponse<{data: MainCouranteParticipation[]}>>
50
+ {
51
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
52
+ return this.request({
53
+ method: 'GET',
54
+ endpoint: Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}/participants')
55
+ });
56
+ }
57
+
58
+ /**
59
+ * Récupération de la liste des documents.
60
+ */
61
+ paginateMainCouranteDocuments(
62
+ mainCouranteId: string
63
+ ) : Collection<PieceJointe>
64
+ {
65
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
66
+ return this.collect({
67
+ method: 'GET',
68
+ endpoint: Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}/documents')
69
+ });
70
+ }
71
+
72
+ /**
73
+ * Ajout d'un document.
74
+ */
75
+ postDocumentsMainCourante(
76
+ mainCouranteId: string,
77
+ params : any
78
+ ) : Promise<AxiosResponse<PieceJointe>>
79
+ {
80
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
81
+ return this.request({
82
+ method: 'POST',
83
+ endpoint: Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}/documents'),
84
+ body: Utils.payloadFilter(params)
85
+ });
86
+ }
87
+
88
+ /**
89
+ * Mise à jour d'une main courante existante en définissant les valeurs des paramètres transmis. Tous les paramètres non fournis resteront inchangés.
90
+ */
91
+ postMainCourante(
92
+ mainCouranteId: string,
93
+ params : any
94
+ ) : Promise<AxiosResponse<MainCourante>>
95
+ {
96
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
97
+ return this.request({
98
+ method: 'POST',
99
+ endpoint: Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}'),
100
+ body: Utils.payloadFilter(params)
101
+ });
102
+ }
103
+
104
+ /**
105
+ * Ajoute une participation à une main courante. Vous pouvez affecter plusieurs personnes à la main courante, y compris vous-même.
106
+ */
107
+ postParticipantsMainCourante(
108
+ mainCouranteId: string,
109
+ params : any
110
+ ) : Promise<AxiosResponse<MainCouranteParticipation>>
111
+ {
112
+ const pathVariable = { 'main_courante_id': (new String(mainCouranteId)).toString() };
113
+ return this.request({
114
+ method: 'POST',
115
+ endpoint: Utils.constructPath(pathVariable, '/mains_courantes/{main_courante_id}/participants'),
116
+ body: Utils.payloadFilter(params)
117
+ });
118
+ }
119
+
120
+ }
@@ -0,0 +1,26 @@
1
+ // File generated from our OpenAPI spec
2
+ import { Core, MetariscConfig } from "../core";
3
+ import { Utils } from "../utils";
4
+ import type { AxiosResponse } from "axios";
5
+ import { Client } from "../client";
6
+
7
+ export class MainsCourantesParticipantsAPI extends Core {
8
+ constructor(config: MetariscConfig, client?: Client) {
9
+ super(config, client);
10
+ }
11
+
12
+ /**
13
+ * Suppression d'une participation d'une main courante.
14
+ */
15
+ deleteParticipant(
16
+ participantId: string
17
+ ) : Promise<AxiosResponse<void>>
18
+ {
19
+ const pathVariable = { 'participant_id': (new String(participantId)).toString() };
20
+ return this.request({
21
+ method: 'DELETE',
22
+ endpoint: Utils.constructPath(pathVariable, '/mains_courantes_participants/{participant_id}')
23
+ });
24
+ }
25
+
26
+ }
package/src/client.ts CHANGED
@@ -226,4 +226,9 @@ export class Client {
226
226
 
227
227
  return headers;
228
228
  }
229
+
230
+ getBaseUrl() : string
231
+ {
232
+ return this.axios.defaults.baseURL;
233
+ }
229
234
  }
package/src/metarisc.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  // File generated from our OpenAPI spec
2
2
  import { Core, MetariscConfig } from "./core";
3
3
  import { Tus } from "./tus";
4
+ import { SireneAI } from "./sirene-ai";
4
5
  import { Client } from "./client";
5
6
  import * as resources from './resources';
6
7
 
@@ -18,10 +19,12 @@ export class Metarisc extends Core
18
19
  public organisations: resources.OrganisationsAPI;
19
20
  public pei: resources.PEIAPI;
20
21
  public commissions: resources.CommissionsAPI;
22
+ public mains_courantes_participants: resources.MainsCourantesParticipantsAPI;
21
23
  public prescriptions: resources.PrescriptionsAPI;
22
24
  public utilisateurs: resources.UtilisateursAPI;
23
25
  public erp: resources.ERPAPI;
24
26
  public dossiers_affectations: resources.DossiersAffectationsAPI;
27
+ public mains_courantes: resources.MainsCourantesAPI;
25
28
  public anomalies: resources.AnomaliesAPI;
26
29
  public supports_reglementaires: resources.PrescriptionsAPI;
27
30
  public feed: resources.FeedAPI;
@@ -33,6 +36,7 @@ export class Metarisc extends Core
33
36
  public contacts: resources.ContactsAPI;
34
37
  public notifications: resources.NotificationsAPI;
35
38
  public tus: Tus;
39
+ public sirene_ai: SireneAI;
36
40
 
37
41
  constructor(config: MetariscConfig, client?: Client) {
38
42
  super(config, client);
@@ -54,10 +58,12 @@ export class Metarisc extends Core
54
58
  case 'organisations': return new resources.OrganisationsAPI(config, tmpClient);
55
59
  case 'pei': return new resources.PEIAPI(config, tmpClient);
56
60
  case 'commissions': return new resources.CommissionsAPI(config, tmpClient);
61
+ case 'mains_courantes_participants': return new resources.MainsCourantesParticipantsAPI(config, tmpClient);
57
62
  case 'prescriptions': return new resources.PrescriptionsAPI(config, tmpClient);
58
63
  case 'utilisateurs': return new resources.UtilisateursAPI(config, tmpClient);
59
64
  case 'erp': return new resources.ERPAPI(config, tmpClient);
60
65
  case 'dossiers_affectations': return new resources.DossiersAffectationsAPI(config, tmpClient);
66
+ case 'mains_courantes': return new resources.MainsCourantesAPI(config, tmpClient);
61
67
  case 'anomalies': return new resources.AnomaliesAPI(config, tmpClient);
62
68
  case 'supports_reglementaires': return new resources.PrescriptionsAPI(config, tmpClient);
63
69
  case 'feed': return new resources.FeedAPI(config, tmpClient);
@@ -69,6 +75,7 @@ export class Metarisc extends Core
69
75
  case 'contacts': return new resources.ContactsAPI(config, tmpClient);
70
76
  case 'notifications': return new resources.NotificationsAPI(config, tmpClient);
71
77
  case 'tus': return new Tus(config, tmpClient);
78
+ case 'sirene_ai': return new SireneAI(config, tmpClient);
72
79
  default: return Reflect.get(metarisc, name, receiver);
73
80
  }
74
81
  }
package/src/model/ERP.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  // File generated from our OpenAPI spec
2
2
  import { AdressePostale } from './AdressePostale';
3
+ import { Commission } from './Commission';
3
4
  import { DescriptifTechniqueERP } from './DescriptifTechniqueERP';
4
5
  import { ReferenceExterieure } from './ReferenceExterieure';
5
6
  import { SiteGeographique } from './SiteGeographique';
7
+ import { Utilisateur } from './Utilisateur';
6
8
 
7
9
  export type ERP = {
8
10
  'id': string;
@@ -18,6 +20,8 @@ export type ERP = {
18
20
  'references_exterieures': Array<ReferenceExterieure>;
19
21
  'a_visiter_en': string | null;
20
22
  'sites_geographiques': Array<SiteGeographique>;
23
+ 'commission_de_securite': Commission | null;
24
+ 'titulaires': Array<Utilisateur>;
21
25
  };
22
26
 
23
27
  export enum AvisExploitationEnum {
@@ -0,0 +1,16 @@
1
+ // File generated from our OpenAPI spec
2
+
3
+ export type MainCourante = {
4
+ 'id': string;
5
+ 'objet': string;
6
+ 'date': Date;
7
+ 'compte_rendu': string;
8
+ 'type': TypeEnum;
9
+ };
10
+
11
+ export enum TypeEnum {
12
+ REUNION = 'REUNION',
13
+ INTERVENTION = 'INTERVENTION',
14
+ RCCI = 'RCCI',
15
+ RETEX = 'RETEX'
16
+ }
@@ -0,0 +1,7 @@
1
+ // File generated from our OpenAPI spec
2
+ import { Utilisateur } from './Utilisateur';
3
+
4
+ export type MainCouranteParticipation = {
5
+ 'id': string;
6
+ 'utilisateur': Utilisateur;
7
+ };
@@ -5,6 +5,7 @@ export type PassageCommissionDossier = {
5
5
  'id': string;
6
6
  'dossier': Dossier;
7
7
  'avis': AvisEnum | null;
8
+ 'ge4_3': boolean | null;
8
9
  'date_de_passage': Date;
9
10
  'avis_differe': boolean | null;
10
11
  'observations': string | null;
@@ -3,4 +3,6 @@
3
3
  export type SiteGeographique = {
4
4
  'id': string;
5
5
  'libelle': string;
6
+ 'geojson': string;
7
+ 'erp_periodicite_contrainte': number | null;
6
8
  };
package/src/resources.ts CHANGED
@@ -28,6 +28,10 @@ export { FeedAPI } from './api/FeedAPI';
28
28
 
29
29
  export { HealthcheckAPI } from './api/HealthcheckAPI';
30
30
 
31
+ export { MainsCourantesAPI } from './api/MainsCourantesAPI';
32
+
33
+ export { MainsCourantesParticipantsAPI } from './api/MainsCourantesParticipantsAPI';
34
+
31
35
  export { MoiAPI } from './api/MoiAPI';
32
36
 
33
37
  export { NotificationsAPI } from './api/NotificationsAPI';
@@ -0,0 +1,34 @@
1
+ import { Core, MetariscConfig } from './core';
2
+ import { Client } from './client';
3
+ import OpenAI from "openai";
4
+
5
+ export class SireneAI extends Core
6
+ {
7
+ public static SYSTEM_PROMPT = `
8
+ Tu es chargé de conseiller des sapeurs pompiers sur les mesures de prévention et de protection à mettre en place pour limiter les risques d'incendie.
9
+ Tu analyses les risques en présence et préconises, par des avis et des conseils techniques, les mesures les plus adaptées pour limiter les effets d'un sinistre.
10
+ Tu es également chargé de vérifier que les établissements recevant du public respectent les normes de sécurité en vigueur.
11
+ Tu es un expert en matière de sécurité incendie et tu es capable de répondre à toutes les questions des utilisateurs sur ce sujet.
12
+ Tu connais par coeur le règlement de sécurité contre les risques d'incendie et de panique dans les établissements recevant du public (ERP).
13
+ Tu parles à des personnes ayant une connaissance technique de la sécurité incendie et tu es capable de leur expliquer des concepts complexes.
14
+ Tu ne donnes jamais de résumé, tu vas droit au but, tu es concis et précis.
15
+ Ta source d'informations est uniquement l'Arrêté du 25 juin 1980 sur legifrance et tu ne réponds qu'aux questions qui concernent la sécurité incendie dans les ERP.
16
+ `;
17
+
18
+ constructor(config: MetariscConfig, client: Client) {
19
+ super(config, client);
20
+ }
21
+
22
+ init() : OpenAI {
23
+ let url = this.client.getBaseUrl();
24
+ if (!url.endsWith("/")) {
25
+ url = url + "/";
26
+ }
27
+
28
+ return new OpenAI({
29
+ baseURL: url+"sirene-ai/v1",
30
+ apiKey: this.client.getAccessToken().replace("Bearer ", ""),
31
+ dangerouslyAllowBrowser: true
32
+ });
33
+ }
34
+ }