94 lines
3 KiB
JavaScript
94 lines
3 KiB
JavaScript
import { useMainStore } from '@/store';
|
|
|
|
const getAlertReasons = async (ctu) => {
|
|
const store = useMainStore();
|
|
const alertReasons = await store.getAlertReasonsByCtu(ctu);
|
|
|
|
return Promise.resolve(alertReasons);
|
|
};
|
|
|
|
// This function will go away after testing.
|
|
// The Service already went through testing and had these removed from it.
|
|
export async function mockGetAlertReasons(ctu) {
|
|
let retList = [];
|
|
if (ctu === '01853') { // Ocala, FL 34470
|
|
retList = [
|
|
'Hurricane', 'ExtremeTemperature'
|
|
];
|
|
} else if (ctu === '01814') { // Phoenix, AZ 85026
|
|
retList = [
|
|
'ExtremeTemperature'
|
|
];
|
|
} else if (ctu === '01845') { // Raleigh, NC 27601
|
|
retList = [
|
|
'Hurricane'
|
|
];
|
|
}
|
|
return Promise.resolve(retList);
|
|
}
|
|
|
|
export function calcDaysBetweenDates(dateString1, dateString2) {
|
|
const date1 = new Date(dateString1);
|
|
const date2 = new Date(dateString2);
|
|
const timeDifference = Math.abs(date2 - date1); // Calculate the time difference in milliseconds
|
|
return Math.ceil(timeDifference / (1000 * 60 * 60 * 24)); // Convert milliseconds to days
|
|
}
|
|
|
|
export function convertDateToDateString(date) {
|
|
// returns YYYY-MM-DD format
|
|
if (date instanceof Date !== true) return null;
|
|
return (
|
|
`${date.getFullYear()
|
|
}-${
|
|
(`0${date.getMonth() + 1}`).slice(-2)
|
|
}-${
|
|
(`0${date.getDate()}`).slice(-2)}`
|
|
);
|
|
}
|
|
|
|
export function convertDateStringToDate(dateString) {
|
|
// dateString must be YYYY-MM-DD format
|
|
if (typeof dateString !== 'string') return null;
|
|
const dateParts = dateString.split('-');
|
|
return new Date(dateParts[0], parseInt(dateParts[1], 10) - 1, dateParts[2]);
|
|
}
|
|
|
|
export function sumDateString(dateString, daysToAdd) {
|
|
// dateString must be YYYY-MM-DD format
|
|
if (typeof dateString !== 'string') return null;
|
|
const date = convertDateStringToDate(dateString);
|
|
date.setDate(date.getDate() + daysToAdd);
|
|
return convertDateToDateString(date);
|
|
}
|
|
|
|
export function militaryToTwelveHourTime(timeString) {
|
|
// Expected input: "HH:MM"
|
|
if (typeof timeString !== 'string') return null;
|
|
let hours = parseInt(timeString.split(':')[0], 10);
|
|
const minutes = timeString.split(':')[1];
|
|
const meridianNotation = hours > 11 ? 'PM' : 'AM';
|
|
|
|
if (hours > 12) {
|
|
hours -= 12;
|
|
}
|
|
|
|
return `${hours}:${minutes} ${meridianNotation}`;
|
|
}
|
|
|
|
export function getDisplayTextForDurationLength(durationMinimum, durationMaximum) {
|
|
const isLongAppointment = durationMaximum >= 120;
|
|
const isDurationRange = durationMinimum !== durationMaximum;
|
|
|
|
const adjustedMinimum = isLongAppointment ? durationMinimum / 60 : durationMinimum;
|
|
const adjustedMaximum = isLongAppointment ? durationMaximum / 60 : durationMaximum;
|
|
|
|
const durationText = isDurationRange
|
|
? `${adjustedMinimum} - ${adjustedMaximum}`
|
|
: adjustedMinimum;
|
|
|
|
const unitText = isLongAppointment ? 'hours' : 'minutes';
|
|
|
|
return `${durationText} ${unitText}`;
|
|
}
|
|
|
|
export default getAlertReasons;
|