@tricoteuses/senat 3.1.6 → 3.1.8

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.
@@ -337,13 +337,15 @@ async function convertDatasetSens(dataDir, options) {
337
337
  });
338
338
  }
339
339
  for await (const organisme of findAllOrganismes()) {
340
+ const sanitizedCode = organisme.code.trim().replace(/\s+/g, "-");
341
+ if (sanitizedCode !== organisme.code) {
342
+ console.warn(`Warning: code "${organisme.code}" contains leading/trailing or multiple consecutive whitespace characters. It has been sanitized to "${sanitizedCode}". Please check the original code for potential issues.`);
343
+ }
340
344
  if (options["verbose"]) {
341
- console.log(`Converting ${organisme["code"]} file…`);
345
+ console.log(`Converting ${sanitizedCode} file…`);
342
346
  }
343
- const organismeFileName = `${organisme["code"]}.json`;
344
- fs.outputJSONSync(path.join(organismesReorganizedDir, organisme["type_code"], organismeFileName), organisme, {
345
- spaces: 2,
346
- });
347
+ const organismeFileName = `${sanitizedCode}.json`;
348
+ fs.outputJSONSync(path.join(organismesReorganizedDir, organisme["type_code"], organismeFileName), { ...organisme, code: sanitizedCode }, { spaces: 2 });
347
349
  }
348
350
  }
349
351
  convertData()
@@ -70,9 +70,9 @@ export async function* findAll() {
70
70
  sql `to_char(memcom.memcomdatdeb, 'YYYY-MM-DD')`.as("date_debut"),
71
71
  sql `to_char(memcom.memcomdatfin, 'YYYY-MM-DD')`.as("date_fin"),
72
72
  "memcom.temvalcod as etat",
73
- "com2.comlilmin as libelle",
73
+ sql `nullif(btrim(com2.comlilmin), '')`.as("libelle"),
74
74
  "com2.typorgcod as type_code_organisme",
75
- "typorg.typorglib as type_organisme",
75
+ sql `nullif(btrim(typorg.typorglib), '')`.as("type_organisme"),
76
76
  "memcom.memcomdatdeb as order_date",
77
77
  // Fonctions dans la commission
78
78
  jsonArrayFrom(eb2
@@ -83,9 +83,9 @@ export async function* findAll() {
83
83
  sql `to_char(fonmemcom.fonmemcomdatdeb, 'YYYY-MM-DD')`.as("date_debut"),
84
84
  sql `to_char(fonmemcom.fonmemcomdatfin, 'YYYY-MM-DD')`.as("date_fin"),
85
85
  sql `coalesce(
86
- nullif(foncom.foncomlib, ''),
87
- nullif(foncom.foncomlil, ''),
88
- nullif(foncom.foncomlic, ''))`.as("libelle"),
86
+ nullif(btrim(foncom.foncomlib), ''),
87
+ nullif(btrim(foncom.foncomlil), ''),
88
+ nullif(btrim(foncom.foncomlic), ''))`.as("libelle"),
89
89
  "fonmemcom.fonmemcomdatdeb as order_date",
90
90
  ])
91
91
  .whereRef("fonmemcom.memcomid", "=", "memcom.memcomid")
@@ -105,9 +105,9 @@ export async function* findAll() {
105
105
  sql `to_char(memdelega.memdelegadatdeb, 'YYYY-MM-DD')`.as("date_debut"),
106
106
  sql `to_char(memdelega.memdelegadatfin, 'YYYY-MM-DD')`.as("date_fin"),
107
107
  "memdelega.temvalcod as etat",
108
- "delega.evelib as libelle",
108
+ sql `nullif(btrim(delega.evelib), '')`.as("libelle"),
109
109
  "delega.typorgcod as type_code_organisme",
110
- "typorg2.typorglib as type_organisme",
110
+ sql `nullif(btrim(typorg2.typorglib), '')`.as("type_organisme"),
111
111
  "memdelega.memdelegadatdeb as order_date",
112
112
  // Fonctions dans la délégation
113
113
  jsonArrayFrom(eb2
@@ -118,9 +118,9 @@ export async function* findAll() {
118
118
  sql `to_char(fonmemdelega.fonmemdeldatdeb, 'YYYY-MM-DD')`.as("date_debut"),
119
119
  sql `to_char(fonmemdelega.fonmemdeldatfin, 'YYYY-MM-DD')`.as("date_fin"),
120
120
  sql `coalesce(
121
- nullif(fondelega.fondellib, ''),
122
- nullif(fondelega.fondellil, ''),
123
- nullif(fondelega.fondellic, ''))`.as("libelle"),
121
+ nullif(btrim(fondelega.fondellib), ''),
122
+ nullif(btrim(fondelega.fondellil), ''),
123
+ nullif(btrim(fondelega.fondellic), ''))`.as("libelle"),
124
124
  "fonmemdelega.fonmemdeldatdeb as order_date",
125
125
  ])
