WIP - add and remove shares
This commit is contained in:
@@ -147,14 +147,16 @@ export class RecordSharingController {
|
||||
|
||||
if (existingShare) {
|
||||
// Update existing share
|
||||
await RecordShare.query(knex)
|
||||
.patchAndFetchById(existingShare.id, {
|
||||
accessLevel: {
|
||||
await knex('record_shares')
|
||||
.where({ id: existingShare.id })
|
||||
.update({
|
||||
accessLevel: JSON.stringify({
|
||||
canRead: data.canRead,
|
||||
canEdit: data.canEdit,
|
||||
canDelete: data.canDelete,
|
||||
},
|
||||
expiresAt: data.expiresAt ? new Date(data.expiresAt) : null,
|
||||
}),
|
||||
expiresAt: data.expiresAt ? data.expiresAt : null,
|
||||
updatedAt: knex.fn.now(),
|
||||
});
|
||||
|
||||
return RecordShare.query(knex)
|
||||
@@ -163,21 +165,21 @@ export class RecordSharingController {
|
||||
}
|
||||
|
||||
// Create new share
|
||||
const share = await RecordShare.query(knex).insert({
|
||||
const [shareId] = await knex('record_shares').insert({
|
||||
objectDefinitionId: objectDef.id,
|
||||
recordId,
|
||||
granteeUserId: data.granteeUserId,
|
||||
grantedByUserId: currentUser.userId,
|
||||
accessLevel: {
|
||||
accessLevel: JSON.stringify({
|
||||
canRead: data.canRead,
|
||||
canEdit: data.canEdit,
|
||||
canDelete: data.canDelete,
|
||||
},
|
||||
expiresAt: data.expiresAt ? new Date(data.expiresAt) : null,
|
||||
}),
|
||||
expiresAt: data.expiresAt ? data.expiresAt : null,
|
||||
});
|
||||
|
||||
return RecordShare.query(knex)
|
||||
.findById(share.id)
|
||||
.findById(shareId)
|
||||
.withGraphFetched('[granteeUser]');
|
||||
}
|
||||
|
||||
@@ -233,9 +235,11 @@ export class RecordSharingController {
|
||||
}
|
||||
|
||||
// Revoke the share (soft delete)
|
||||
await RecordShare.query(knex)
|
||||
.patchAndFetchById(shareId, {
|
||||
revokedAt: new Date(),
|
||||
await knex('record_shares')
|
||||
.where({ id: shareId })
|
||||
.update({
|
||||
revokedAt: knex.fn.now(),
|
||||
updatedAt: knex.fn.now(),
|
||||
});
|
||||
|
||||
return { success: true };
|
||||
|
||||
Reference in New Issue
Block a user