Преглед на файлове

добавлена zod валидация uuid

Vadim преди 7 месеца
родител
ревизия
244bccff4a
променени са 6 файла, в които са добавени 93 реда и са изтрити 92 реда
  1. 3 3
      src/api/auth-api.ts
  2. 8 8
      src/api/companies-management-api.ts
  3. 17 17
      src/api/events-management-api.ts
  4. 6 6
      src/api/locations-management-api.ts
  5. 17 16
      src/api/tasks-management-api.ts
  6. 42 42
      src/db/db-shema.ts

+ 3 - 3
src/api/auth-api.ts

@@ -31,7 +31,7 @@ class authApi {
           accessToken: z.string(),
           refreshToken: z.string(),
           email: z.string().email(),
-          userId: z.string(),
+          userId: z.string().uuid(),
         }),
       }),
       z.object({ code: z.literal("pinIsWrong"), triesRemained: z.number() }),
@@ -56,7 +56,7 @@ class authApi {
           accessToken: z.string(),
           refreshToken: z.string(),
           email: z.string().email(),
-          userId: z.string(),
+          userId: z.string().uuid(),
         })
         .optional(),
     }),
@@ -84,7 +84,7 @@ class authApi {
         accessToken: z.string(),
         refreshToken: z.string(),
         email: z.string().email(),
-        userId: z.string(),
+        userId: z.string().uuid(),
       }),
     }),
   };

+ 8 - 8
src/api/companies-management-api.ts

