@tricoteuses/senat 3.1.19 → 3.1.21

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.
Files changed (108) hide show
  1. package/LICENSE.md +32 -32
  2. package/README.md +326 -326
  3. package/lib/src/other_types/collaborateurs.d.ts +5 -0
  4. package/lib/src/other_types/manifest.d.ts +11 -0
  5. package/lib/src/parsers/collaborateurs.d.ts +44 -0
  6. package/lib/src/parsers/collaborateurs.js +157 -0
  7. package/lib/src/scripts/retrieve_agenda.js +38 -4
  8. package/lib/src/scripts/retrieve_collaborateurs.js +166 -0
  9. package/lib/src/scripts/retrieve_videos.js +5 -1
  10. package/lib/src/scripts/shared/incremental_import_sql.js +859 -859
  11. package/lib/src/scripts/shared/schema_version.js +84 -84
  12. package/lib/src/scripts/shared/staging_metadata_sql.js +214 -214
  13. package/lib/src/scripts/validate_prefixed_tables.js +12 -12
  14. package/lib/src/server/ameli.js +11 -11
  15. package/lib/src/server/conversion_textes.js +106 -106
  16. package/lib/src/server/debats.js +10 -10
  17. package/lib/src/server/documents.js +22 -22
  18. package/lib/src/server/dosleg.js +33 -33
  19. package/lib/src/server/questions.js +10 -10
  20. package/lib/src/server/scrutins.js +3 -3
  21. package/lib/src/server/sens.js +19 -19
  22. package/lib/src/utils/manifest.d.ts +6 -0
  23. package/lib/src/utils/manifest.js +37 -0
  24. package/lib/src/utils/reunion_deletion.d.ts +2 -0
  25. package/lib/src/utils/reunion_deletion.js +27 -0
  26. package/lib/src/videos/match.js +4 -4
  27. package/lib/tests/collaborateurs.test.js +115 -0
  28. package/package.json +117 -117
  29. package/lib/src/config.d.ts +0 -21
  30. package/lib/src/config.js +0 -27
  31. package/lib/src/conversion_textes.d.ts +0 -11
  32. package/lib/src/conversion_textes.js +0 -316
  33. package/lib/src/databases.d.ts +0 -2
  34. package/lib/src/databases.js +0 -26
  35. package/lib/src/datasets.d.ts +0 -34
  36. package/lib/src/datasets.js +0 -233
  37. package/lib/src/git.d.ts +0 -26
  38. package/lib/src/git.js +0 -217
  39. package/lib/src/loaders.d.ts +0 -52
  40. package/lib/src/loaders.js +0 -254
  41. package/lib/src/model/agenda.d.ts +0 -6
  42. package/lib/src/model/agenda.js +0 -148
  43. package/lib/src/model/ameli.d.ts +0 -55
  44. package/lib/src/model/ameli.js +0 -148
  45. package/lib/src/model/commission.d.ts +0 -18
  46. package/lib/src/model/commission.js +0 -269
  47. package/lib/src/model/debats.d.ts +0 -67
  48. package/lib/src/model/debats.js +0 -95
  49. package/lib/src/model/documents.d.ts +0 -12
  50. package/lib/src/model/documents.js +0 -141
  51. package/lib/src/model/dosleg.d.ts +0 -7
  52. package/lib/src/model/dosleg.js +0 -326
  53. package/lib/src/model/index.d.ts +0 -7
  54. package/lib/src/model/index.js +0 -7
  55. package/lib/src/model/questions.d.ts +0 -45
  56. package/lib/src/model/questions.js +0 -89
  57. package/lib/src/model/scrutins.d.ts +0 -13
  58. package/lib/src/model/scrutins.js +0 -114
  59. package/lib/src/model/seance.d.ts +0 -3
  60. package/lib/src/model/seance.js +0 -267
  61. package/lib/src/model/sens.d.ts +0 -182
  62. package/lib/src/model/sens.js +0 -485
  63. package/lib/src/model/util.d.ts +0 -9
  64. package/lib/src/model/util.js +0 -38
  65. package/lib/src/raw_types/ameli.d.ts +0 -914
  66. package/lib/src/raw_types/ameli.js +0 -5
  67. package/lib/src/raw_types/debats.d.ts +0 -207
  68. package/lib/src/raw_types/debats.js +0 -5
  69. package/lib/src/raw_types/dosleg.d.ts +0 -1619
  70. package/lib/src/raw_types/dosleg.js +0 -5
  71. package/lib/src/raw_types/questions.d.ts +0 -423
  72. package/lib/src/raw_types/questions.js +0 -5
  73. package/lib/src/raw_types/senat.d.ts +0 -11372
  74. package/lib/src/raw_types/senat.js +0 -5
  75. package/lib/src/raw_types/sens.d.ts +0 -8248
  76. package/lib/src/raw_types/sens.js +0 -5
  77. package/lib/src/raw_types_schemats/ameli.d.ts +0 -539
  78. package/lib/src/raw_types_schemats/ameli.js +0 -2
  79. package/lib/src/raw_types_schemats/debats.d.ts +0 -127
  80. package/lib/src/raw_types_schemats/debats.js +0 -2
  81. package/lib/src/raw_types_schemats/dosleg.d.ts +0 -977
  82. package/lib/src/raw_types_schemats/dosleg.js +0 -2
  83. package/lib/src/raw_types_schemats/questions.d.ts +0 -237
  84. package/lib/src/raw_types_schemats/questions.js +0 -2
  85. package/lib/src/raw_types_schemats/sens.d.ts +0 -6915
  86. package/lib/src/raw_types_schemats/sens.js +0 -2
  87. package/lib/src/scripts/test_iter_load.js +0 -12
  88. package/lib/src/types/agenda.d.ts +0 -45
  89. package/lib/src/types/ameli.d.ts +0 -5
  90. package/lib/src/types/compte_rendu.d.ts +0 -83
  91. package/lib/src/types/debats.d.ts +0 -2
  92. package/lib/src/types/debats.js +0 -1
  93. package/lib/src/types/dosleg.d.ts +0 -70
  94. package/lib/src/types/dosleg.js +0 -1
  95. package/lib/src/types/questions.d.ts +0 -2
  96. package/lib/src/types/questions.js +0 -1
  97. package/lib/src/types/sens.d.ts +0 -10
  98. package/lib/src/types/sens.js +0 -1
  99. package/lib/src/types/sessions.d.ts +0 -6
  100. package/lib/src/types/sessions.js +0 -19
  101. package/lib/src/types/texte.d.ts +0 -72
  102. package/lib/src/types/texte.js +0 -15
  103. package/lib/src/validators/config.d.ts +0 -9
  104. package/lib/src/validators/config.js +0 -10
  105. /package/lib/src/{scripts/test_iter_load.d.ts → other_types/collaborateurs.js} +0 -0
  106. /package/lib/src/{types/agenda.js → other_types/manifest.js} +0 -0
  107. /package/lib/src/{types/ameli.js → scripts/retrieve_collaborateurs.d.ts} +0 -0
  108. /package/lib/{src/types/compte_rendu.js → tests/collaborateurs.test.d.ts} +0 -0
