@@ -2,7 +2,7 @@ import { fakerEN_GB as faker } from '@faker-js/faker'
22import xlsx from 'json-as-xlsx'
33
44import { DownloadFormat , DownloadType } from '../enums.js'
5- import { Programme , Team , Vaccination , User } from '../models.js'
5+ import { Programme , Session , Team , Vaccination , User } from '../models.js'
66import {
77 convertIsoDateToObject ,
88 convertObjectToIsoDate ,
@@ -44,6 +44,7 @@ export class Download {
4444 this . format = options ?. format || DownloadFormat . CSV
4545 this . type = options ?. type || DownloadType . Report
4646 this . programme_id = options ?. programme_id
47+ this . session_id = options ?. session_id
4748 this . team_ids = options ?. team_ids
4849 this . vaccination_uuids = options ?. vaccination_uuids || [ ]
4950 }
@@ -112,6 +113,8 @@ export class Download {
112113 switch ( true ) {
113114 case this . type === DownloadType . Report :
114115 return `${ this . programme . name } vaccination records`
116+ case this . type === DownloadType . Session :
117+ return `Offline spreadsheet for ${ this . session . name } `
115118 default :
116119 return 'Download'
117120 }
@@ -133,6 +136,22 @@ export class Download {
133136 }
134137 }
135138
139+ /**
140+ * Get session
141+ *
142+ * @returns {Session } Session
143+ */
144+ get session ( ) {
145+ try {
146+ const session = this . context ?. sessions [ this . session_id ]
147+ if ( session ) {
148+ return new Session ( session )
149+ }
150+ } catch ( error ) {
151+ console . error ( 'Download.session' , error . message )
152+ }
153+ }
154+
136155 /**
137156 * Get teams
138157 *
0 commit comments