UNPKG

@tricoteuses/senat

Version:

Handle French Sénat's open data

69 lines (65 loc) 1.37 kB
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)) }