Repo moved to Hasadna organization - hasadna/knesset-data-backend
This project is a backend for knesset-data-web-ui Backend server is available at https://oknesset-backend.herokuapp.com
Try API: https://oknesset-backend.herokuapp.com/api/committees-by-knesset/
git clone
npm install
Then npm start for standard/production mode OR npm run dev for development
On topic route, data service will be called to fetch the appropriate date. see file: committees.route.js
-
/committees-by-knesset- statistics of all committees per knesset- collection:{knesset-id, knesset-name, #committees-per-knesset, #meetings-per-knesset}
-
/committees-by-knesset/:knessetId'- committees data for specific knesset (id, name, meetings num)- single:{knesset-id, knesset-name}
- collection:{committee-id, committee-name, #meetings-per-knesset}
-
/committees-by-knesset/:knessetId/:committeeId'- all meetings of a specific committee (for specific knesset)- single:{knesset-id, knesset-name, committee-id, committee-name, mks-id-collection}
- collection:{meeting-id, meeting-name, meeting-date, has-protocol}
-
/committees-by-knesset/:knessetId/:committeeId/:meetingId'- specific meeting data (protocol)- single:{knesset-id, knesset-name, committee-id, committee-name, meeting-id, meeting-name, meeting-date, mks-id-collection, general-protocol-data}
- collection:{speaker, mk-id(-1 if not mk), content }
-
/legislation-by-knesset/- basic data about legislation for every knesset- single: {KnessetNum, #num_bills}
-
/legislation-by-knesset/:knessetNum- comprehensive data about legislation in a specific knesset -
/legislation- comprehensive data about legislation- single: {BillID, KnessetNum, Name, PrivateNumber, StatusID, PostponementReasonDesc, LastUpdatedDate, SubTypeID, SubTypeDesc}
- collection: {files, bill_initiators}
those queries can get more parameters:
- Name: to search in the bill name/title
- SubTypeDesc: (פרטית, ממשלתית או ועדה)
- PrivateNumber: for private legislation
- page: to get the next 20 results (start from 1)
- StatusId: to search by statuses (#TODO: list statuses number and meaning)
- BillID: ID in knesset site.
- "Start" or "End" can be appended to numeric params.
examples:
/legislation-by-knesset/20?SubTypeDesc=ממשלתית
/legislation?Name=ציבורי&page=2
/legislation-by-knesset/19?SubTypeDesc=פרטית&PrivateNumberStart=50&PrivateNumberEnd=60
Routes will be cached using nano-cache for specific period of time. see data.service.js.
To avoid caching or set specific TTL for cache - add the following line to secrets/db.config.json:
"dbCacheTtl" : 1
Build
docker build -t knesset-data-backend .
Create DB credentials file
{
"user": "",
"database": "",
"password": "",
"host": "",
"port": 1234
}
Run (replace DB_CREDENTIALS_FILE with path to the file you created)
docker run -it -v DB_CREDENTIALS_FILE:/home/node/secrets/db.config.json \
-p 4000:4000 knesset-data-backend
Backend should be available at http://localhost:4000/api/committees-by-knesset
Merges to master are automatically deployed to: https://api.oknesset.org