From 7a3216a81ce0ea07b03bdc9d75c18167c0d1d19c Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Mon, 8 Jul 2024 20:39:00 +0530 Subject: [PATCH] feat: migration script for multi-user classes --- ...0240708200454-create_multiuser_classes.cjs | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 apps/OpenSignServer/databases/migrations/20240708200454-create_multiuser_classes.cjs diff --git a/apps/OpenSignServer/databases/migrations/20240708200454-create_multiuser_classes.cjs b/apps/OpenSignServer/databases/migrations/20240708200454-create_multiuser_classes.cjs new file mode 100644 index 000000000..258d1d6e6 --- /dev/null +++ b/apps/OpenSignServer/databases/migrations/20240708200454-create_multiuser_classes.cjs @@ -0,0 +1,53 @@ +/** + * + * @param {Parse} Parse + */ +exports.up = async Parse => { + const teamschema = new Parse.Schema('contracts_Teams'); + teamschema.addString('Name'); + teamschema.addBoolean('IsActive', { defaultValue: true }); + teamschema.addPointer('ParentId', 'contracts_Teams'); + teamschema.addPointer('OrganizationId', 'contracts_Organizations'); + teamschema.addArray('Ancestors'); + await teamschema.save(); + + const orgSchema = new Parse.Schema('contracts_Organizations'); + orgSchema.addString('Name'); + orgSchema.addBoolean('IsActive', { defaultValue: true }); + orgSchema.addPointer('TenantId', 'partners_Tenant'); + orgSchema.addPointer('CreatedBy', '_User'); + orgSchema.addPointer('ExtUserId', 'contracts_Users'); + await orgSchema.save(); + + const schema = new Parse.Schema('contracts_Users'); + schema.addBoolean('IsDisabled', { defaultValue: false }); + schema.addPointer('OrganizationId', 'contracts_Organizations'); + schema.addArray('TeamIds'); + await schema.update(); + + const templateschema = new Parse.Schema('contracts_Template'); + templateschema.addArray('SharedWith'); + return templateschema.update(); +}; + +/** + * + * @param {Parse} Parse + */ +exports.down = async Parse => { + const teamschema = new Parse.Schema('contracts_Teams'); + await teamschema.purge().then(() => teamschema.delete()); + + const orgSchema = new Parse.Schema('contracts_Organizations'); + await orgSchema.purge().then(() => orgSchema.delete()); + + const schema = new Parse.Schema('contracts_Users'); + schema.deleteField('IsDisabled'); + schema.deleteField('OrganizationId'); + schema.deleteField('TeamIds'); + await schema.update(); + + const templateschema = new Parse.Schema('contracts_Template'); + templateschema.deleteField('SharedWith'); + return templateschema.update(); +};