@tricoteuses/senat
Version:
Handle French Sénat's open data
69 lines (65 loc) • 1.37 kB
text/typescript
import {
Debat, debatsFieldsToTrim,
LecAssDeb, lecassdebFieldsToTrim,
} from '../types/debats'
import { dbByName } from "../databases"
import { trimFieldsRight } from '../fields'
export const getDebats = async (ids: string[]): Promise<Debat[]> => {
if (ids.length === 0) {
return []
}
return (
await dbByName.debats.any(
`
SELECT *
FROM debats
WHERE datsea IN ($<ids:list>)
`,
{
ids,
},
)
).map((debat: Debat) => trimFieldsRight(debatsFieldsToTrim, debat))
}
export const getDebatsFromLecassidts = async (
ids: string[],
): Promise<Debat[]> => {
if (ids.length === 0) {
return []
}
return (
await dbByName.debats.any(
`
SELECT *
FROM debats
WHERE datsea IN (
SELECT datsea
FROM lecassdeb
WHERE lecassidt IN ($<ids:list>)
)
`,
{
ids,
},
)
).map((debat: Debat) => trimFieldsRight(debatsFieldsToTrim, debat))
}
export const getLecAssDebsFromDatseas = async (
ids: string[],
): Promise<LecAssDeb[]> => {
if (ids.length === 0) {
return []
}
return (
await dbByName.debats.any(
`
SELECT *
FROM lecassdeb
WHERE datsea IN ($<ids:list>)
`,
{
ids,
},
)
).map((lecassdeb: LecAssDeb) => trimFieldsRight(lecassdebFieldsToTrim, lecassdeb))
}