diff --git a/api/src/captions.js b/api/src/captions.js index cd97305..c7790b5 100644 --- a/api/src/captions.js +++ b/api/src/captions.js @@ -152,4 +152,27 @@ export default class Captions { }) return results.hits.hits.map(this.mapResult) } + + async fetchProgrammeList() { + const query = { + size: 0, + aggs: { + programmes: { + composite: { + sources: [ + { id: { terms: {field: 'programme_id.keyword' } } }, + { title: { terms: {field: 'programme_title.keyword' } } }, + { date: { date_histogram: { field: 'programme_date', calendar_interval: '1d', format: 'yyyy-MM-dd' } } } + ], + size : 10000 + } + } + } + } + const results = await this.client.search({ + index: 'captions', + body: query + }) + return results.aggregations.programmes.buckets.map(d => { return d.key }) + } } diff --git a/api/src/index.js b/api/src/index.js index 0ed5752..54845b3 100644 --- a/api/src/index.js +++ b/api/src/index.js @@ -43,5 +43,10 @@ app.get('/fetchContext', cors(), async (request, response) => { response.json(results) }) +app.get('/fetchProgrammeList', cors(), async (request, response) => { + const results = await captions.fetchProgrammeList() + response.json(results) +}) + // Register express routes & serve app.listen(PORT, () => console.log(`Server running on port ${PORT}`)) diff --git a/web/src/App.vue b/web/src/App.vue index 5a2affa..dec7b9e 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -7,6 +7,9 @@