@@ -20,9 +20,9 @@ class companyManagementApi {
       code: z.enum(["success"]),
       companies: z.array(
         z.object({
-          company_id: z.string(),
+          company_id: z.string().uuid(),
           name: z.string(),
-          owner_id: z.string(),
+          owner_id: z.string().uuid(),
           timezone: z.string(),
         }),
       ),
@@ -38,26 +38,26 @@ class companyManagementApi {
     res: z.object({
       code: z.enum(["success"]),
       company: z.object({
-        company_id: z.string(),
+        company_id: z.string().uuid(),
         name: z.string(),
-        owner_id: z.string(),
+        owner_id: z.string().uuid(),
         timezone: z.string(),
 
         events: z.array(
           z.object({
-            event_id: z.string(),
+            event_id: z.string().uuid(),
             local_name: z.string(),
             timezone: z.string(),
-            company_id: z.string(),
+            company_id: z.string().uuid(),
             dates: z.array(z.date()),
           }),
         ),
 
         employees: z.array(
           z.object({
-            user_id: z.string(),
+            user_id: z.string().uuid(),
             user_name: z.string(),
-            role_id: z.string(),
+            role_id: z.string().uuid(),
             role_name: z.string(),
           }),
         ),

+ 17 - 17
src/api/events-management-api.ts

@@ -7,10 +7,10 @@ class eventsManagementApi {
         localName: z.string(),
         timezone: z.string().optional(),
         dates: z.array(z.string()),
-        companyId: z.string(),
+        companyId: z.string().uuid(),
         rolesToAdd: z.array(
           z.object({
-            roleId: z.string(),
+            roleId: z.string().uuid(),
             name: z.string(),
             description: z.string(),
             permissions: z.array(
@@ -23,15 +23,15 @@ class eventsManagementApi {
         ),
         staff: z.array(
           z.object({
-            userId: z.string(),
-            roleId: z.string(),
+            userId: z.string().uuid(),
+            roleId: z.string().uuid(),
           }),
         ),
       })
       .strict(),
     res: z.object({
       code: z.enum(["success"]),
-      event_id: z.string(),
+      event_id: z.string().uuid(),
     }),
   };
 
@@ -40,7 +40,7 @@ class eventsManagementApi {
       code: z.enum(["success"]),
       roles: z.array(
         z.object({
-          role_id: z.string(),
+          role_id: z.string().uuid(),
           name: z.string(),
           description: z.string(),
         }),
@@ -49,35 +49,35 @@ class eventsManagementApi {
   };
 
   ZGetEvent = {
-    req: z.object({ eventId: z.string() }).strict(),
+    req: z.object({ eventId: z.string().uuid() }).strict(),
     res: z.object({
       code: z.enum(["success"]),
       event: z.object({
-        event_id: z.string(),
+        event_id: z.string().uuid(),
         local_name: z.string(),
         timezone: z.string(),
         dates: z.array(z.date()),
         programPoints: z.array(
           z.object({
-            program_point_id: z.string(),
+            program_point_id: z.string().uuid(),
             name: z.string(),
             start_date: z.date(),
             end_date: z.date(),
-            room_id: z.string().nullable(),
+            room_id: z.string().uuid().nullable(),
             is_internal: z.boolean(),
           }),
         ),
 
         rooms: z.array(
           z.object({
-            room_id: z.string(),
+            room_id: z.string().uuid(),
             name: z.string(),
           }),
         ),
 
         taskBlocks: z.array(
           z.object({
-            task_block_id: z.string(),
+            task_block_id: z.string().uuid(),
             name: z.string(),
           }),
         ),
@@ -88,11 +88,11 @@ class eventsManagementApi {
   ZCreateProgramPoint = {
     req: z
       .object({
-        eventId: z.string(),
+        eventId: z.string().uuid(),
         name: z.string(),
         startDate: z.string(),
         endDate: z.string(),
-        roomId: z.string().optional(),
+        roomId: z.string().uuid().optional(),
         isInternal: z.boolean(),
       })
       .strict(),
@@ -104,7 +104,7 @@ class eventsManagementApi {
   ZUpdateEvent = {
     req: z
       .object({
-        eventId: z.string(),
+        eventId: z.string().uuid(),
         localName: z.string().optional(),
         timezone: z.string().optional(),
         dates: z.array(z.string()).optional(),
@@ -118,11 +118,11 @@ class eventsManagementApi {
   ZUpdateProgramPoint = {
     req: z
       .object({
-        programPointId: z.string(),
+        programPointId: z.string().uuid(),
         name: z.string(),
         startDate: z.string(),
         endDate: z.string(),
-        roomId: z.string().optional(),
+        roomId: z.string().uuid().optional(),
       })
       .strict(),
     res: z.object({

+ 6 - 6
src/api/locations-management-api.ts

@@ -5,11 +5,11 @@ class locationsManagementApi {
     req: z
       .object({
         name: z.string(),
-        eventId: z.string(),
+        eventId: z.string().uuid(),
         rooms: z.array(
           z.object({
             name: z.string(),
-            parentId: z.string().nullable(),
+            parentId: z.string().uuid().nullable(),
           }),
         ),
       })
@@ -23,7 +23,7 @@ class locationsManagementApi {
   ZGetEventLocations = {
     req: z
       .object({
-        eventId: z.string(),
+        eventId: z.string().uuid(),
       })
       .strict(),
 
@@ -31,13 +31,13 @@ class locationsManagementApi {
       code: z.enum(["success"]),
       locations: z.array(
         z.object({
-          location_id: z.string(),
+          location_id: z.string().uuid(),
           name: z.string(),
           rooms: z.array(
             z.object({
-              room_id: z.string(),
+              room_id: z.string().uuid(),
               name: z.string(),
-              parent_id: z.string().nullable(),
+              parent_id: z.string().uuid().nullable(),
             }),
           ),
         }),

+ 17 - 16
src/api/tasks-management-api.ts

@@ -4,7 +4,7 @@ class tasksManagementApi {
   ZCreateTaskBlock = {
     req: z
       .object({
-        eventId: z.string(),
+        eventId: z.string().uuid(),
         name: z.string(),
       })
       .strict(),
@@ -16,7 +16,7 @@ class tasksManagementApi {
   ZUpdateTaskBlock = {
     req: z
       .object({
-        taskBlockId: z.string(),
+        taskBlockId: z.string().uuid(),
         name: z.string(),
       })
       .strict(),
@@ -31,11 +31,11 @@ class tasksManagementApi {
         name: z.string(),
         startDate: z.string().nullable(),
         endDate: z.string().nullable(),
-        accountableId: z.string().nullable(),
+        accountableId: z.string().uuid().nullable(),
         isTodo: z.boolean(),
-        programPointId: z.string().nullable(),
-        roomId: z.string().nullable(),
-        taskBlockId: z.string(),
+        programPointId: z.string().uuid().nullable(),
+        roomId: z.string().uuid().nullable(),
+        taskBlockId: z.string().uuid(),
         executors: z.array(z.string()),
       })
       .strict(),
@@ -47,15 +47,16 @@ class tasksManagementApi {
   ZUpdateTask = {
     req: z
       .object({
-        taskId: z.string(),
+        taskId: z.string().uuid(),
 
         name: z.string().optional(),
         startDate: z.string().nullable().optional(),
         endDate: z.string().nullable().optional(),
-        accountableId: z.string().nullable().optional(),
+        // TODO: проверить optional
+        accountableId: z.string().uuid().nullable().optional(),
         isTodo: z.boolean().optional(),
-        programPointId: z.string().nullable().optional(),
-        roomId: z.string().nullable().optional(),
+        programPointId: z.string().uuid().nullable().optional(),
+        roomId: z.string().uuid().nullable().optional(),
         executors: z.array(z.string()).optional(),
       })
       .strict(),
@@ -65,20 +66,20 @@ class tasksManagementApi {
   };
 
   ZGetBlockTasks = {
-    req: z.object({ taskBlockId: z.string() }).strict(),
+    req: z.object({ taskBlockId: z.string().uuid() }).strict(),
     res: z.object({
       code: z.enum(["success"]),
       tasks: z.array(
         z.object({
-          task_id: z.string(),
+          task_id: z.string().uuid(),
           name: z.string(),
           start_date: z.date().nullable(),
           end_date: z.date().nullable(),
-          accountable_id: z.string().nullable(),
+          accountable_id: z.string().uuid().nullable(),
           is_todo: z.boolean(),
-          program_point_id: z.string().nullable(),
-          room_id: z.string().nullable(),
-          task_block_id: z.string(),
+          program_point_id: z.string().uuid().nullable(),
+          room_id: z.string().uuid().nullable(),
+          task_block_id: z.string().uuid(),
           executors: z.array(z.string()),
         }),
       ),

+ 42 - 42
src/db/db-shema.ts

@@ -4,24 +4,24 @@ import { z } from "zod";
 const ZDbShema = {
   events_management: {
     events: {
-      event_id: z.string(),
+      event_id: z.string().uuid(),
       local_name: z.string(),
       timezone: z.string(),
-      company_id: z.string(),
+      company_id: z.string().uuid(),
     },
 
     event_dates: {
-      event_id: z.string(),
+      event_id: z.string().uuid(),
       date: z.date(),
     },
 
     program_points: {
-      program_point_id: z.string(),
+      program_point_id: z.string().uuid(),
       name: z.string().min(1),
       start_date: z.date(),
       end_date: z.date(),
-      event_id: z.string(),
-      room_id: z.string().nullable(),
+      event_id: z.string().uuid(),
+      room_id: z.string().uuid().nullable(),
       group: z.string(),
       is_internal: z.boolean(),
     },
@@ -29,61 +29,61 @@ const ZDbShema = {
 
   companies_management: {
     companies: {
-      company_id: z.string(),
+      company_id: z.string().uuid(),
       name: z.string(),
-      owner_id: z.string(),
+      owner_id: z.string().uuid(),
       timezone: z.string(),
     },
   },
 
   tasks_management: {
     tasks: {
-      task_id: z.string(),
+      task_id: z.string().uuid(),
       name: z.string(),
       start_date: z.date().nullable(),
       end_date: z.date().nullable(),
-      accountable_id: z.string().nullable(),
+      accountable_id: z.string().uuid().nullable(),
       is_todo: z.boolean(),
-      program_point_id: z.string().nullable(),
-      room_id: z.string().nullable(),
-      task_block_id: z.string(),
+      program_point_id: z.string().uuid().nullable(),
+      room_id: z.string().uuid().nullable(),
+      task_block_id: z.string().uuid(),
     },
 
     task_blocks: {
-      task_block_id: z.string(),
+      task_block_id: z.string().uuid(),
       name: z.string(),
-      event_id: z.string(),
+      event_id: z.string().uuid(),
     },
 
     task_executors: {
-      task_id: z.string(),
-      user_id: z.string(),
+      task_id: z.string().uuid(),
+      user_id: z.string().uuid(),
     },
   },
 
   locations_management: {
     locations: {
-      location_id: z.string(),
+      location_id: z.string().uuid(),
       name: z.string(),
-      event_id: z.string(),
+      event_id: z.string().uuid(),
     },
 
     rooms: {
-      room_id: z.string(),
+      room_id: z.string().uuid(),
       name: z.string(),
-      location_id: z.string(),
-      parent_id: z.string().nullable(),
+      location_id: z.string().uuid(),
+      parent_id: z.string().uuid().nullable(),
     },
 
     event_locations: {
-      event_id: z.string(),
-      location_id: z.string(),
+      event_id: z.string().uuid(),
+      location_id: z.string().uuid(),
     },
   },
 
   users_management: {
     users: {
-      user_id: z.string(),
+      user_id: z.string().uuid(),
       email: z.string().email(),
       name: z.string(),
       password: z.string(),
@@ -92,11 +92,11 @@ const ZDbShema = {
 
     user_refresh_tokens: {
       refresh_token: z.string(),
-      user_id: z.string(),
+      user_id: z.string().uuid(),
     },
 
     confirm_pins: {
-      transaction_id: z.string(),
+      transaction_id: z.string().uuid(),
       email: z.string().email(),
       confirm_pin: z.number().min(1000).max(9999),
       create_time: z.date(),
@@ -106,29 +106,29 @@ const ZDbShema = {
 
   permissions_management: {
     user_roles: {
-      user_id: z.string(),
-      role_id: z.string(),
-      entity_id: z.string(),
+      user_id: z.string().uuid(),
+      role_id: z.string().uuid(),
+      entity_id: z.string().uuid(),
     },
 
     non_default_roles_overrides: {
-      entity_id: z.string(),
-      role_id: z.string(),
+      entity_id: z.string().uuid(),
+      role_id: z.string().uuid(),
       permission_id: z.string(),
       permission_value_id: z.string(),
     },
 
     roles: {
-      role_id: z.string(),
+      role_id: z.string().uuid(),
       name: z.string(),
       description: z.string(),
-      entity_id: z.string().nullable(),
+      entity_id: z.string().uuid().nullable(),
       entity_type_id: z.string(),
       is_system: z.boolean(),
     },
 
     permissions: {
-      permission_id: z.string(),
+      permission_id: z.string().uuid(),
       name: z.string(),
       entity_type_id: z.string(),
     },
@@ -138,18 +138,18 @@ const ZDbShema = {
       permission_id: z.string(),
       name: z.string(),
       is_default: z.boolean(),
-      parent_id: z.string().nullable(),
+      parent_id: z.string().uuid().nullable(),
     },
 
     cached_user_permissions: {
-      user_id: z.string(),
-      entity_id: z.string(),
+      user_id: z.string().uuid(),
+      entity_id: z.string().uuid(),
       permission_id: z.string(),
       permission_value_id: z.string(),
     },
 
     default_roles_overrides: {
-      role_id: z.string(),
+      role_id: z.string().uuid(),
       permission_id: z.string(),
       permission_value_id: z.string(),
     },
@@ -157,13 +157,13 @@ const ZDbShema = {
 
   entities_management: {
     entities: {
-      entity_id: z.string(),
+      entity_id: z.string().uuid(),
       entity_type_id: z.string(),
-      parent_id: z.string().nullable(),
+      parent_id: z.string().uuid().nullable(),
     },
 
     entity_types: {
-      entity_type_id: z.string(),
+      entity_type_id: z.string().uuid(),
       name: z.string(),
     },
   },