Back

Alternative way without secureSchema function ?

  • 1
  • Databases
  • Self Hosted
  • Web
iiammehmet
24 Apr, 2024, 20:30

Hi, what's the alternative way to hide specific keys? I've created a function, but I believe there might be another way to achieve this.

TypeScript
function secureSchema<T extends Record<string, any>>(doc: T): Omit<T, "$permissions" | "$databaseId" | "$collectionId"> {
  const secureDoc: any = { ...doc }; 

  function removeSecureProps(obj: any) {
    for (const prop in obj) {
      if (obj[prop] !== null && typeof obj[prop] === 'object') {
        removeSecureProps(obj[prop]);
      }
      if (prop === '$permissions' || prop === '$databaseId' || prop === '$collectionId') {
        delete obj[prop]; 
      }
    }
  }

  removeSecureProps(secureDoc);

  return secureDoc; 
}
  //Services
  async readAll(): Promise<VideoSchemaType[]> {
    const documents = await database.listDocuments(dbId, videoCollectionId);
    const data = documents.documents.map((doc: any) => secureSchema(doc)) as VideoSchemaType[];
    return data;
  }
TL;DR
Function `secureSchema` is used to hide specific keys in an object. An alternative way to achieve this without using the `secureSchema` function is by directly removing the desired keys from the object where necessary.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more