126
126
  .whereRef("fonmemdelega.memdelegaid", "=", "memdelega.memdelegaid")
@@ -140,9 +140,9 @@ export async function* findAll() {
140
140
  sql `to_char(memgrppol.memgrppoldatdeb, 'YYYY-MM-DD')`.as("date_debut"),
141
141
  sql `to_char(memgrppol.memgrppoldatfin, 'YYYY-MM-DD')`.as("date_fin"),
142
142
  "memgrppol.temvalcod as etat",
143
- "grppol2.grppollibcou as libelle",
143
+ sql `nullif(btrim(grppol2.grppollibcou), '')`.as("libelle"),
144
144
  "grppol2.typorgcod as type_code_organisme",
145
- "typorg3.typorglib as type_organisme",
145
+ sql `nullif(btrim(typorg3.typorglib), '')`.as("type_organisme"),
146
146
  "memgrppol.memgrppoldatdeb as order_date",
147
147
  // Fonctions dans le groupe politique
148
148
  jsonArrayFrom(eb2
@@ -153,9 +153,9 @@ export async function* findAll() {
153
153
  sql `to_char(fonmemgrppol.fonmemgrppoldatdeb, 'YYYY-MM-DD')`.as("date_debut"),
154
154
  sql `to_char(fonmemgrppol.fonmemgrppoldatfin, 'YYYY-MM-DD')`.as("date_fin"),
155
155
  sql `coalesce(
156
- nullif(fongrppol.fongrppollib, ''),
157
- nullif(fongrppol.fongrppollil, ''),
158
- nullif(fongrppol.fongrppollic, ''))`.as("libelle"),
156
+ nullif(btrim(fongrppol.fongrppollib), ''),
157
+ nullif(btrim(fongrppol.fongrppollil), ''),
158
+ nullif(btrim(fongrppol.fongrppollic), ''))`.as("libelle"),
159
159
  "fonmemgrppol.fonmemgrppoldatdeb as order_date",
160
160
  ])
161
161
  .whereRef("fonmemgrppol.memgrppolid", "=", "memgrppol.memgrppolid")
@@ -174,9 +174,9 @@ export async function* findAll() {
174
174
  sql `to_char(memorg.memorgdatdeb, 'YYYY-MM-DD')`.as("date_debut"),
175
175
  sql `to_char(memorg.memorgdatfin, 'YYYY-MM-DD')`.as("date_fin"),
176
176
  "memorg.temvalcod as etat",
177
- "org.evelib as libelle",
177
+ sql `nullif(btrim(org.evelib), '')`.as("libelle"),
178
178
  "org.typorgcod as type_code_organisme",
179
- "typorg4.typorglib as type_organisme",
179
+ sql `nullif(btrim(typorg4.typorglib), '')`.as("type_organisme"),
180
180
  "memorg.memorgdatdeb as order_date",
181
181
  // Fonctions dans l'organisme
182
182
  jsonArrayFrom(eb2
@@ -187,9 +187,9 @@ export async function* findAll() {
187
187
  sql `to_char(fonmemorg.fonmemorgdatdeb, 'YYYY-MM-DD')`.as("date_debut"),
188
188
  sql `to_char(fonmemorg.fonmemorgdatfin, 'YYYY-MM-DD')`.as("date_fin"),
189
189
  sql `coalesce(
190
- nullif(fonorg.fonorglib, ''),
191
- nullif(fonorg.fonorglil, ''),
192
- nullif(fonorg.fonorglic, ''))`.as("libelle"),
190
+ nullif(btrim(fonorg.fonorglib), ''),
191
+ nullif(btrim(fonorg.fonorglil), ''),
192
+ nullif(btrim(fonorg.fonorglic), ''))`.as("libelle"),
193
193
  "fonmemorg.fonmemorgdatdeb as order_date",
194
194
  ])
195
195
  .whereRef("fonmemorg.memorgid", "=", "memorg.memorgid")
