added enums to replace constants

This commit is contained in:
unknown
2024-10-06 15:44:49 +03:00
parent a5c1cad01c
commit 9a868c5757
68 changed files with 547 additions and 202 deletions
+2 -1
View File
@@ -1,11 +1,12 @@
import { registerAs } from '@nestjs/config';
import { BooleanValues } from '../constants/boolean-values.enum';
export default registerAs(
'email-config',
(): Record<string, any> => ({
SMTP_HOST: process.env.SMTP_HOST,
SMTP_PORT: parseInt(process.env.SMTP_PORT),
SMTP_SECURE: process.env.SMTP_SECURE === 'true',
SMTP_SECURE: process.env.SMTP_SECURE === BooleanValues.TRUE,
SMTP_USER: process.env.SMTP_USER,
SMTP_SENDER: process.env.SMTP_SENDER,
SMTP_PASSWORD: process.env.SMTP_PASSWORD,
+2 -1
View File
@@ -1,4 +1,5 @@
import { registerAs } from '@nestjs/config';
import { BooleanValues } from '../constants/boolean-values.enum';
export default registerAs(
'tuya-config',
@@ -7,6 +8,6 @@ export default registerAs(
TUYA_ACCESS_KEY: process.env.TUYA_ACCESS_KEY,
TUYA_EU_URL: process.env.TUYA_EU_URL,
TRUN_ON_TUYA_SOCKET:
process.env.TRUN_ON_TUYA_SOCKET === 'true' ? true : false,
process.env.TRUN_ON_TUYA_SOCKET === BooleanValues.TRUE ? true : false,
}),
);
@@ -0,0 +1,9 @@
// automation.enum.ts
export enum ActionExecutorEnum {
DEVICE_ISSUE = 'device_issue',
DELAY = 'delay',
}
export enum EntityTypeEnum {
DEVICE_REPORT = 'device_report',
}
@@ -0,0 +1,4 @@
export enum BatteryStatus {
RESIDUAL_ELECTRICITY = 'residual_electricity',
BATTERY_PERCENTAGE = 'battery_percentage',
}
@@ -0,0 +1,4 @@
export enum BooleanValues {
TRUE = 'true',
FALSE = 'false',
}
+14
View File
@@ -0,0 +1,14 @@
export enum DaysEnum {
SUN = 'Sun',
MON = 'Mon',
TUE = 'Tue',
WED = 'Wed',
THU = 'Thu',
FRI = 'Fri',
SAT = 'Sat',
}
export enum EnableDisableStatusEnum {
DISABLED = '0',
ENABLED = '1',
}
@@ -0,0 +1,4 @@
export enum DeviceStatuses {
REJECTED = 'rejected',
FULLFILLED = 'fulfilled',
}
@@ -0,0 +1,3 @@
export enum CommonErrorCodes {
DUPLICATE_ENTITY = '23505',
}
@@ -0,0 +1,99 @@
export enum CommonHours {
ONE = '01:00',
ONE_THIRTY = '01:30',
TWO = '02:00',
TWO_THIRTY = '02:30',
THREE = '03:00',
THREE_THIRTY = '03:30',
FOUR = '04:00',
FOUR_THIRTY = '04:30',
FIVE = '05:00',
FIVE_THIRTY = '05:30',
SIX = '06:00',
SIX_THIRTY = '06:30',
SEVEN = '07:00',
SEVEN_THIRTY = '07:30',
EIGHT = '08:00',
EIGHT_THIRTY = '08:30',
NINE = '09:00',
NINE_THIRTY = '09:30',
TEN = '10:00',
TEN_THIRTY = '10:30',
ELEVEN = '11:00',
ELEVEN_THIRTY = '11:30',
TWELVE = '12:00',
TWELVE_THIRTY = '12:30',
THIRTEEN = '13:00',
THIRTEEN_THIRTY = '13:30',
FOURTEEN = '14:00',
FOURTEEN_THIRTY = '14:30',
FIFTEEN = '15:00',
FIFTEEN_THIRTY = '15:30',
SIXTEEN = '16:00',
SIXTEEN_THIRTY = '16:30',
SEVENTEEN = '17:00',
SEVENTEEN_THIRTY = '17:30',
EIGHTEEN = '18:00',
EIGHTEEN_THIRTY = '18:30',
NINETEEN = '19:00',
NINETEEN_THIRTY = '19:30',
TWENTY = '20:00',
TWENTY_THIRTY = '20:30',
TWENTY_ONE = '21:00',
TWENTY_ONE_THIRTY = '21:30',
TWENTY_TWO = '22:00',
TWENTY_TWO_THIRTY = '22:30',
TWENTY_THREE = '23:00',
TWENTY_THREE_THIRTY = '23:30',
TWENTY_FOUR = '24:00',
}
export enum CommonHourMinutes {
ONE = 60,
ONE_THIRTY = 90,
TWO = 120,
TWO_THIRTY = 150,
THREE = 180,
THREE_THIRTY = 210,
FOUR = 240,
FOUR_THIRTY = 270,
FIVE = 300,
FIVE_THIRTY = 330,
SIX = 360,
SIX_THIRTY = 390,
SEVEN = 420,
SEVEN_THIRTY = 450,
EIGHT = 480,
EIGHT_THIRTY = 510,
NINE = 540,
NINE_THIRTY = 570,
TEN = 600,
TEN_THIRTY = 630,
ELEVEN = 660,
ELEVEN_THIRTY = 690,
TWELVE = 720,
TWELVE_THIRTY = 750,
THIRTEEN = 780,
THIRTEEN_THIRTY = 810,
FOURTEEN = 840,
FOURTEEN_THIRTY = 870,
FIFTEEN = 900,
FIFTEEN_THIRTY = 930,
SIXTEEN = 960,
SIXTEEN_THIRTY = 990,
SEVENTEEN = 1020,
SEVENTEEN_THIRTY = 1050,
EIGHTEEN = 1080,
EIGHTEEN_THIRTY = 1110,
NINETEEN = 1140,
NINETEEN_THIRTY = 1170,
TWENTY = 1200,
TWENTY_THIRTY = 1230,
TWENTY_ONE = 1260,
TWENTY_ONE_THIRTY = 1290,
TWENTY_TWO = 1320,
TWENTY_TWO_THIRTY = 1350,
TWENTY_THREE = 1380,
TWENTY_THREE_THIRTY = 1410,
TWENTY_FOUR = 1440,
}
@@ -0,0 +1,4 @@
export enum PasswordType {
SINGLE = 'single',
MULTIPLE = 'multiple',
}
+9 -7
View File
@@ -1,9 +1,11 @@
import { DaysEnum } from './days.enum';
export enum WorkingDays {
Sun = 'Sun',
Mon = 'Mon',
Tue = 'Tue',
Wed = 'Wed',
Thu = 'Thu',
Fri = 'Fri',
Sat = 'Sat',
Sun = DaysEnum.SUN,
Mon = DaysEnum.MON,
Tue = DaysEnum.TUE,
Wed = DaysEnum.WED,
Thu = DaysEnum.THU,
Fri = DaysEnum.FRI,
Sat = DaysEnum.SAT,
}
@@ -2,10 +2,11 @@ import { Controller, Post, Param } from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { AddDeviceStatusDto } from '../dtos/add.devices-status.dto';
import { DeviceStatusFirebaseService } from '../services/devices-status.service';
import { EnableDisableStatusEnum } from '@app/common/constants/days.enum';
@ApiTags('Device Status Firebase Module')
@Controller({
version: '1',
version: EnableDisableStatusEnum.ENABLED,
path: 'device-status-firebase',
})
export class DeviceStatusFirebaseController {
@@ -1,3 +1,5 @@
import { EnableDisableStatusEnum } from '../constants/days.enum';
export function convertTimestampToDubaiTime(timestamp) {
// Convert timestamp to milliseconds
const date = new Date(timestamp * 1000);
@@ -8,12 +10,24 @@ export function convertTimestampToDubaiTime(timestamp) {
// Format the date as YYYYMMDD
const year = dubaiTime.getUTCFullYear();
const month = String(dubaiTime.getUTCMonth() + 1).padStart(2, '0'); // Months are zero-based
const day = String(dubaiTime.getUTCDate()).padStart(2, '0');
const month = String(dubaiTime.getUTCMonth() + 1).padStart(
2,
EnableDisableStatusEnum.DISABLED,
); // Months are zero-based
const day = String(dubaiTime.getUTCDate()).padStart(
2,
EnableDisableStatusEnum.DISABLED,
);
// Format the time as HH:MM (24-hour format)
const hours = String(dubaiTime.getUTCHours()).padStart(2, '0');
const minutes = String(dubaiTime.getUTCMinutes()).padStart(2, '0');
const hours = String(dubaiTime.getUTCHours()).padStart(
2,
EnableDisableStatusEnum.DISABLED,
);
const minutes = String(dubaiTime.getUTCMinutes()).padStart(
2,
EnableDisableStatusEnum.DISABLED,
);
// Return formatted date and time
return {
+24 -6
View File
@@ -1,24 +1,42 @@
export function getScheduleStatus(daysEnabled: string[]): string {
const daysMap: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
import { DaysEnum, EnableDisableStatusEnum } from '../constants/days.enum';
const schedule: string[] = Array(7).fill('0');
export function getScheduleStatus(daysEnabled: string[]): string {
const daysMap: string[] = [
DaysEnum.SUN,
DaysEnum.MON,
DaysEnum.TUE,
DaysEnum.WED,
DaysEnum.THU,
DaysEnum.FRI,
DaysEnum.SAT,
];
const schedule: string[] = Array(7).fill(EnableDisableStatusEnum.DISABLED);
daysEnabled.forEach((day) => {
const index: number = daysMap.indexOf(day);
if (index !== -1) {
schedule[index] = '1';
schedule[index] = EnableDisableStatusEnum.ENABLED;
}
});
return schedule.join('');
}
export function getEnabledDays(schedule: string): string[] {
const daysMap: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
const daysMap: string[] = [
DaysEnum.SUN,
DaysEnum.MON,
DaysEnum.TUE,
DaysEnum.WED,
DaysEnum.THU,
DaysEnum.FRI,
DaysEnum.SAT,
];
const enabledDays: string[] = [];
// Iterate through the schedule string
for (let i = 0; i < schedule.length; i++) {
if (schedule[i] === '1') {
if (schedule[i] === EnableDisableStatusEnum.ENABLED) {
enabledDays.push(daysMap[i]);
}
}