fix some bug and produce many problem to solve later

This commit is contained in:
2024-11-02 16:27:28 +07:00
parent e86d979ddb
commit 1a5577f8e6
15 changed files with 751 additions and 509 deletions

View File

@@ -22,25 +22,25 @@ export const ConfigConstants: Record<
MID_DAY_BREAK_TIME_START: {
name: 'Mid Day Break Time Start',
key: 'MID_DAY_BREAK_TIME_START',
value: new Date(new Date().setUTCHours(12, 0, 0, 0)).toISOString(),
value: '12:00:00',
visible: true,
},
MID_DAY_BREAK_TIME_END: {
name: 'Mid Day Break Time End',
key: 'MID_DAY_BREAK_TIME_END',
value: new Date(new Date().setUTCHours(13, 0, 0, 0)).toISOString(),
value: '13:00:00',
visible: true,
},
SLOT_START_TIME: {
name: 'Slot Start Time',
key: 'SLOT_START_TIME',
value: new Date(new Date().setUTCHours(8, 0, 0, 0)).toISOString(),
DAY_START_TIME: {
name: 'Day Start Time',
key: 'DAY_START_TIME',
value: '08:00:00',
visible: true,
},
SLOT_END_TIME: {
name: 'Slot End Time',
key: 'SLOT_END_TIME',
value: new Date(new Date().setUTCHours(22, 0, 0, 0)).toISOString(),
DAY_END_TIME: {
name: 'Day End Time',
key: 'DAY_END_TIME',
value: '22:00:00',
visible: true,
},
}

View File

@@ -3,6 +3,7 @@ import { Injectable, OnModuleInit } from '@nestjs/common'
import { PrismaService } from 'src/Prisma/prisma.service'
import { ConfigConstants } from './appconfig.constant'
import { Config } from '@prisma/client'
import { StringUtils } from 'src/common/utils/string.utils'
@Injectable()
export class AppConfigService implements OnModuleInit {
@@ -37,9 +38,14 @@ export class AppConfigService implements OnModuleInit {
}
async getVisibleConfigs() {
return await this.prisma.config.findMany({
const configs = await this.prisma.config.findMany({
where: { visible: true },
})
// map to camelCase
return configs.map((config) => ({
...config,
key: StringUtils.sneakyCaseToCamelCase(config.key),
}))
}
async updateConfig(key: string, value: string) {
@@ -63,6 +69,16 @@ export class AppConfigService implements OnModuleInit {
})
}
async getDefaultConfig() {
return Object.entries(ConfigConstants).reduce((acc, [key, value]) => {
if (value.visible) {
// @ts-ignore
acc[key] = value.value
}
return acc
}, {})
}
async resetAllConfigs() {
// reset all configs to default values
Object.entries(ConfigConstants).forEach(async ([_key, value]) => {