@@ -1,485 +0,0 @@
1
- import { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/postgres";
2
- import { dbSenat } from "../databases";
3
- import { concat, nullIf, rtrim, toDateString } from "./util";
4
- function circonscription(dptNum) {
5
- return jsonObjectFrom(dbSenat
6
- .withSchema("sens")
7
- .selectFrom("dpt")
8
- .leftJoin("reg", "dpt.regcod", "reg.regcod")
9
- .where("dpt.dptnum", "=", dptNum)
10
- .select(["dpt.dptcod as code", "dpt.dptlib as libelle_departement", "reg.reglib as libelle_region"]));
11
- }
12
- function textes(actId) {
13
- return jsonArrayFrom(dbSenat
14
- .withSchema("sens")
15
- .selectFrom("activite_loi")
16
- .where("actid", "=", actId)
17
- .select(({ ref }) => [rtrim(ref("loicod")).as("loicod")]));
18
- }
19
- function delegations(actId) {
20
- return jsonArrayFrom(dbSenat.withSchema("sens").selectFrom("activite_delegation").where("actid", "=", actId).orderBy("delegidx", "asc"));
21
- }
22
- function activites(senMat) {
23
- return jsonArrayFrom(dbSenat
24
- .withSchema("sens")
25
- .selectFrom("activite")
26
- .leftJoin("activite_participant", "activite.actid", "activite_participant.actid")
27
- .leftJoin("type_activite", "activite.typactcod", "type_activite.typactcod")
28
- .leftJoin("categorie_activite", "activite.catactcod", "categorie_activite.catactcod")
29
- .where("activite_participant.senmat", "=", senMat)
30
- .select(({ ref }) => [
31
- delegations(ref("activite.actid")).as("delegations"),
32
- textes(ref("activite.actid")).as("textes"),
33
- ])
34
- .orderBy("activite.datdeb", "desc"));
35
- }
36
- function activitesPerso(senMat) {
37
- return jsonArrayFrom(dbSenat
38
- .withSchema("sens")
39
- .selectFrom("activite_senateur")
40
- .leftJoin("type_activite_senateur", "activite_senateur.typactsencod", "type_activite_senateur.typactsencod")
41
- .where("activite_senateur.senmat", "=", senMat)
42
- .orderBy("activite_senateur.datdeb", "desc"));
43
- }
44
- function fonctionsBureau(senMat) {
45
- return jsonArrayFrom(dbSenat
46
- .withSchema("sens")
47
- .selectFrom("senbur")
48
- .leftJoin("bur", "senbur.burcod", "bur.burcod")
49
- .where("senbur.senmat", "=", senMat)
50
- .select(({ eb, ref }) => [
51
- toDateString(ref("senbur.senburdatdeb")).as("date_debut"),
52
- toDateString(ref("senbur.senburdatfin")).as("date_fin"),
53
- eb.fn.coalesce(nullIf(ref("bur.burlib")), nullIf(ref("bur.burlil")), nullIf(ref("bur.burlic"))).as("libelle"),
54
- ])
55
- .orderBy("senbur.senburdatdeb", "desc"));
56
- }
57
- function mandatsEluConseillerGeneral(senMat) {
58
- return jsonArrayFrom(dbSenat
59
- .withSchema("sens")
60
- .selectFrom("elucan")
61
- .leftJoin("typman", "elucan.typmancod", "typman.typmancod")
62
- .where("elucan.senmat", "=", senMat)
63
- .select(({ ref }) => [circonscription(ref("elucan.dptnum").$notNull()).as("circonscription")])
64
- .orderBy("elucan.eludatdeb", "desc"));
65
- }
66
- function mandatsEluDepute(senMat) {
67
- return jsonArrayFrom(dbSenat
68
- .withSchema("sens")
69
- .selectFrom("eludep")
70
- .leftJoin("typman", "eludep.typmancod", "typman.typmancod")
71
- .where("eludep.senmat", "=", senMat)
72
- .select(({ ref }) => [circonscription(ref("eludep.circo").$notNull()).as("circonscription")])
73
- .orderBy("eludep.eludatdeb", "desc"));
74
- }
75
- function mandatsEluDivers(senMat) {
76
- return jsonArrayFrom(dbSenat
77
- .withSchema("sens")
78
- .selectFrom("eludiv")
79
- .leftJoin("typman", "eludiv.typmancod", "typman.typmancod")
80
- .where("eludiv.senmat", "=", senMat)
81
- .orderBy("eludiv.eludatdeb", "desc"));
82
- }
83
- function mandatsEluEuropeen(senMat) {
84
- return jsonArrayFrom(dbSenat
85
- .withSchema("sens")
86
- .selectFrom("elueur")
87
- .leftJoin("nation", "elueur.nationcod", "nation.nationcod")
88
- .leftJoin("typman", "elueur.typmancod", "typman.typmancod")
89
- .where("elueur.senmat", "=", senMat)
90
- .orderBy("elueur.eludatdeb", "desc"));
91
- }
92
- function mandatsEluConseillerRegional(senMat) {
93
- return jsonArrayFrom(dbSenat
94
- .withSchema("sens")
95
- .selectFrom("elureg")
96
- .leftJoin("reg", "elureg.regcod", "reg.regcod")
97
- .leftJoin("typman", "elureg.typmancod", "typman.typmancod")
98
- .where("elureg.senmat", "=", senMat)
99
- .orderBy("elureg.eludatdeb", "desc"));
100
- }
101
- function mandatsEluSenateur(senMat) {
102
- return jsonArrayFrom(dbSenat
103
- .withSchema("sens")
104
- .selectFrom("elusen")
105
- .leftJoin("etadebman", "elusen.etadebmancod", "etadebman.etadebmancod")
106
- .leftJoin("etafinman", "elusen.etafinmancod", "etafinman.etafinmancod")
107
- .leftJoin("typman", "elusen.typmancod", "typman.typmancod")
108
- .where("elusen.senmat", "=", senMat)
109
- .select(({ ref }) => [
110
- "elusen.dptnum as code_circonscription",
111
- toDateString(ref("elusen.eludatdeb")).as("date_debut"),
112
- toDateString(ref("elusen.eludatfin")).as("date_fin"),
113
- "elusen.temvalcod as etat",
114
- "etadebman.etadebmanlib as etat_debut",
115
- "etafinman.etafinman as etat_fin",
116
- ])
117
- .orderBy("elusen.eludatdeb", "desc"));
118
- }
119
- function mandatsEluTerritorial(senMat) {
120
- return jsonArrayFrom(dbSenat
121
- .withSchema("sens")
122
- .selectFrom("eluter")
123
- .leftJoin("asster", "eluter.asstercod", "asster.asstercod")
124
- .leftJoin("typman", "eluter.typmancod", "typman.typmancod")
125
- .where("eluter.senmat", "=", senMat)
126
- .orderBy("eluter.eludatdeb", "desc"));
127
- }
128
- function mandatsEluConseillerMunicipal(senMat) {
129
- return jsonArrayFrom(dbSenat
130
- .withSchema("sens")
131
- .selectFrom("eluvil")
132
- .leftJoin("typman", "eluvil.typmancod", "typman.typmancod")
133
- .where("eluvil.senmat", "=", senMat)
134
- .orderBy("eluvil.eludatdeb", "desc"));
135
- }
136
- function fonctionsMembreCommission(memComId) {
137
- return jsonArrayFrom(dbSenat
138
- .withSchema("sens")
139
- .selectFrom("fonmemcom")
140
- .leftJoin("foncom", "fonmemcom.foncomcod", "foncom.foncomcod")
141
- .where("fonmemcom.memcomid", "=", memComId)
142
- .select(({ eb, ref }) => [
143
- toDateString(ref("fonmemcom.fonmemcomdatdeb")).as("date_debut"),
144
- toDateString(ref("fonmemcom.fonmemcomdatfin")).as("date_fin"),
145
- eb.fn
146
- .coalesce(nullIf(ref("foncom.foncomlib")), nullIf(ref("foncom.foncomlil")), nullIf(ref("foncom.foncomlic")))
147
- .as("libelle"),
148
- ])
149
- .orderBy("fonmemcom.fonmemcomdatdeb", "desc"));
150
- }
151
- function mandatsMembreCommission(senMat) {
152
- return jsonArrayFrom(dbSenat
153
- .withSchema("sens")
154
- .selectFrom("memcom")
155
- .leftJoin("com", "memcom.orgcod", "com.orgcod")
156
- .leftJoin("typorg", "com.typorgcod", "typorg.typorgcod")
157
- .where("memcom.senmat", "=", senMat)
158
- .select(({ ref }) => [
159
- "com.typorgcod as type_code_organisme",
160
- "memcom.orgcod as code_organisme",
161
- "typorg.typorglib as type_organisme",
162
- "com.comlilmin as libelle",
163
- toDateString(ref("memcom.memcomdatdeb")).as("date_debut"),
164
- toDateString(ref("memcom.memcomdatfin")).as("date_fin"),
165
- "memcom.temvalcod as etat",
166
- fonctionsMembreCommission(ref("memcom.memcomid")).as("fonctions"),
167
- ])
168
- .orderBy("memcom.memcomdatdeb", "desc"));
169
- }
170
- function fonctionsMembreDelegation(memDelegaId) {
171
- return jsonArrayFrom(dbSenat
172
- .withSchema("sens")
173
- .selectFrom("fonmemdelega")
174
- .leftJoin("fondelega", "fonmemdelega.fondelcod", "fondelega.fondelcod")
175
- .where("fonmemdelega.memdelegaid", "=", memDelegaId)
176
- .select(({ eb, ref }) => [
177
- toDateString(ref("fonmemdelega.fonmemdeldatdeb")).as("date_debut"),
178
- toDateString(ref("fonmemdelega.fonmemdeldatfin")).as("date_fin"),
179
- eb.fn
180
- .coalesce(nullIf(ref("fondelega.fondellib")), nullIf(ref("fondelega.fondellil")), nullIf(ref("fondelega.fondellic")))
181
- .as("libelle"),
182
- ])
183
- .orderBy("fonmemdelega.fonmemdeldatdeb", "desc"));
184
- }
185
- function mandatsMembreDelegation(senMat) {
186
- return jsonArrayFrom(dbSenat
187
- .withSchema("sens")
188
- .selectFrom("memdelega")
189
- .leftJoin("delega", "memdelega.orgcod", "delega.orgcod")
190
- .leftJoin("designorg", "memdelega.designcod", "designorg.designcod")
191
- .leftJoin("typorg", "delega.typorgcod", "typorg.typorgcod")
192
- .where("memdelega.senmat", "=", senMat)
193
- .select(({ ref }) => [
194
- "delega.typorgcod as type_code_organisme",
195
- "memdelega.orgcod as code_organisme",
196
- "typorg.typorglib as type_organisme",
197
- "delega.evelib as libelle",
198
- toDateString(ref("memdelega.memdelegadatdeb")).as("date_debut"),
199
- toDateString(ref("memdelega.memdelegadatfin")).as("date_fin"),
200
- "memdelega.temvalcod as etat",
201
- fonctionsMembreDelegation(ref("memdelega.memdelegaid")).as("fonctions"),
202
- ])
203
- .orderBy("memdelega.memdelegadatdeb", "desc"));
204
- }
205
- function mandatsMembreExtraParlementaire(senMat) {
206
- return jsonArrayFrom(dbSenat
207
- .withSchema("sens")
208
- .selectFrom("memextpar")
209
- .leftJoin("orgext", "memextpar.orgcod", "orgext.orgcod")
210
- .leftJoin("design", "memextpar.designcod", "design.designcod")
211
- .where("memextpar.senmat", "=", senMat)
212
- .orderBy("memextpar.memextpardatdeb", "desc"));
213
- }
214
- function fonctionsMembreGroupePolitique(memGrpPolId) {
215
- return jsonArrayFrom(dbSenat
216
- .withSchema("sens")
217
- .selectFrom("fonmemgrppol")
218
- .leftJoin("fongrppol", "fonmemgrppol.fongrppolcod", "fongrppol.fongrppolcod")
219
- .where("fonmemgrppol.memgrppolid", "=", memGrpPolId)
220
- .select(({ eb, ref }) => [
221
- toDateString(ref("fonmemgrppol.fonmemgrppoldatdeb")).as("date_debut"),
222
- toDateString(ref("fonmemgrppol.fonmemgrppoldatfin")).as("date_fin"),
223
- eb.fn
224
- .coalesce(nullIf(ref("fongrppol.fongrppollib")), nullIf(ref("fongrppol.fongrppollil")), nullIf(ref("fongrppol.fongrppollic")))
225
- .as("libelle"),
226
- ])
227
- .orderBy("fonmemgrppol.fonmemgrppoldatdeb", "desc"));
228
- }
229
- function mandatsMembreGroupePolitique(senMat) {
230
- return jsonArrayFrom(dbSenat
231
- .withSchema("sens")
232
- .selectFrom("memgrppol")
233
- .leftJoin("grppol", "memgrppol.grppolcod", "grppol.grppolcod")
234
- .leftJoin("typapppol", "memgrppol.typapppolcod", "typapppol.typapppolcod")
235
- .leftJoin("typorg", "grppol.typorgcod", "typorg.typorgcod")
236
- .where("memgrppol.senmat", "=", senMat)
237
- .select(({ ref }) => [
238
- "grppol.typorgcod as type_code_organisme",
239
- "memgrppol.grppolcod as code_organisme",
240
- "typorg.typorglib as type_organisme",
241
- "grppol.grppollibcou as libelle",
242
- toDateString(ref("memgrppol.memgrppoldatdeb")).as("date_debut"),
243
- toDateString(ref("memgrppol.memgrppoldatfin")).as("date_fin"),
244
- "memgrppol.temvalcod as etat",
245
- fonctionsMembreGroupePolitique(ref("memgrppol.memgrppolid")).as("fonctions"),
246
- ])
247
- .orderBy("memgrppol.memgrppoldatdeb", "desc"));
248
- }
249
- function fonctionsMembreGroupeSenatorial(memGrpSenId) {
250
- return jsonArrayFrom(dbSenat
251
- .withSchema("sens")
252
- .selectFrom("fonmemgrpsen")
253
- .leftJoin("fongrpsen", "fonmemgrpsen.fongrpsencod", "fongrpsen.fongrpsencod")
254
- .where("fonmemgrpsen.memgrpsenid", "=", memGrpSenId)
255
- .orderBy("fonmemgrpsen.fonmemgrpsendatdeb", "desc"));
256
- }
257
- function mandatsMembreGroupeSenatorial(senMat) {
258
- return jsonArrayFrom(dbSenat
259
- .withSchema("sens")
260
- .selectFrom("memgrpsen")
261
- .leftJoin("grpsenami", "memgrpsen.orgcod", "grpsenami.orgcod")
262
- .leftJoin("typgrpsen", "grpsenami.typgrpsencod", "typgrpsen.typgrpsencod")
263
- .where("memgrpsen.senmat", "=", senMat)
264
- .select(({ ref }) => [fonctionsMembreGroupeSenatorial(ref("memgrpsen.memgrpsenid")).as("fonctions")])
265
- .orderBy("memgrpsen.memgrpsendatent", "desc"));
266
- }
267
- function fonctionsMembreOrganisme(memOrgId) {
268
- return jsonArrayFrom(dbSenat
269
- .withSchema("sens")
270
- .selectFrom("fonmemorg")
271
- .leftJoin("fonorg", "fonmemorg.fonorgcod", "fonorg.fonorgcod")
272
- .where("fonmemorg.memorgid", "=", memOrgId)
273
- .orderBy("fonmemorg.fonmemorgdatdeb", "desc"));
274
- }
275
- function mandatsMembreOrganisme(senMat) {
276
- return jsonArrayFrom(dbSenat
277
- .withSchema("sens")
278
- .selectFrom("memorg")
279
- .leftJoin("org", "memorg.orgcod", "org.orgcod")
280
- .leftJoin("typorg", "org.typorgcod", "typorg.typorgcod")
281
- .leftJoin("designorg", "memorg.designcod", "designorg.designcod")
282
- .where("memorg.senmat", "=", senMat)
283
- .select(({ ref }) => [fonctionsMembreOrganisme(ref("memorg.memorgid")).as("fonctions")])
284
- .orderBy("memorg.memorgdatdeb", "desc"));
285
- }
286
- function mandatsMinistre(senMat) {
287
- return jsonArrayFrom(dbSenat
288
- .withSchema("sens")
289
- .selectFrom("minind")
290
- .where("minind.senmat", "=", senMat)
291
- .orderBy("minind.mindatdeb", "desc"));
292
- }
293
- function adressesPoicon(poiconId) {
294
- return jsonArrayFrom(dbSenat
295
- .withSchema("sens")
296
- .selectFrom("adresse")
297
- .where("adresse.poiconid", "=", poiconId)
298
- .select([
299
- "adresse.adrnumvoi as numero_voie",
300
- "adresse.adrnomvoi as nom_voie",
301
- "adresse.adrcmp as complement",
302
- "adresse.adrcmp2 as complement2",
303
- "adresse.adrcodpos as code_postal",
304
- "adresse.adrcom as commune",
305
- "adresse.adrcdxcod as code_cedex",
306
- "adresse.adrcdxlib as libelle_cedex",
307
- "adresse.adrburdis as bureau_distributeur",
308
- ])
309
- .orderBy("adresse.adrnumtri", "asc"));
310
- }
311
- function telephonesPoicon(poiconId) {
312
- return jsonArrayFrom(dbSenat
313
- .withSchema("sens")
314
- .selectFrom("telephone")
315
- .where("telephone.poiconid", "=", poiconId)
316
- .select(["telephone.typtelcod as type", "telephone.telnum as numero"])
317
- .orderBy("telephone.telnumtri", "asc"));
318
- }
319
- function pointsContact(senMat) {
320
- return jsonArrayFrom(dbSenat
321
- .withSchema("sens")
322
- .selectFrom("poicon")
323
- .where("poicon.senmat", "=", senMat)
324
- .select(({ ref }) => [
325
- "poicon.poiconid as id",
326
- "poicon.typpoiconcod as type",
327
- "poicon.poiconlib as libelle",
328
- adressesPoicon(ref("poicon.poiconid")).as("adresses"),
329
- telephonesPoicon(ref("poicon.poiconid")).as("telephones"),
330
- ])
331
- .orderBy("poicon.poiconnumtri", "asc"));
332
- }
333
- function urls(senMat) {
334
- return jsonArrayFrom(dbSenat
335
- .withSchema("sens")
336
- .selectFrom("senurl")
337
- .where("senurl.senmat", "=", senMat)
338
- .select(["senurl.typurlcod as code_url", "senurl.senurlurl as url"])
339
- .orderBy("senurl.senurlnumtri", "asc"));
340
- }
341
- const findAllQuery = dbSenat
342
- .withSchema("sens")
343
- .selectFrom("sen")
344
- .leftJoin("etasen", "sen.etasencod", "etasen.etasencod")
345
- .leftJoin("pcs", "sen.pcscod", "pcs.pcscod")
346
- .leftJoin("pcs42", "pcs.pcs42cod", "pcs42.pcs42cod")
347
- .leftJoin("pcs24", "pcs42.pcs24cod", "pcs24.pcs24cod")
348
- .leftJoin("pcs8", "pcs24.pcs8cod", "pcs8.pcs8cod")
349
- .leftJoin("grppol", "sen.sengrppolcodcou", "grppol.grppolcod")
350
- .leftJoin("com", "sen.sencomcodcou", "com.orgcod")
351
- .select(({ ref }) => [
352
- "sen.senmat as matricule",
353
- "sen.quacod as qualite",
354
- "sen.sennomuse as nom_usuel",
355
- "sen.senprenomuse as prenom_usuel",
356
- "sen.etasencod as etat",
357
- toDateString(ref("sen.sendatnai")).as("date_naissance"),
358
- toDateString(ref("sen.sendatdec")).as("date_deces"),
359
- "sen.sengrppolcodcou as code_groupe_politique",
360
- "sen.sengrppolliccou as groupe_politique",
361
- "sen.sencomcodcou as code_commission_permanente",
362
- "com.comlilmin as commission_permanente",
363
- "sen.sencirnumcou as code_circonscription",
364
- "sen.sencircou as circonscription",
365
- "sen.senburliccou as fonction_bureau_senat",
366
- "sen.senema as courrier_electronique",
367
- "pcs.pcslil as PCS_INSEE",
368
- "pcs42.pcs42lib as PCS_INSEE_42",
369
- "pcs24.pcs24lib as PCS_INSEE_24",
370
- "pcs8.pcs8lil as PCS_INSEE_8",
371
- "sen.sendespro as description_profession",
372
- "sen.sennumsie as siege",
373
- "sen.sendaiurl as url_hatvp",
374
- urls(ref("sen.senmat")).as("urls"),
375
- mandatsEluSenateur(ref("sen.senmat")).as("mandats_senateur"),
376
- mandatsMembreCommission(ref("sen.senmat")).as("commissions"),
377
- mandatsMembreDelegation(ref("sen.senmat")).as("delegations"),
378
- mandatsMembreGroupePolitique(ref("sen.senmat")).as("groupes"),
379
- fonctionsBureau(ref("sen.senmat")).as("fonctions_bureau"),
380
- pointsContact(ref("sen.senmat")).as("points_contact"),
381
- ]);
382
- const findAllCirconscriptionsQuery = dbSenat
383
- .withSchema("sens")
384
- .selectFrom("dpt")
385
- .leftJoin("reg", "dpt.regcod", "reg.regcod")
386
- .select(({ ref }) => [
387
- "dpt.dptnum as identifiant",
388
- "dpt.dptcod as code",
389
- "dpt.dptlib as libelle_departement",
390
- "dpt.dptart as article",
391
- "reg.reglib as libelle_region",
392
- "dpt.temvalcod as etat",
393
- toDateString(ref("dpt.dptdatdeb")).as("date_debut"),
394
- toDateString(ref("dpt.dptdatfin")).as("date_fin"),
395
- "dpt.dptnbrsen as nombre_senateurs",
396
- "dpt.dpturlcmp as url",
397
- ]);
398
- const findAllOrganismesQuery = dbSenat
399
- .withSchema("sens")
400
- .selectFrom((eb) => eb
401
- .selectFrom("com")
402
- .select(["orgcod", "evelic", "evelib", "evelil", "typorgcod", "orgurlsim", "orgdatcre", "orgdatfin", "temvalcod"])
403
- .union(eb
404
- .selectFrom("delega")
405
- .select([
406
- "orgcod",
407
- "evelic",
408
- "evelib",
409
- "evelil",
410
- "typorgcod",
411
- "orgurlsim",
412
- "orgdatcre",
413
- "orgdatfin",
414
- "temvalcod",
415
- ]))
416
- .union(eb
417
- .selectFrom("grppol")
418
- .select([
419
- "grppolcod as orgcod",
420
- "grppolliccou as evelic",
421
- "grppollibcou as evelib",
422
- "grppollilcou as evelil",
423
- "typorgcod",
424
- "grppolurlsim as orgurlsim",
425
- "grppoldatcre as orgdatcre",
426
- "grppoldatfin as orgdatfin",
427
- "temvalcod",
428
- ]))
429
- .union(eb
430
- .selectFrom("grpsenami")
431
- .select([
432
- "orgcod",
433
- "evelic",
434
- "evelib",
435
- "evelil",
436
- "typorgcod",
437
- "orgurlsim",
438
- "orgdatcre",
439
- "orgdatfin",
440
- "temvalcod",
441
- ]))
442
- .union(eb
443
- .selectFrom("org")
444
- .select([
445
- "orgcod",
446
- "evelic",
447
- "evelib",
448
- "evelil",
449
- "typorgcod",
450
- "orgurlsim",
451
- "orgdatcre",
452
- "orgdatfin",
453
- "temvalcod",
454
- ]))
455
- .as("all_organismes"))
456
- .leftJoin("typorg", "all_organismes.typorgcod", "typorg.typorgcod")
457
- .select(({ ref, val }) => [
458
- "all_organismes.orgcod as code",
459
- "all_organismes.evelic as libelle_court",
460
- "all_organismes.evelib as libelle",
461
- rtrim(ref("all_organismes.evelil")).as("libelle_long"),
462
- "all_organismes.typorgcod as type_code",
463
- rtrim(ref("typorg.typorglib")).as("type_libelle"),
464
- concat(val("https://www.senat.fr"), ref("all_organismes.orgurlsim")).as("url"),
465
- toDateString(ref("all_organismes.orgdatcre")).as("date_debut"),
466
- toDateString(ref("all_organismes.orgdatfin")).as("date_fin"),
467
- "all_organismes.temvalcod as etat",
468
- ]);
469
- export function findAll() {
470
- return findAllQuery.stream();
471
- }
472
- export function findAllCirconscriptions() {
473
- return findAllCirconscriptionsQuery.stream();
474
- }
475
- export function findAllOrganismes() {
476
- return findAllOrganismesQuery.stream();
477
- }
478
- export function findActif() {
479
- return dbSenat
480
- .withSchema("sens")
481
- .selectFrom("sen")
482
- .where("etasencod", "=", "ACTIF")
483
- .select(["senmat", "sennomuse", "senprenomuse"])
484
- .stream();
485
- }
@@ -1,9 +0,0 @@
1
- import { Expression } from "kysely";
2
- export declare function concat(...exprs: Expression<number | string | null | undefined>[]): import("kysely").RawBuilder<string>;
3
- export declare function expandToRows(expr: Expression<string | null | undefined>, regexp: Expression<string>): import("kysely").RawBuilder<unknown>;
4
- export declare function nullIf(expr: Expression<number | string | null | undefined>): import("kysely").RawBuilder<unknown>;
5
- export declare function removeSubstring(expr: Expression<string | null | undefined>, pattern: Expression<string>): import("kysely").RawBuilder<string>;
6
- export declare function replace(expr: Expression<string | null | undefined>, pattern: Expression<string>, replacement: Expression<string>): import("kysely").RawBuilder<string>;
7
- export declare function rtrim(expr: Expression<string | null | undefined>): import("kysely").RawBuilder<string>;
8
- export declare function toDateString(expr: Expression<Date | null | undefined>, format?: Expression<string>): import("kysely").RawBuilder<string>;
9
- export declare function toCRDate(dateISO: string, startTime?: string | null): string;
@@ -1,38 +0,0 @@
1
- import { sql } from "kysely";
2
- import { STANDARD_DATE_FORMAT } from "../scripts/datautil";
3
- export function concat(...exprs) {
4
- return sql.join(exprs, sql `||`).$castTo();
5
- }
6
- export function expandToRows(expr, regexp) {
7
- return sql `unnest(regexp_matches(${expr}, ${regexp}, 'g'))`;
8
- }
9
- export function nullIf(expr) {
10
- return sql `nullif(trim(${expr}), '')`;
11
- }
12
- export function removeSubstring(expr, pattern) {
13
- return replace(expr, pattern, sql.val(""));
14
- }
15
- export function replace(expr, pattern, replacement) {
16
- return sql `replace(${expr}, ${pattern}, ${replacement})`;
17
- }
18
- export function rtrim(expr) {
19
- return sql `rtrim(${expr})`;
20
- }
21
- export function toDateString(expr, format = sql.val(STANDARD_DATE_FORMAT)) {
22
- return sql `to_char(${expr}, ${format})`;
23
- }
24
- export function toCRDate(dateISO, startTime) {
25
- const yyyymmdd = dateISO.replace(/-/g, ""); // "20250716"
26
- let hh = "00", mm = "00", ss = "00", SSS = "000";
27
- if (startTime) {
28
- // accepte "HH:MM:SS", "HH:MM:SS.mmm", "HH:MM:SS.mmm+02:00"
29
- const m = startTime.match(/(\d{2}):(\d{2}):(\d{2})(?:\.(\d{3}))?/);
30
- if (m) {
31
- hh = m[1];
32
- mm = m[2];
33
- ss = m[3];
34
- SSS = m[4] || "000";
35
- }
36
- }
37
- return `${yyyymmdd}${hh}${mm}${ss}${SSS}`;
38
- }