2 files changed, 28 insertions, 10 deletions
diff --git a/src/dto/AlarmDto.js b/src/dto/AlarmDto.js
new file mode 100644
index 0000000..281311d
--- /dev/null
+++ b/src/dto/AlarmDto.js
@@ -0,0 +1,27 @@
+import { SafeNSoundError } from '#util/error.js';
+import Joi from 'joi';
+import { AlarmType } from '#db/schemas/index.js';
+
+/**
+ * Generic authentication DTO.
+ */
+export class AlarmDto {
+ static schema = new Joi.object({
+ createdAt: Joi.date().optional(),
+ reason: Joi.string().valid(...Object.values(AlarmType))
+ });
+
+ createdAt;
+ reason;
+
+ static async create(data) {
+ const obj = new AlarmDto();
+ for (const key of Object.keys(data)) {
+ if (key in obj) {
+ obj[key] = data[key];
+ }
+ }
+
+ return await AlarmDto.schema.validateAsync(obj);
+ }
+}
diff --git a/src/dto/auth/AuthDto.js b/src/dto/auth/AuthDto.js
index 22e2620..0a4c8dd 100644
--- a/src/dto/auth/AuthDto.js
+++ b/src/dto/auth/AuthDto.js
@@ -23,15 +23,6 @@ export class AuthDto {
}
}
- try {
- return await AuthDto.schema.validateAsync(obj);
- } catch (e) {
- console.log(e);
- throw new SafeNSoundError({
- errCode: 'JOI_VALIDATION_ERROR',
- message: e.message,
- validation_details: e.details
- });
- }
+ return await AuthDto.schema.validateAsync(obj);
}
}
|