chore: made data field optional in team and user collections

This commit is contained in:
Balu Babu
2023-12-05 13:12:06 +05:30
parent 1f2aaf528a
commit 337c79447e
4 changed files with 22 additions and 10 deletions

View File

@@ -18,6 +18,7 @@ export class CreateRootTeamCollectionArgs {
@Field({
name: 'data',
description: 'JSON string representing the collection data',
nullable: true,
})
data: string;
}
@@ -36,6 +37,7 @@ export class CreateChildTeamCollectionArgs {
@Field({
name: 'data',
description: 'JSON string representing the collection data',
nullable: true,
})
data: string;
}
@@ -131,6 +133,7 @@ export class UpdateTeamCollectionArgs {
@Field({
name: 'data',
description: 'JSON string representing the collection data',
nullable: true,
})
data: string;
}

View File

@@ -491,7 +491,7 @@ export class TeamCollectionService {
async createCollection(
teamID: string,
title: string,
data: string,
data: string | null = null,
parentTeamCollectionID: string | null,
) {
const isTitleValid = isValidLength(title, this.TITLE_LENGTH);
@@ -503,8 +503,11 @@ export class TeamCollectionService {
if (O.isNone(isOwner)) return E.left(TEAM_NOT_OWNER);
}
const collectionData = stringToJson(data);
if (E.isLeft(collectionData)) return E.left(TEAM_COLL_DATA_INVALID);
if (data) {
const jsonReq = stringToJson(data);
if (E.isLeft(jsonReq)) return E.left(TEAM_COLL_DATA_INVALID);
data = jsonReq.right;
}
const isParent = parentTeamCollectionID
? {
@@ -523,7 +526,7 @@ export class TeamCollectionService {
},
},
parent: isParent,
data: collectionData.right,
data: data ?? undefined,
orderIndex: !parentTeamCollectionID
? (await this.getRootCollectionsCount(teamID)) + 1
: (await this.getChildCollectionsCount(parentTeamCollectionID)) + 1,

View File

@@ -10,6 +10,7 @@ export class CreateRootUserCollectionArgs {
@Field({
name: 'data',
description: 'JSON string representing the collection data',
nullable: true,
})
data: string;
}
@@ -27,6 +28,7 @@ export class CreateChildUserCollectionArgs {
@Field({
name: 'data',
description: 'JSON string representing the collection data',
nullable: true,
})
data: string;
}
@@ -126,6 +128,7 @@ export class UpdateUserCollectionsArgs {
@Field({
name: 'data',
description: 'JSON string representing the collection data',
nullable: true,
})
data: string;
}

View File

@@ -222,15 +222,18 @@ export class UserCollectionService {
async createUserCollection(
user: AuthUser,
title: string,
data: string,
data: string | null = null,
parentUserCollectionID: string | null,
type: ReqType,
) {
const isTitleValid = isValidLength(title, this.TITLE_LENGTH);
if (!isTitleValid) return E.left(USER_COLL_SHORT_TITLE);
const collectionData = stringToJson(data);
if (E.isLeft(collectionData)) return E.left(USER_COLL_DATA_INVALID);
if (data) {
const jsonReq = stringToJson(data);
if (E.isLeft(jsonReq)) return E.left(USER_COLL_DATA_INVALID);
data = jsonReq.right;
}
// If creating a child collection
if (parentUserCollectionID !== null) {
@@ -266,7 +269,7 @@ export class UserCollectionService {
},
},
parent: isParent,
data: collectionData.right,
data: data ?? undefined,
orderIndex: !parentUserCollectionID
? (await this.getRootCollectionsCount(user.uid)) + 1
: (await this.getChildCollectionsCount(parentUserCollectionID)) + 1,
@@ -1092,7 +1095,7 @@ export class UserCollectionService {
*/
async updateUserCollection(
newTitle: string = null,
collectionData: string,
collectionData: string | null = null,
userCollectionID: string,
userID: string,
) {
@@ -1117,7 +1120,7 @@ export class UserCollectionService {
id: userCollectionID,
},
data: {
data: collectionData,
data: collectionData ?? undefined,
title: newTitle ?? undefined,
},
});