Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3'; import { getLogger } from '@/utils/common/logger'; const logger = getLogger('utils/backend/shiftData'); const s3 = new S3Client(); export const SHIFT_S3_BUCKET = process.env.COSTS_BUCKET; export const SHIFT_S3_KEY = 'shift-data.json'; export const shiftNameMappings: { [key: string]: string } = { 'Baca Grande-Crestone Ambulance': 'EMS', 'Baca Fire': 'Fire', 'NSCAD': 'EMS', }; export interface ShiftData { people: { [id: string]: string; }; shifts: { id: string; start: number; end: number; department: string; }[]; } export async function getShiftData(): Promise<ShiftData> { try { const rawData = await s3.send(new GetObjectCommand({ Bucket: SHIFT_S3_BUCKET, Key: SHIFT_S3_KEY, })); if (typeof rawData.Body === 'undefined') { return { people: {}, shifts: [], }; } return JSON.parse(await rawData?.Body.transformToString('utf-8')) as ShiftData; } catch (e) { logger.error('Failed to get cached alarm data', e); return { people: {}, shifts: [], }; } } |