@@ -200,7 +200,24 @@ export async function* findAll() {
200
200
  // Groupes sénatoriaux (groupes d'amitié)
201
201
  jsonArrayFrom(eb
202
202
  .withSchema("senat")
203
- .selectFrom("sens_memgrpsen as memgrpsen")
203
+ .selectFrom(eb
204
+ .withSchema("senat")
205
+ .selectFrom("sens_memgrpsen as memgrpsen_raw")
206
+ .select([
207
+ "memgrpsen_raw.orgcod as orgcod",
208
+ "memgrpsen_raw.memgrpsendatent as memgrpsendatent",
209
+ "memgrpsen_raw.memgrpsendatsor as memgrpsendatsor",
210
+ "memgrpsen_raw.temvalcod as temvalcod",
211
+ sql `min(memgrpsen_raw.memgrpsenid)`.as("memgrpsenid"),
212
+ ])
213
+ .whereRef("memgrpsen_raw.senmat", "=", "sen.senmat")
214
+ .groupBy([
215
+ "memgrpsen_raw.orgcod",
216
+ "memgrpsen_raw.memgrpsendatent",
217
+ "memgrpsen_raw.memgrpsendatsor",
218
+ "memgrpsen_raw.temvalcod",
219
+ ])
220
+ .as("memgrpsen"))
204
221
  .leftJoin("sens_grpsenami as grpsenami", "grpsenami.orgcod", "memgrpsen.orgcod")
205
222
  .leftJoin("sens_typorg as typorg5", "typorg5.typorgcod", "grpsenami.typorgcod")
206
223
  .select((eb2) => [
@@ -208,9 +225,9 @@ export async function* findAll() {
208
225
  sql `to_char(memgrpsen.memgrpsendatent, 'YYYY-MM-DD')`.as("date_debut"),
209
226
  sql `to_char(memgrpsen.memgrpsendatsor, 'YYYY-MM-DD')`.as("date_fin"),
210
227
  "memgrpsen.temvalcod as etat",
211
- "grpsenami.evelib as libelle",
228
+ sql `nullif(btrim(grpsenami.evelib), '')`.as("libelle"),
212
229
  "grpsenami.typorgcod as type_code_organisme",
213
- "typorg5.typorglib as type_organisme",
230
+ sql `nullif(btrim(typorg5.typorglib), '')`.as("type_organisme"),
214
231
  "memgrpsen.memgrpsendatent as order_date",
215
232
  // Fonctions dans le groupe sénatorial
216
233
  jsonArrayFrom(eb2
@@ -221,15 +238,14 @@ export async function* findAll() {
221
238
  sql `to_char(fonmemgrpsen.fonmemgrpsendatdeb, 'YYYY-MM-DD')`.as("date_debut"),
222
239
  sql `to_char(fonmemgrpsen.fonmemgrpsendatfin, 'YYYY-MM-DD')`.as("date_fin"),
223
240
  sql `coalesce(
224
- nullif(fongrpsen.fongrpsenlib, ''),
225
- nullif(fongrpsen.fongrpsenlil, ''),
226
- nullif(fongrpsen.fongrpsenlic, ''))`.as("libelle"),
241
+ nullif(btrim(fongrpsen.fongrpsenlib), ''),
242
+ nullif(btrim(fongrpsen.fongrpsenlil), ''),
243
+ nullif(btrim(fongrpsen.fongrpsenlic), ''))`.as("libelle"),
227
244
  "fonmemgrpsen.fonmemgrpsendatdeb as order_date",
228
245
  ])
229
246
  .whereRef("fonmemgrpsen.memgrpsenid", "=", "memgrpsen.memgrpsenid")
230
247
  .orderBy("fonmemgrpsen.fonmemgrpsendatdeb", (ob) => ob.desc().nullsLast())).as("fonctions"),
231
248
  ])
232
- .whereRef("memgrpsen.senmat", "=", "sen.senmat")
233
249
  .orderBy("memgrpsen.memgrpsendatent", (ob) => ob.desc().nullsLast())).as("groupes_senatoriaux"),
234
250
  // Fonctions au bureau du Sénat
235
251
  jsonArrayFrom(eb
@@ -239,7 +255,11 @@ export async function* findAll() {
239
255
  .select([
240
256
  sql `to_char(senbur.senburdatdeb, 'YYYY-MM-DD')`.as("date_debut"),
241
257
  sql `to_char(senbur.senburdatfin, 'YYYY-MM-DD')`.as("date_fin"),
242
- sql `coalesce(nullif(bur.burlib, ''), nullif(bur.burlil, ''), nullif(bur.burlic, ''))`.as("libelle"),
258
+ sql `coalesce(
259
+ nullif(btrim(bur.burlib), ''),
260
+ nullif(btrim(bur.burlil), ''),
261
+ nullif(btrim(bur.burlic), '')
262
+ )`.as("libelle"),
243
263
  "senbur.senburdatdeb as order_date",
244
264
  ])
245
265
  .whereRef("senbur.senmat", "=", "sen.senmat")
@@ -251,7 +271,7 @@ export async function* findAll() {
251
271
  .select((eb2) => [
252
272
  sql `poicon.poiconid::text`.as("id"),
253
273
  "poicon.typpoiconcod as type",
254
- "poicon.poiconlib as libelle",
274
+ sql `nullif(btrim(poicon.poiconlib), '')`.as("libelle"),
255
275
  "poicon.poiconnumtri as order_num",
256
276
  // Adresses
257
277
  jsonArrayFrom(eb2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tricoteuses/senat",
3
- "version": "3.1.6",
3
+ "version": "3.1.8",
4
4
  "description": "Handle French Sénat's open data",
5
5
  "keywords": [
6
6
  "France",