Browse Source

refactor: update localpersistance schema

nivedin 1 year ago
parent
commit
6526247869

+ 27 - 0
packages/hoppscotch-common/src/services/persistence/validation-schemas/index.ts

@@ -3,7 +3,9 @@ import {
   GQLHeader,
   HoppGQLAuth,
   HoppGQLRequest,
+  HoppRESTAuth,
   HoppRESTRequest,
+  HoppRESTHeaders,
 } from "@hoppscotch/data"
 import { entityReference } from "verzod"
 import { z } from "zod"
@@ -62,12 +64,18 @@ const HoppGQLRequestSchema = entityReference(HoppGQLRequest)
 const HoppRESTCollectionSchema = HoppCollectionSchemaCommonProps.extend({
   folders: z.array(z.lazy(() => HoppRESTCollectionSchema)),
   requests: z.optional(z.array(HoppRESTRequestSchema)),
+
+  auth: z.optional(HoppRESTAuth),
+  headers: z.optional(HoppRESTHeaders),
 }).strict()
 
 // @ts-expect-error recursive schema
 const HoppGQLCollectionSchema = HoppCollectionSchemaCommonProps.extend({
   folders: z.array(z.lazy(() => HoppGQLCollectionSchema)),
   requests: z.optional(z.array(HoppGQLRequestSchema)),
+
+  auth: z.optional(HoppGQLAuth),
+  headers: z.optional(z.array(GQLHeader)),
 }).strict()
 
 export const VUEX_SCHEMA = z.object({
@@ -276,6 +284,23 @@ const validGqlOperations = [
   "authorization",
 ] as const
 
+const HoppInheritedPropertySchema = z
+  .object({
+    auth: z.object({
+      parentID: z.string(),
+      parentName: z.string(),
+      inheritedAuth: z.union([HoppRESTAuth, HoppGQLAuth]),
+    }),
+    headers: z.array(
+      z.object({
+        parentID: z.string(),
+        parentName: z.string(),
+        inheritedHeader: z.union([HoppRESTHeaders, GQLHeader]),
+      })
+    ),
+  })
+  .strict()
+
 export const GQL_TAB_STATE_SCHEMA = z
   .object({
     lastActiveTabID: z.string(),
@@ -291,6 +316,7 @@ export const GQL_TAB_STATE_SCHEMA = z
             response: z.optional(z.nullable(GQLResponseEventSchema)),
             responseTabPreference: z.optional(z.string()),
             optionTabPreference: z.optional(z.enum(validGqlOperations)),
+            inheritedProperties: z.optional(HoppInheritedPropertySchema),
           })
           .strict(),
       })
@@ -462,6 +488,7 @@ export const REST_TAB_STATE_SCHEMA = z
             testResults: z.optional(z.nullable(HoppTestResultSchema)),
             responseTabPreference: z.optional(z.string()),
             optionTabPreference: z.optional(z.enum(validRestOperations)),
+            inheritedProperties: z.optional(HoppInheritedPropertySchema),
           })
           .strict(),
       })