@tricoteuses/senat 1.1.2 → 1.3.1
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/README.md +53 -15
- package/lib/aggregates.d.ts +4 -6
- package/lib/aggregates.mjs +908 -780
- package/lib/aggregates.ts +8 -122
- package/lib/data/legislatures.json +38 -0
- package/lib/databases.d.ts +9 -0
- package/lib/databases.js +41 -11
- package/lib/databases.mjs +32 -1
- package/lib/databases.ts +40 -1
- package/lib/fields.mjs +64 -18
- package/lib/index.d.ts +5 -7
- package/lib/index.js +8 -112
- package/lib/index.mjs +4 -7
- package/lib/index.ts +9 -30
- package/lib/inserters.d.ts +0 -4
- package/lib/inserters.mjs +461 -337
- package/lib/inserters.ts +0 -24
- package/lib/legislatures.json +38 -0
- package/lib/loaders.d.ts +64 -0
- package/lib/loaders.js +682 -0
- package/lib/loaders.mjs +158 -0
- package/lib/loaders.ts +271 -0
- package/lib/model/ameli.d.ts +105 -4
- package/lib/model/ameli.js +20 -160
- package/lib/model/ameli.mjs +84 -57
- package/lib/model/ameli.ts +94 -80
- package/lib/model/debats.d.ts +0 -4
- package/lib/model/debats.js +1 -122
- package/lib/model/debats.mjs +1 -43
- package/lib/model/debats.ts +0 -68
- package/lib/model/dosleg.d.ts +227 -29
- package/lib/model/dosleg.js +92 -832
- package/lib/model/dosleg.mjs +196 -337
- package/lib/model/dosleg.ts +213 -531
- package/lib/model/index.d.ts +4 -5
- package/lib/model/index.js +14 -15
- package/lib/model/index.mjs +4 -5
- package/lib/model/index.ts +8 -5
- package/lib/model/questions.d.ts +88 -2
- package/lib/model/questions.js +40 -45
- package/lib/model/questions.mjs +71 -8
- package/lib/model/questions.ts +90 -11
- package/lib/model/sens.d.ts +524 -2
- package/lib/model/sens.js +172 -49
- package/lib/model/sens.mjs +415 -9
- package/lib/model/sens.ts +514 -16
- package/lib/model/texte.d.ts +7 -0
- package/lib/model/texte.js +321 -0
- package/lib/model/texte.mjs +208 -0
- package/lib/model/texte.ts +229 -0
- package/lib/model/util.d.ts +7 -1
- package/lib/model/util.js +37 -53
- package/lib/model/util.mjs +19 -10
- package/lib/model/util.ts +30 -14
- package/lib/raw_types/ameli.d.ts +912 -538
- package/lib/raw_types/ameli.js +1 -39
- package/lib/raw_types/ameli.mjs +4 -1
- package/lib/raw_types/ameli.ts +947 -597
- package/lib/raw_types/debats.d.ts +204 -124
- package/lib/raw_types/debats.js +1 -18
- package/lib/raw_types/debats.mjs +4 -1
- package/lib/raw_types/debats.ts +218 -141
- package/lib/raw_types/dosleg.d.ts +3533 -2024
- package/lib/raw_types/dosleg.js +1 -92
- package/lib/raw_types/dosleg.mjs +4 -1
- package/lib/raw_types/dosleg.ts +3621 -2189
- package/lib/raw_types/questions.d.ts +404 -220
- package/lib/raw_types/questions.js +1 -18
- package/lib/raw_types/questions.mjs +4 -1
- package/lib/raw_types/questions.ts +404 -226
- package/lib/raw_types/sens.d.ts +4391 -2706
- package/lib/raw_types/sens.js +1 -108
- package/lib/raw_types/sens.mjs +4 -1
- package/lib/raw_types/sens.ts +4495 -2903
- package/lib/raw_types_kysely/ameli.d.ts +6 -0
- package/lib/raw_types_kysely/ameli.mjs +7 -0
- package/lib/raw_types_kysely/ameli.ts +6 -0
- package/lib/raw_types_kysely/debats.d.ts +6 -0
- package/lib/raw_types_kysely/debats.mjs +7 -0
- package/lib/raw_types_kysely/debats.ts +6 -0
- package/lib/raw_types_kysely/dosleg.d.ts +6 -0
- package/lib/raw_types_kysely/dosleg.mjs +7 -0
- package/lib/raw_types_kysely/dosleg.ts +6 -0
- package/lib/raw_types_kysely/questions.d.ts +6 -0
- package/lib/raw_types_kysely/questions.mjs +7 -0
- package/lib/raw_types_kysely/questions.ts +6 -0
- package/lib/raw_types_kysely/sens.d.ts +6 -0
- package/lib/raw_types_kysely/sens.mjs +7 -0
- package/lib/raw_types_kysely/sens.ts +6 -0
- package/lib/raw_types_kysely/texte.d.ts +45 -0
- package/lib/raw_types_kysely/texte.mjs +7 -0
- package/lib/raw_types_kysely/texte.ts +53 -0
- package/lib/raw_types_schemats/ameli.d.ts +541 -0
- package/lib/raw_types_schemats/ameli.js +45 -0
- package/lib/raw_types_schemats/ameli.mjs +2 -0
- package/lib/raw_types_schemats/ameli.ts +601 -0
- package/lib/raw_types_schemats/debats.d.ts +127 -0
- package/lib/raw_types_schemats/debats.js +24 -0
- package/lib/raw_types_schemats/debats.mjs +2 -0
- package/lib/raw_types_schemats/debats.ts +145 -0
- package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
- package/lib/raw_types_schemats/dosleg.js +98 -0
- package/lib/raw_types_schemats/dosleg.mjs +2 -0
- package/lib/raw_types_schemats/dosleg.ts +2195 -0
- package/lib/raw_types_schemats/questions.d.ts +233 -0
- package/lib/raw_types_schemats/questions.js +24 -0
- package/lib/raw_types_schemats/questions.mjs +2 -0
- package/lib/raw_types_schemats/questions.ts +251 -0
- package/lib/raw_types_schemats/sens.d.ts +2709 -0
- package/lib/raw_types_schemats/sens.js +114 -0
- package/lib/raw_types_schemats/sens.mjs +2 -0
- package/lib/raw_types_schemats/sens.ts +2907 -0
- package/lib/scripts/convert_data.js +574 -215
- package/lib/scripts/convert_data.mjs +134 -99
- package/lib/scripts/convert_data.ts +173 -112
- package/lib/scripts/datautil.d.ts +5 -0
- package/lib/scripts/datautil.js +64 -0
- package/lib/scripts/datautil.mjs +16 -0
- package/lib/scripts/datautil.ts +19 -0
- package/lib/scripts/parse_textes.js +132 -0
- package/lib/scripts/parse_textes.mjs +46 -0
- package/lib/scripts/parse_textes.ts +65 -0
- package/lib/scripts/retrieve_documents.d.ts +1 -0
- package/lib/scripts/retrieve_documents.js +521 -0
- package/lib/scripts/retrieve_documents.mjs +249 -0
- package/lib/scripts/retrieve_documents.ts +298 -0
- package/lib/scripts/retrieve_open_data.js +77 -69
- package/lib/scripts/retrieve_open_data.mjs +48 -49
- package/lib/scripts/retrieve_open_data.ts +74 -58
- package/lib/scripts/retrieve_senateurs_photos.js +45 -63
- package/lib/scripts/retrieve_senateurs_photos.mjs +4 -21
- package/lib/scripts/retrieve_senateurs_photos.ts +6 -29
- package/lib/scripts/retrieve_textes.mjs +325 -74
- package/lib/scripts/retrieve_textes.ts +111 -63
- package/lib/scripts/shared/cli_helpers.d.ts +44 -0
- package/lib/scripts/shared/cli_helpers.js +35 -0
- package/lib/scripts/shared/cli_helpers.ts +36 -0
- package/lib/scripts/shared/util.d.ts +3 -0
- package/lib/scripts/shared/util.js +102 -0
- package/lib/scripts/shared/util.ts +33 -0
- package/lib/src/aggregates.d.ts +52 -0
- package/lib/src/aggregates.mjs +726 -0
- package/lib/src/config.d.ts +2 -0
- package/lib/src/config.mjs +16 -0
- package/lib/src/databases.d.ts +18 -0
- package/lib/src/databases.mjs +55 -0
- package/lib/src/datasets.d.ts +28 -0
- package/lib/src/datasets.mjs +78 -0
- package/lib/src/fields.d.ts +10 -0
- package/lib/src/fields.mjs +22 -0
- package/lib/src/index.d.ts +8 -0
- package/lib/src/index.mjs +7 -0
- package/lib/src/inserters.d.ts +98 -0
- package/lib/src/inserters.mjs +360 -0
- package/lib/src/loaders.d.ts +36 -0
- package/lib/src/loaders.mjs +107 -0
- package/lib/src/model/ameli.d.ts +4 -0
- package/lib/src/model/ameli.js +57 -0
- package/lib/src/model/debats.d.ts +4 -0
- package/lib/src/model/debats.js +43 -0
- package/lib/src/model/dosleg.d.ts +197 -0
- package/lib/src/model/dosleg.js +169 -0
- package/lib/src/model/index.d.ts +4 -0
- package/lib/src/model/index.js +4 -0
- package/lib/src/model/questions.d.ts +89 -0
- package/lib/src/model/questions.js +76 -0
- package/lib/src/model/sens.d.ts +390 -0
- package/lib/src/model/sens.js +339 -0
- package/lib/src/model/texte.d.ts +7 -0
- package/lib/src/model/texte.js +183 -0
- package/lib/src/raw_types_kysely/ameli.d.ts +915 -0
- package/lib/src/raw_types_kysely/ameli.js +5 -0
- package/lib/src/raw_types_kysely/debats.d.ts +207 -0
- package/lib/src/raw_types_kysely/debats.js +5 -0
- package/lib/src/raw_types_kysely/dosleg.d.ts +3532 -0
- package/lib/src/raw_types_kysely/dosleg.js +5 -0
- package/lib/src/raw_types_kysely/questions.d.ts +414 -0
- package/lib/src/raw_types_kysely/questions.js +5 -0
- package/lib/src/raw_types_kysely/sens.d.ts +4394 -0
- package/lib/src/raw_types_kysely/sens.js +5 -0
- package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
- package/lib/src/raw_types_schemats/ameli.js +2 -0
- package/lib/src/raw_types_schemats/debats.d.ts +127 -0
- package/lib/src/raw_types_schemats/debats.js +2 -0
- package/lib/src/raw_types_schemats/dosleg.d.ts +2027 -0
- package/lib/src/raw_types_schemats/dosleg.js +2 -0
- package/lib/src/raw_types_schemats/questions.d.ts +231 -0
- package/lib/src/raw_types_schemats/questions.js +2 -0
- package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
- package/lib/src/raw_types_schemats/sens.js +2 -0
- package/lib/src/scripts/convert_data.d.ts +1 -0
- package/lib/src/scripts/convert_data.js +95 -0
- package/lib/src/scripts/datautil.d.ts +5 -0
- package/lib/src/scripts/datautil.js +16 -0
- package/lib/src/scripts/parse_textes.d.ts +1 -0
- package/lib/src/scripts/parse_textes.js +47 -0
- package/lib/src/scripts/retrieve_documents.d.ts +1 -0
- package/lib/src/scripts/retrieve_documents.js +258 -0
- package/lib/src/scripts/retrieve_open_data.d.ts +1 -0
- package/lib/src/scripts/retrieve_open_data.js +214 -0
- package/lib/src/scripts/retrieve_senateurs_photos.d.ts +1 -0
- package/lib/src/scripts/retrieve_senateurs_photos.js +147 -0
- package/lib/src/scripts/shared/cli_helpers.d.ts +44 -0
- package/lib/src/scripts/shared/cli_helpers.js +32 -0
- package/lib/src/scripts/shared/util.d.ts +3 -0
- package/lib/src/scripts/shared/util.js +28 -0
- package/lib/src/strings.d.ts +1 -0
- package/lib/src/strings.mjs +18 -0
- package/lib/src/types/ameli.d.ts +10 -0
- package/lib/src/types/ameli.js +13 -0
- package/lib/src/types/debats.d.ts +4 -0
- package/lib/src/types/debats.js +2 -0
- package/lib/src/types/dosleg.d.ts +98 -0
- package/lib/src/types/dosleg.js +151 -0
- package/lib/src/types/questions.d.ts +2 -0
- package/lib/src/types/questions.js +1 -0
- package/lib/src/types/sens.d.ts +10 -0
- package/lib/src/types/sens.js +1 -0
- package/lib/src/types/sessions.d.ts +42 -0
- package/lib/src/types/sessions.js +43 -0
- package/lib/src/types/texte.d.ts +61 -0
- package/lib/src/types/texte.js +16 -0
- package/lib/src/validators/config.d.ts +1 -0
- package/lib/src/validators/config.js +54 -0
- package/lib/src/validators/senat.d.ts +0 -0
- package/lib/src/validators/senat.js +24 -0
- package/lib/types/ameli.d.ts +1 -1
- package/lib/types/ameli.js +2 -2
- package/lib/types/ameli.ts +1 -1
- package/lib/types/debats.d.ts +1 -1
- package/lib/types/debats.js +2 -2
- package/lib/types/debats.ts +1 -1
- package/lib/types/dosleg.d.ts +2 -2
- package/lib/types/dosleg.js +2 -2
- package/lib/types/dosleg.ts +2 -2
- package/lib/types/questions.d.ts +1 -1
- package/lib/types/questions.js +2 -2
- package/lib/types/questions.ts +1 -1
- package/lib/types/sens.d.ts +1 -3
- package/lib/types/sens.js +2 -5
- package/lib/types/sens.mjs +1 -23
- package/lib/types/sens.ts +1 -25
- package/lib/types/sessions.d.ts +42 -0
- package/lib/types/sessions.js +51 -0
- package/lib/types/sessions.mjs +43 -0
- package/lib/types/sessions.ts +42 -0
- package/lib/types/texte.d.ts +65 -0
- package/lib/types/texte.js +24 -0
- package/lib/types/texte.mjs +16 -0
- package/lib/types/texte.ts +76 -0
- package/package.json +35 -10
- package/lib/aggregates.js +0 -1122
- package/lib/fields.js +0 -68
- package/lib/inserters.js +0 -518
- package/lib/scripts/fix_db.js +0 -144
- package/lib/scripts/fix_db.mjs +0 -64
- package/lib/scripts/fix_db.ts +0 -75
- package/lib/scripts/retrieve_textes.js +0 -179
- /package/lib/scripts/{fix_db.d.ts → parse_textes.d.ts} +0 -0
package/lib/model/sens.ts
CHANGED
|
@@ -1,18 +1,516 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
} from
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import { Expression, InferResult } from "kysely"
|
|
2
|
+
import { jsonArrayFrom, jsonObjectFrom } from "kysely/helpers/postgres"
|
|
3
|
+
import { dbSens } from "../databases"
|
|
4
|
+
import { concat, rtrim, toDateString } from "./util"
|
|
5
|
+
|
|
6
|
+
function circonscription (dptNum: Expression<string>) {
|
|
7
|
+
return jsonObjectFrom(
|
|
8
|
+
dbSens.selectFrom("dpt")
|
|
9
|
+
.leftJoin("reg", "dpt.regcod", "reg.regcod")
|
|
10
|
+
.where("dpt.dptnum", "=", dptNum)
|
|
11
|
+
.select([
|
|
12
|
+
"dpt.dptcod as code",
|
|
13
|
+
"dpt.dptlib as libelle_departement",
|
|
14
|
+
"reg.reglib as libelle_region",
|
|
15
|
+
]),
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function textes (actId: Expression<string>) {
|
|
20
|
+
return jsonArrayFrom(
|
|
21
|
+
dbSens.selectFrom("activite_loi")
|
|
22
|
+
.where("actid", "=", actId)
|
|
23
|
+
.select(({ ref }) => [
|
|
24
|
+
rtrim(ref("loicod")).as("loicod"),
|
|
25
|
+
]),
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function delegations (actId: Expression<string>) {
|
|
30
|
+
return jsonArrayFrom(
|
|
31
|
+
dbSens.selectFrom("activite_delegation")
|
|
32
|
+
.where("actid", "=", actId)
|
|
33
|
+
.orderBy("delegidx asc"),
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function activites (senMat: Expression<string>) {
|
|
38
|
+
return jsonArrayFrom(
|
|
39
|
+
dbSens.selectFrom("activite")
|
|
40
|
+
.leftJoin("activite_participant", "activite.actid", "activite_participant.actid")
|
|
41
|
+
.leftJoin("type_activite", "activite.typactcod", "type_activite.typactcod")
|
|
42
|
+
.leftJoin("categorie_activite", "activite.catactcod", "categorie_activite.catactcod")
|
|
43
|
+
.where("activite_participant.senmat", "=", senMat)
|
|
44
|
+
.select(({ ref }) => [
|
|
45
|
+
delegations(ref("activite.actid")).as("delegations"),
|
|
46
|
+
textes(ref("activite.actid")).as("textes"),
|
|
47
|
+
])
|
|
48
|
+
.orderBy("activite.datdeb desc"),
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function activitesPerso (senMat: Expression<string>) {
|
|
53
|
+
return jsonArrayFrom(
|
|
54
|
+
dbSens.selectFrom("activite_senateur")
|
|
55
|
+
.leftJoin("type_activite_senateur", "activite_senateur.typactsencod", "type_activite_senateur.typactsencod")
|
|
56
|
+
.where("activite_senateur.senmat", "=", senMat)
|
|
57
|
+
.orderBy("activite_senateur.datdeb desc"),
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function fonctionsBureau (senMat: Expression<string>) {
|
|
62
|
+
return jsonArrayFrom(
|
|
63
|
+
dbSens.selectFrom("senbur")
|
|
64
|
+
.leftJoin("bur", "senbur.burcod", "bur.burcod")
|
|
65
|
+
.where("senbur.senmat", "=", senMat)
|
|
66
|
+
.select(({ ref }) => [
|
|
67
|
+
toDateString(ref("senbur.senburdatdeb")).as("date_debut"),
|
|
68
|
+
toDateString(ref("senbur.senburdatfin")).as("date_fin"),
|
|
69
|
+
"bur.burlib as libelle",
|
|
70
|
+
])
|
|
71
|
+
.orderBy("senbur.senburdatdeb desc"),
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function mandatsEluConseillerGeneral (senMat: Expression<string>) {
|
|
76
|
+
return jsonArrayFrom(
|
|
77
|
+
dbSens.selectFrom("elucan")
|
|
78
|
+
.leftJoin("typman", "elucan.typmancod", "typman.typmancod")
|
|
79
|
+
.where("elucan.senmat", "=", senMat)
|
|
80
|
+
.select(({ ref }) => [
|
|
81
|
+
circonscription(ref("elucan.dptnum").$notNull()).as("circonscription"),
|
|
82
|
+
])
|
|
83
|
+
.orderBy("elucan.eludatdeb desc"),
|
|
84
|
+
)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function mandatsEluDepute (senMat: Expression<string>) {
|
|
88
|
+
return jsonArrayFrom(
|
|
89
|
+
dbSens.selectFrom("eludep")
|
|
90
|
+
.leftJoin("typman", "eludep.typmancod", "typman.typmancod")
|
|
91
|
+
.where("eludep.senmat", "=", senMat)
|
|
92
|
+
.select(({ ref }) => [
|
|
93
|
+
circonscription(ref("eludep.circo").$notNull()).as("circonscription"),
|
|
94
|
+
])
|
|
95
|
+
.orderBy("eludep.eludatdeb desc"),
|
|
96
|
+
)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function mandatsEluDivers (senMat: Expression<string>) {
|
|
100
|
+
return jsonArrayFrom(
|
|
101
|
+
dbSens.selectFrom("eludiv")
|
|
102
|
+
.leftJoin("typman", "eludiv.typmancod", "typman.typmancod")
|
|
103
|
+
.where("eludiv.senmat", "=", senMat)
|
|
104
|
+
.orderBy("eludiv.eludatdeb desc"),
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function mandatsEluEuropeen (senMat: Expression<string>) {
|
|
109
|
+
return jsonArrayFrom(
|
|
110
|
+
dbSens.selectFrom("elueur")
|
|
111
|
+
.leftJoin("nation", "elueur.nationcod", "nation.nationcod")
|
|
112
|
+
.leftJoin("typman", "elueur.typmancod", "typman.typmancod")
|
|
113
|
+
.where("elueur.senmat", "=", senMat)
|
|
114
|
+
.orderBy("elueur.eludatdeb desc"),
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function mandatsEluConseillerRegional (senMat: Expression<string>) {
|
|
119
|
+
return jsonArrayFrom(
|
|
120
|
+
dbSens.selectFrom("elureg")
|
|
121
|
+
.leftJoin("reg", "elureg.regcod", "reg.regcod")
|
|
122
|
+
.leftJoin("typman", "elureg.typmancod", "typman.typmancod")
|
|
123
|
+
.where("elureg.senmat", "=", senMat)
|
|
124
|
+
.orderBy("elureg.eludatdeb desc"),
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function mandatsEluSenateur (senMat: Expression<string>) {
|
|
129
|
+
return jsonArrayFrom(
|
|
130
|
+
dbSens.selectFrom("elusen")
|
|
131
|
+
.leftJoin("etadebman", "elusen.etadebmancod", "etadebman.etadebmancod")
|
|
132
|
+
.leftJoin("etafinman", "elusen.etafinmancod", "etafinman.etafinmancod")
|
|
133
|
+
.leftJoin("typman", "elusen.typmancod", "typman.typmancod")
|
|
134
|
+
.where("elusen.senmat", "=", senMat)
|
|
135
|
+
.select(({ ref }) => [
|
|
136
|
+
"elusen.dptnum as code_circonscription",
|
|
137
|
+
toDateString(ref("elusen.eludatdeb")).as("date_debut"),
|
|
138
|
+
toDateString(ref("elusen.eludatfin")).as("date_fin"),
|
|
139
|
+
"etadebman.etadebmanlib as etat_debut",
|
|
140
|
+
"etafinman.etafinman as etat_fin",
|
|
141
|
+
])
|
|
142
|
+
.orderBy("elusen.eludatdeb desc"),
|
|
143
|
+
)
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function mandatsEluTerritorial (senMat: Expression<string>) {
|
|
147
|
+
return jsonArrayFrom(
|
|
148
|
+
dbSens.selectFrom("eluter")
|
|
149
|
+
.leftJoin("asster", "eluter.asstercod", "asster.asstercod")
|
|
150
|
+
.leftJoin("typman", "eluter.typmancod", "typman.typmancod")
|
|
151
|
+
.where("eluter.senmat", "=", senMat)
|
|
152
|
+
.orderBy("eluter.eludatdeb desc"),
|
|
153
|
+
)
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function mandatsEluConseillerMunicipal (senMat: Expression<string>) {
|
|
157
|
+
return jsonArrayFrom(
|
|
158
|
+
dbSens.selectFrom("eluvil")
|
|
159
|
+
.leftJoin("typman", "eluvil.typmancod", "typman.typmancod")
|
|
160
|
+
.where("eluvil.senmat", "=", senMat)
|
|
161
|
+
.orderBy("eluvil.eludatdeb desc"),
|
|
162
|
+
)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function fonctionsMembreCommission (memComId: Expression<string>) {
|
|
166
|
+
return jsonArrayFrom(
|
|
167
|
+
dbSens.selectFrom("fonmemcom")
|
|
168
|
+
.leftJoin("foncom", "fonmemcom.foncomcod", "foncom.foncomcod")
|
|
169
|
+
.where("fonmemcom.memcomid", "=", memComId)
|
|
170
|
+
.select(({ ref }) => [
|
|
171
|
+
toDateString(ref("fonmemcom.fonmemcomdatdeb")).as("date_debut"),
|
|
172
|
+
toDateString(ref("fonmemcom.fonmemcomdatfin")).as("date_fin"),
|
|
173
|
+
"foncom.foncomlib as libelle",
|
|
174
|
+
])
|
|
175
|
+
.orderBy("fonmemcom.fonmemcomdatdeb desc"),
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function mandatsMembreCommission (senMat: Expression<string>) {
|
|
180
|
+
return jsonArrayFrom(
|
|
181
|
+
dbSens.selectFrom("memcom")
|
|
182
|
+
.leftJoin("com", "memcom.orgcod", "com.orgcod")
|
|
183
|
+
.leftJoin("typorg", "com.typorgcod", "typorg.typorgcod")
|
|
184
|
+
.where("memcom.senmat", "=", senMat)
|
|
185
|
+
.select(({ ref }) => [
|
|
186
|
+
"com.typorgcod as type_code_organisme",
|
|
187
|
+
"memcom.orgcod as code_organisme",
|
|
188
|
+
"typorg.typorglib as type_organisme",
|
|
189
|
+
"com.comlilmin as libelle",
|
|
190
|
+
toDateString(ref("memcom.memcomdatdeb")).as("date_debut"),
|
|
191
|
+
toDateString(ref("memcom.memcomdatfin")).as("date_fin"),
|
|
192
|
+
])
|
|
193
|
+
.select(({ ref }) => [
|
|
194
|
+
fonctionsMembreCommission(ref("memcom.memcomid")).as("fonctions"),
|
|
195
|
+
])
|
|
196
|
+
.orderBy("memcom.memcomdatdeb desc"),
|
|
197
|
+
)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
function fonctionsMembreDelegation (memDelegaId: Expression<string>) {
|
|
201
|
+
return jsonArrayFrom(
|
|
202
|
+
dbSens.selectFrom("fonmemdelega")
|
|
203
|
+
.leftJoin("fondelega", "fonmemdelega.fondelcod", "fondelega.fondelcod")
|
|
204
|
+
.where("fonmemdelega.memdelegaid", "=", memDelegaId)
|
|
205
|
+
.select(({ ref }) => [
|
|
206
|
+
toDateString(ref("fonmemdelega.fonmemdeldatdeb")).as("date_debut"),
|
|
207
|
+
toDateString(ref("fonmemdelega.fonmemdeldatfin")).as("date_fin"),
|
|
208
|
+
"fondelega.fondellib as libelle",
|
|
209
|
+
])
|
|
210
|
+
.orderBy("fonmemdelega.fonmemdeldatdeb desc"),
|
|
211
|
+
)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
function mandatsMembreDelegation (senMat: Expression<string>) {
|
|
215
|
+
return jsonArrayFrom(
|
|
216
|
+
dbSens.selectFrom("memdelega")
|
|
217
|
+
.leftJoin("delega", "memdelega.orgcod", "delega.orgcod")
|
|
218
|
+
.leftJoin("designorg", "memdelega.designcod", "designorg.designcod")
|
|
219
|
+
.leftJoin("typorg", "delega.typorgcod", "typorg.typorgcod")
|
|
220
|
+
.where("memdelega.senmat", "=", senMat)
|
|
221
|
+
.select(({ ref }) => [
|
|
222
|
+
"delega.typorgcod as type_code_organisme",
|
|
223
|
+
"memdelega.orgcod as code_organisme",
|
|
224
|
+
"typorg.typorglib as type_organisme",
|
|
225
|
+
"delega.evelib as libelle",
|
|
226
|
+
toDateString(ref("memdelega.memdelegadatdeb")).as("date_debut"),
|
|
227
|
+
toDateString(ref("memdelega.memdelegadatfin")).as("date_fin"),
|
|
228
|
+
])
|
|
229
|
+
.select(({ ref }) => [
|
|
230
|
+
fonctionsMembreDelegation(ref("memdelega.memdelegaid")).as("fonctions"),
|
|
231
|
+
])
|
|
232
|
+
.orderBy("memdelega.memdelegadatdeb desc"),
|
|
233
|
+
)
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
function mandatsMembreExtraParlementaire (senMat: Expression<string>) {
|
|
237
|
+
return jsonArrayFrom(
|
|
238
|
+
dbSens.selectFrom("memextpar")
|
|
239
|
+
.leftJoin("orgext", "memextpar.orgcod", "orgext.orgcod")
|
|
240
|
+
.leftJoin("design", "memextpar.designcod", "design.designcod")
|
|
241
|
+
.where("memextpar.senmat", "=", senMat)
|
|
242
|
+
.orderBy("memextpar.memextpardatdeb desc"),
|
|
243
|
+
)
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
function fonctionsMembreGroupePolitique (memGrpPolId: Expression<string>) {
|
|
247
|
+
return jsonArrayFrom(
|
|
248
|
+
dbSens.selectFrom("fonmemgrppol")
|
|
249
|
+
.leftJoin("fongrppol", "fonmemgrppol.fongrppolcod", "fongrppol.fongrppolcod")
|
|
250
|
+
.where("fonmemgrppol.memgrppolid", "=", memGrpPolId)
|
|
251
|
+
.select(({ ref }) => [
|
|
252
|
+
toDateString(ref("fonmemgrppol.fonmemgrppoldatdeb")).as("date_debut"),
|
|
253
|
+
toDateString(ref("fonmemgrppol.fonmemgrppoldatfin")).as("date_fin"),
|
|
254
|
+
"fongrppol.fongrppollib as libelle",
|
|
255
|
+
])
|
|
256
|
+
.orderBy("fonmemgrppol.fonmemgrppoldatdeb desc"),
|
|
257
|
+
)
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
function mandatsMembreGroupePolitique (senMat: Expression<string>) {
|
|
261
|
+
return jsonArrayFrom(
|
|
262
|
+
dbSens.selectFrom("memgrppol")
|
|
263
|
+
.leftJoin("grppol", "memgrppol.grppolcod", "grppol.grppolcod")
|
|
264
|
+
.leftJoin("typapppol", "memgrppol.typapppolcod", "typapppol.typapppolcod")
|
|
265
|
+
.where("memgrppol.senmat", "=", senMat)
|
|
266
|
+
.select(({ ref }) => [
|
|
267
|
+
"memgrppol.grppolcod as code",
|
|
268
|
+
"grppol.grppollibcou as libelle",
|
|
269
|
+
toDateString(ref("memgrppol.memgrppoldatdeb")).as("date_debut"),
|
|
270
|
+
toDateString(ref("memgrppol.memgrppoldatfin")).as("date_fin"),
|
|
271
|
+
"typapppol.typapppollib as fonction",
|
|
272
|
+
])
|
|
273
|
+
.select(({ ref }) => [
|
|
274
|
+
fonctionsMembreGroupePolitique(ref("memgrppol.memgrppolid")).as("fonctions"),
|
|
275
|
+
])
|
|
276
|
+
.orderBy("memgrppol.memgrppoldatdeb desc"),
|
|
277
|
+
)
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
function fonctionsMembreGroupeSenatorial (memGrpSenId: Expression<string>) {
|
|
281
|
+
return jsonArrayFrom(
|
|
282
|
+
dbSens.selectFrom("fonmemgrpsen")
|
|
283
|
+
.leftJoin("fongrpsen", "fonmemgrpsen.fongrpsencod", "fongrpsen.fongrpsencod")
|
|
284
|
+
.where("fonmemgrpsen.memgrpsenid", "=", memGrpSenId)
|
|
285
|
+
.orderBy("fonmemgrpsen.fonmemgrpsendatdeb desc"),
|
|
286
|
+
)
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
function mandatsMembreGroupeSenatorial (senMat: Expression<string>) {
|
|
290
|
+
return jsonArrayFrom(
|
|
291
|
+
dbSens.selectFrom("memgrpsen")
|
|
292
|
+
.leftJoin("grpsenami", "memgrpsen.orgcod", "grpsenami.orgcod")
|
|
293
|
+
.leftJoin("typgrpsen", "grpsenami.typgrpsencod", "typgrpsen.typgrpsencod")
|
|
294
|
+
.where("memgrpsen.senmat", "=", senMat)
|
|
295
|
+
.select(({ ref }) => [
|
|
296
|
+
fonctionsMembreGroupeSenatorial(ref("memgrpsen.memgrpsenid")).as("fonctions"),
|
|
297
|
+
])
|
|
298
|
+
.orderBy("memgrpsen.memgrpsendatent desc"),
|
|
299
|
+
)
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
function fonctionsMembreOrganisme (memOrgId: Expression<string>) {
|
|
303
|
+
return jsonArrayFrom(
|
|
304
|
+
dbSens.selectFrom("fonmemorg")
|
|
305
|
+
.leftJoin("fonorg", "fonmemorg.fonorgcod", "fonorg.fonorgcod")
|
|
306
|
+
.where("fonmemorg.memorgid", "=", memOrgId)
|
|
307
|
+
.orderBy("fonmemorg.fonmemorgdatdeb desc"),
|
|
17
308
|
)
|
|
18
309
|
}
|
|
310
|
+
|
|
311
|
+
function mandatsMembreOrganisme (senMat: Expression<string>) {
|
|
312
|
+
return jsonArrayFrom(
|
|
313
|
+
dbSens.selectFrom("memorg")
|
|
314
|
+
.leftJoin("org", "memorg.orgcod", "org.orgcod")
|
|
315
|
+
.leftJoin("typorg", "org.typorgcod", "typorg.typorgcod")
|
|
316
|
+
.leftJoin("designorg", "memorg.designcod", "designorg.designcod")
|
|
317
|
+
.where("memorg.senmat", "=", senMat)
|
|
318
|
+
.select(({ ref }) => [
|
|
319
|
+
fonctionsMembreOrganisme(ref("memorg.memorgid")).as("fonctions"),
|
|
320
|
+
])
|
|
321
|
+
.orderBy("memorg.memorgdatdeb desc"),
|
|
322
|
+
)
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
function mandatsMinistre (senMat: Expression<string>) {
|
|
326
|
+
return jsonArrayFrom(
|
|
327
|
+
dbSens.selectFrom("minind")
|
|
328
|
+
.where("minind.senmat", "=", senMat)
|
|
329
|
+
.orderBy("minind.mindatdeb desc"),
|
|
330
|
+
)
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
function contacts (senMat: Expression<string>) {
|
|
334
|
+
return jsonArrayFrom(
|
|
335
|
+
dbSens.selectFrom("poicon")
|
|
336
|
+
.leftJoin("adresse", "poicon.poiconid", "adresse.poiconid")
|
|
337
|
+
.leftJoin("mel", "poicon.poiconid", "mel.poiconid")
|
|
338
|
+
.leftJoin("telephone", "poicon.poiconid", "telephone.poiconid")
|
|
339
|
+
.where("poicon.senmat", "=", senMat)
|
|
340
|
+
.orderBy("poicon.poiconnumtri asc"),
|
|
341
|
+
)
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
function urls (senMat: Expression<string>) {
|
|
345
|
+
return jsonArrayFrom(
|
|
346
|
+
dbSens.selectFrom("senurl")
|
|
347
|
+
.where("senurl.senmat", "=", senMat)
|
|
348
|
+
.select([
|
|
349
|
+
"senurl.typurlcod as code_url",
|
|
350
|
+
"senurl.senurlurl as url",
|
|
351
|
+
])
|
|
352
|
+
.orderBy("senurl.senurlnumtri asc"),
|
|
353
|
+
)
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
const findAllQuery = dbSens
|
|
357
|
+
.selectFrom("sen")
|
|
358
|
+
.leftJoin("etasen", "sen.etasencod", "etasen.etasencod")
|
|
359
|
+
.leftJoin("pcs", "sen.pcscod", "pcs.pcscod")
|
|
360
|
+
.leftJoin("pcs42", "pcs.pcs42cod", "pcs42.pcs42cod")
|
|
361
|
+
.leftJoin("pcs24", "pcs42.pcs24cod", "pcs24.pcs24cod")
|
|
362
|
+
.leftJoin("pcs8", "pcs24.pcs8cod", "pcs8.pcs8cod")
|
|
363
|
+
.leftJoin("grppol", "sen.sengrppolcodcou", "grppol.grppolcod")
|
|
364
|
+
.leftJoin("com", "sen.sencomcodcou", "com.orgcod")
|
|
365
|
+
.select(({ ref }) => [
|
|
366
|
+
"sen.senmat as matricule",
|
|
367
|
+
"sen.quacod as qualite",
|
|
368
|
+
"sen.sennomuse as nom_usuel",
|
|
369
|
+
"sen.senprenomuse as prenom_usuel",
|
|
370
|
+
"sen.etasencod as etat",
|
|
371
|
+
toDateString(ref("sen.sendatnai")).as("date_naissance"),
|
|
372
|
+
toDateString(ref("sen.sendatdec")).as("date_deces"),
|
|
373
|
+
"sen.sengrppolcodcou as code_groupe_politique",
|
|
374
|
+
"sen.sengrppolliccou as groupe_politique",
|
|
375
|
+
"sen.sencomcodcou as code_commission_permanente",
|
|
376
|
+
"com.comlilmin as commission_permanente",
|
|
377
|
+
"sen.sencirnumcou as code_circonscription",
|
|
378
|
+
"sen.sencircou as circonscription",
|
|
379
|
+
"sen.senburliccou as fonction_bureau_senat",
|
|
380
|
+
"sen.senema as courrier_electronique",
|
|
381
|
+
"pcs.pcslil as PCS_INSEE",
|
|
382
|
+
"pcs42.pcs42lib as PCS_INSEE_42",
|
|
383
|
+
"pcs24.pcs24lib as PCS_INSEE_24",
|
|
384
|
+
"pcs8.pcs8lil as PCS_INSEE_8",
|
|
385
|
+
"sen.sendespro as description_profession",
|
|
386
|
+
"sen.sennumsie as siege",
|
|
387
|
+
"sen.sendaiurl as url_hatvp",
|
|
388
|
+
])
|
|
389
|
+
.select(({ ref }) => [
|
|
390
|
+
urls(ref("sen.senmat")).as("urls"),
|
|
391
|
+
mandatsEluSenateur(ref("sen.senmat")).as("mandats_senateur"),
|
|
392
|
+
mandatsMembreCommission(ref("sen.senmat")).as("commissions"),
|
|
393
|
+
mandatsMembreDelegation(ref("sen.senmat")).as("delegations"),
|
|
394
|
+
mandatsMembreGroupePolitique(ref("sen.senmat")).as("groupes"),
|
|
395
|
+
fonctionsBureau(ref("sen.senmat")).as("fonctions_bureau"),
|
|
396
|
+
])
|
|
397
|
+
|
|
398
|
+
const findAllCirconscriptionsQuery = dbSens
|
|
399
|
+
.selectFrom("dpt")
|
|
400
|
+
.leftJoin("reg", "dpt.regcod", "reg.regcod")
|
|
401
|
+
.select(({ ref }) => [
|
|
402
|
+
"dpt.dptnum as identifiant",
|
|
403
|
+
"dpt.dptcod as code",
|
|
404
|
+
"dpt.dptlib as libelle_departement",
|
|
405
|
+
"dpt.dptart as article",
|
|
406
|
+
"reg.reglib as libelle_region",
|
|
407
|
+
"dpt.temvalcod as etat",
|
|
408
|
+
toDateString(ref("dpt.dptdatdeb")).as("date_debut"),
|
|
409
|
+
toDateString(ref("dpt.dptdatfin")).as("date_fin"),
|
|
410
|
+
"dpt.dptnbrsen as nombre_senateurs",
|
|
411
|
+
"dpt.dpturlcmp as url",
|
|
412
|
+
])
|
|
413
|
+
|
|
414
|
+
const findAllOrganismesQuery = dbSens
|
|
415
|
+
.selectFrom((eb) => eb
|
|
416
|
+
.selectFrom("com")
|
|
417
|
+
.select([
|
|
418
|
+
"orgcod",
|
|
419
|
+
"evelic",
|
|
420
|
+
"evelib",
|
|
421
|
+
"evelil",
|
|
422
|
+
"typorgcod",
|
|
423
|
+
"orgurlsim",
|
|
424
|
+
"orgdatcre",
|
|
425
|
+
"orgdatfin",
|
|
426
|
+
"temvalcod",
|
|
427
|
+
]).union(eb
|
|
428
|
+
.selectFrom("delega")
|
|
429
|
+
.select([
|
|
430
|
+
"orgcod",
|
|
431
|
+
"evelic",
|
|
432
|
+
"evelib",
|
|
433
|
+
"evelil",
|
|
434
|
+
"typorgcod",
|
|
435
|
+
"orgurlsim",
|
|
436
|
+
"orgdatcre",
|
|
437
|
+
"orgdatfin",
|
|
438
|
+
"temvalcod",
|
|
439
|
+
]),
|
|
440
|
+
).union(eb
|
|
441
|
+
.selectFrom("grppol")
|
|
442
|
+
.select([
|
|
443
|
+
"grppolcod as orgcod",
|
|
444
|
+
"grppolliccou as evelic",
|
|
445
|
+
"grppollibcou as evelib",
|
|
446
|
+
"grppollilcou as evelil",
|
|
447
|
+
"typorgcod",
|
|
448
|
+
"grppolurlsim as orgurlsim",
|
|
449
|
+
"grppoldatcre as orgdatcre",
|
|
450
|
+
"grppoldatfin as orgdatfin",
|
|
451
|
+
"temvalcod",
|
|
452
|
+
]),
|
|
453
|
+
).union(eb
|
|
454
|
+
.selectFrom("grpsenami")
|
|
455
|
+
.select([
|
|
456
|
+
"orgcod",
|
|
457
|
+
"evelic",
|
|
458
|
+
"evelib",
|
|
459
|
+
"evelil",
|
|
460
|
+
"typorgcod",
|
|
461
|
+
"orgurlsim",
|
|
462
|
+
"orgdatcre",
|
|
463
|
+
"orgdatfin",
|
|
464
|
+
"temvalcod",
|
|
465
|
+
]),
|
|
466
|
+
).union(eb
|
|
467
|
+
.selectFrom("org")
|
|
468
|
+
.select([
|
|
469
|
+
"orgcod",
|
|
470
|
+
"evelic",
|
|
471
|
+
"evelib",
|
|
472
|
+
"evelil",
|
|
473
|
+
"typorgcod",
|
|
474
|
+
"orgurlsim",
|
|
475
|
+
"orgdatcre",
|
|
476
|
+
"orgdatfin",
|
|
477
|
+
"temvalcod",
|
|
478
|
+
]),
|
|
479
|
+
).as("all_organismes"),
|
|
480
|
+
).leftJoin("typorg", "all_organismes.typorgcod", "typorg.typorgcod")
|
|
481
|
+
.select(({ ref, val }) => [
|
|
482
|
+
"all_organismes.orgcod as code",
|
|
483
|
+
"all_organismes.evelic as libelle_court",
|
|
484
|
+
"all_organismes.evelib as libelle",
|
|
485
|
+
rtrim(ref("all_organismes.evelil")).as("libelle_long"),
|
|
486
|
+
"all_organismes.typorgcod as type_code",
|
|
487
|
+
rtrim(ref("typorg.typorglib")).as("type_libelle"),
|
|
488
|
+
concat(val("https://www.senat.fr"), ref("all_organismes.orgurlsim")).as("url"),
|
|
489
|
+
toDateString(ref("all_organismes.orgdatcre")).as("date_debut"),
|
|
490
|
+
toDateString(ref("all_organismes.orgdatfin")).as("date_fin"),
|
|
491
|
+
"all_organismes.temvalcod as etat",
|
|
492
|
+
])
|
|
493
|
+
|
|
494
|
+
export type SenateurResult = InferResult<typeof findAllQuery>[0]
|
|
495
|
+
export type CirconscriptionResult = InferResult<typeof findAllCirconscriptionsQuery>[0]
|
|
496
|
+
export type OrganismeResult = InferResult<typeof findAllOrganismesQuery>[0]
|
|
497
|
+
|
|
498
|
+
export function findAll () {
|
|
499
|
+
return findAllQuery.stream()
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
export function findAllCirconscriptions () {
|
|
503
|
+
return findAllCirconscriptionsQuery.stream()
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
export function findAllOrganismes () {
|
|
507
|
+
return findAllOrganismesQuery.stream()
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
export function findActif (): AsyncIterableIterator<{ senmat: string, sennomuse: string, senprenomuse: string }> {
|
|
511
|
+
return dbSens
|
|
512
|
+
.selectFrom("sen")
|
|
513
|
+
.where("etasencod", "=", "ACTIF")
|
|
514
|
+
.select(["senmat", "sennomuse", "senprenomuse"])
|
|
515
|
+
.stream()
|
|
516
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ExposeDesMotifs, FlatTexte } from "../types/texte";
|
|
2
|
+
export declare function transformTexte(document: Document): FlatTexte | null;
|
|
3
|
+
export declare function transformExposeDesMotifs(document: Document): ExposeDesMotifs | null;
|
|
4
|
+
export declare function parseTexte(texteXml: string): FlatTexte | null;
|
|
5
|
+
export declare function parseTexteFromFile(xmlFilePath: string): Promise<FlatTexte | null>;
|
|
6
|
+
export declare function parseExposeDesMotifs(exposeDesMotifsHtml: string): ExposeDesMotifs | null;
|
|
7
|
+
export declare function parseExposeDesMotifsFromFile(htmlFilePath: string): Promise<ExposeDesMotifs | null>;
|