Skip to content

Commit

Permalink
fix update convertors
Browse files Browse the repository at this point in the history
  • Loading branch information
Bricks666 committed Jan 28, 2024
1 parent 1f95a73 commit 4ab6247
Show file tree
Hide file tree
Showing 13 changed files with 168 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@ export const convertTestingInvitationDtoToInvitationData = (
data: TestingInvitationDto
): Prisma.RoomInvitationUncheckedCreateInput => {
const {
id,
user,
status = DEFAULT_INVITATION.status,
inviter = DEFAULT_INVITATION.inviter,
room = DEFAULT_INVITATION.room,
} = data;

return {
id,
status,
userId: user?.id,
inviterId: inviter.id,
Expand Down
13 changes: 13 additions & 0 deletions src/testing/lib/convertTestingInvitationDtoToInvitationUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Prisma } from '@prisma/client';
import { TestingInvitationDto } from '../dto';
import { DEFAULT_INVITATION } from '../configs';

export const convertTestingInvitationDtoToInvitationUpdate = (
data: TestingInvitationDto
): Prisma.RoomInvitationUpdateInput => {
const { status = DEFAULT_INVITATION.status, } = data;

return {
status,
};
};
13 changes: 13 additions & 0 deletions src/testing/lib/convertTestingMemberDtoToMemberUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { Prisma } from '@prisma/client';
import { TestingMemberDto } from '../dto';
import { DEFAULT_MEMBER } from '../configs';

export const convertTestingMemberDtoToMemberUpdate = (
data: TestingMemberDto
): Prisma.MemberUpdateInput => {
const { status, } = data;

return {
status: status ?? DEFAULT_MEMBER.status,
};
};
3 changes: 1 addition & 2 deletions src/testing/lib/convertTestingRoomDtoToRoomData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@ import { DEFAULT_ROOM } from '../configs';
export const convertTestingRoomDtoToRoomData = (
data: TestingRoomDto
): Prisma.RoomUncheckedCreateInput => {
const { description, id, name, ownerId, members = [], } = data;
const { description, name, ownerId, members = [], } = data;

return {
id,
description: description ?? DEFAULT_ROOM.description,
name: name ?? DEFAULT_ROOM.name,
ownerId,
Expand Down
31 changes: 31 additions & 0 deletions src/testing/lib/convertTestingRoomDtoToRoomUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { Prisma } from '@prisma/client';

import { TestingRoomDto } from '../dto';
import { DEFAULT_ROOM } from '../configs';

export const convertTestingRoomDtoToRoomUpdate = (
data: TestingRoomDto
): Prisma.RoomUpdateInput => {
const { description, name, ownerId, members = [], } = data;

return {
description: description ?? DEFAULT_ROOM.description,
name: name ?? DEFAULT_ROOM.name,
members: {
createMany: {
data: members
.map((member) => {
return {
userId: member.userId,
status: member.status,
};
})
.concat({
status: 'activated',
userId: ownerId,
}),
skipDuplicates: true,
},
},
};
};
3 changes: 1 addition & 2 deletions src/testing/lib/convertTestingTagDtoToTagData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ import { DEFAULT_TAG } from '../configs';
export const convertTestingTagDtoToTagData = (
data: TestingTagDto
): Prisma.TagUncheckedCreateInput => {
const { id, mainColor, name, room, secondColor, } = data;
const { mainColor, name, room, secondColor, } = data;

return {
id,
name: name ?? DEFAULT_TAG.name,
mainColor: mainColor ?? DEFAULT_TAG.mainColor,
secondColor: secondColor ?? DEFAULT_TAG.secondColor,
Expand Down
15 changes: 15 additions & 0 deletions src/testing/lib/convertTestingTagDtoToTagUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Prisma } from '@prisma/client';
import { TestingTagDto } from '../dto';
import { DEFAULT_TAG } from '../configs';

export const convertTestingTagDtoToTagUpdate = (
data: TestingTagDto
): Prisma.TagUpdateInput => {
const { mainColor, name, secondColor, } = data;

return {
name: name ?? DEFAULT_TAG.name,
mainColor: mainColor ?? DEFAULT_TAG.mainColor,
secondColor: secondColor ?? DEFAULT_TAG.secondColor,
};
};
2 changes: 0 additions & 2 deletions src/testing/lib/convertTestingTaskDtoToTaskData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ export const convertTestingTaskDtoToTaskData = (
data: TestingTaskDto
): Prisma.TaskUncheckedCreateInput => {
const {
id,
title = DEFAULT_TASK.title,
description = DEFAULT_TASK.description,
status = DEFAULT_TASK.status,
Expand All @@ -18,7 +17,6 @@ export const convertTestingTaskDtoToTaskData = (
} = data;

return {
id,
title,
description,
status,
Expand Down
30 changes: 30 additions & 0 deletions src/testing/lib/convertTestingTaskDtoToTaskUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Prisma } from '@prisma/client';
import { TestingTaskDto } from '../dto';
import { DEFAULT_TASK } from '../configs';

export const convertTestingTaskDtoToTaskUpdate = (
data: TestingTaskDto
): Prisma.TaskUpdateInput => {
const {
title = DEFAULT_TASK.title,
description = DEFAULT_TASK.description,
status = DEFAULT_TASK.status,
createdAt = DEFAULT_TASK.createdAt,
tags = DEFAULT_TASK.tags,
updatedAt = DEFAULT_TASK.updatedAt,
} = data;

return {
title,
description,
status,
createdAt,
updatedAt,
tags: {
createMany: {
data: tags.map((tag) => ({ tagId: tag.id, })),
skipDuplicates: true,
},
},
};
};
3 changes: 1 addition & 2 deletions src/testing/lib/convertTestingUserDtoToUserData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@ import { DEFAULT_USER } from '../configs';
export const convertTestingUserDtoToUserData = (
data: TestingUserDto
): Prisma.UserUncheckedCreateInput => {
const { id, password, activated, email, username, } = data;
const { password, activated, email, username, } = data;

return {
id,
email: email ?? DEFAULT_USER.email,
password: password ?? DEFAULT_USER.password,
photo: null,
Expand Down
17 changes: 17 additions & 0 deletions src/testing/lib/convertTestingUserDtoToUserUpdate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { Prisma } from '@prisma/client';

import { TestingUserDto } from '../dto';
import { DEFAULT_USER } from '../configs';

export const convertTestingUserDtoToUserUpdate = (
data: TestingUserDto
): Prisma.UserUpdateInput => {
const { password, activated, username, } = data;

return {
password: password ?? DEFAULT_USER.password,
photo: null,
username: username ?? DEFAULT_USER.username,
activated: activated ?? DEFAULT_USER.activated,
};
};
6 changes: 6 additions & 0 deletions src/testing/lib/index.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
export * from './convertTestingUserDtoToUniqueUserFilter';
export * from './convertTestingUserDtoToUserFilter';
export * from './convertTestingUserDtoToUserData';
export * from './convertTestingUserDtoToUserUpdate';

export * from './convertTestingRoomDtoToRoomFilter';
export * from './convertTestingRoomDtoToUniqueRoomFilter';
export * from './convertTestingRoomDtoToRoomData';
export * from './convertTestingRoomDtoToRoomUpdate';

export * from './convertTestingMemberDtoToMemberFilter';
export * from './convertTestingMemberDtoToUniqueMemberFilter';
export * from './convertTestingMemberDtoToMemberData';
export * from './convertTestingMemberDtoToMemberUpdate';

export * from './convertTestingTagDtoToTagFilter';
export * from './convertTestingTagDtoToTagUniqueFilter';
export * from './convertTestingTagDtoToTagData';
export * from './convertTestingTagDtoToTagUpdate';

export * from './convertTestingTaskDtoToTaskFilter';
export * from './convertTestingTaskDtoToTaskUniqueFilter';
export * from './convertTestingTaskDtoToTaskData';
export * from './convertTestingTaskDtoToTaskUpdate';

export * from './convertTestingInvitationDtoToInvitationFilter';
export * from './convertTestingInvitationDtoToInvitationUniqueFilter';
export * from './convertTestingInvitationDtoToInvitationData';
export * from './convertTestingInvitationDtoToInvitationUpdate';
72 changes: 40 additions & 32 deletions src/testing/testing.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,13 @@ import {
convertTestingTaskDtoToTaskFilter,
convertTestingInvitationDtoToInvitationUniqueFilter,
convertTestingInvitationDtoToInvitationData,
convertTestingInvitationDtoToInvitationFilter
convertTestingInvitationDtoToInvitationFilter,
convertTestingUserDtoToUserUpdate,
convertTestingRoomDtoToRoomUpdate,
convertTestingTaskDtoToTaskUpdate,
convertTestingTagDtoToTagUpdate,
convertTestingMemberDtoToMemberUpdate,
convertTestingInvitationDtoToInvitationUpdate
} from './lib';

@Injectable()
Expand Down Expand Up @@ -70,10 +76,7 @@ export class TestingService {
if (existing) {
return this.databaseService.user.update({
where: convertTestingUserDtoToUniqueUserFilter(existing),
data: {
...data,
password,
},
data: convertTestingUserDtoToUserUpdate({ ...data, password, }),
});
}

Expand Down Expand Up @@ -101,10 +104,6 @@ export class TestingService {
...params,
ownerId: user.id,
});
const data = convertTestingRoomDtoToRoomData({
...params,
ownerId: user.id,
});

const existing = await this.databaseService.room.findFirst({
where,
Expand All @@ -113,10 +112,15 @@ export class TestingService {
if (existing) {
return this.databaseService.room.update({
where: convertTestingRoomDtoToUniqueRoomFilter(existing),
data,
data: convertTestingRoomDtoToRoomUpdate(params),
});
}

const data = convertTestingRoomDtoToRoomData({
...params,
ownerId: user.id,
});

return this.databaseService.room.create({
data,
});
Expand Down Expand Up @@ -144,12 +148,6 @@ export class TestingService {
room,
tags,
});
const data = convertTestingTaskDtoToTaskData({
...params,
author,
room,
tags,
});

const existing = await this.databaseService.task.findFirst({
where,
Expand All @@ -159,12 +157,19 @@ export class TestingService {
return this.databaseService.task
.update({
where: convertTestingTaskDtoToTaskUniqueFilter(existing),
data,
data: convertTestingTaskDtoToTaskUpdate(params),
select: taskSelect,
})
.then(convertTaskRecordToTaskDto);
}

const data = convertTestingTaskDtoToTaskData({
...params,
author,
room,
tags,
});

return this.databaseService.task
.create({
data,
Expand All @@ -187,7 +192,6 @@ export class TestingService {
const room = await this.room(params.room);

const where = convertTestingTagDtoToTagUniqueFilter({ ...params, room, });
const data = convertTestingTagDtoToTagData({ ...params, room, });

const existing = await this.databaseService.tag.findFirst({
where,
Expand All @@ -201,10 +205,12 @@ export class TestingService {
id: existing.roomId,
},
}),
data,
data: convertTestingTagDtoToTagUpdate(params),
}) as Promise<TagDto>;
}

const data = convertTestingTagDtoToTagData({ ...params, room, });

return this.databaseService.tag.create({
data,
}) as Promise<TagDto>;
Expand Down Expand Up @@ -232,11 +238,6 @@ export class TestingService {
userId: user.id,
roomId: room.id,
});
const data = convertTestingMemberDtoToMemberData({
...params,
userId: user.id,
roomId: room.id,
});

const existing = await this.databaseService.member.findUnique({
where,
Expand All @@ -245,10 +246,16 @@ export class TestingService {
if (existing) {
return this.databaseService.member.update({
where: convertTestingMemberDtoToUniqueMemberFilter(existing),
data,
data: convertTestingMemberDtoToMemberUpdate(params),
});
}

const data = convertTestingMemberDtoToMemberData({
...params,
userId: user.id,
roomId: room.id,
});

return this.databaseService.member.create({
data,
});
Expand Down Expand Up @@ -277,12 +284,6 @@ export class TestingService {
user,
room,
});
const data = convertTestingInvitationDtoToInvitationData({
...params,
inviter,
user,
room,
});

const existing = await this.databaseService.roomInvitation.findFirst({
where,
Expand All @@ -291,11 +292,18 @@ export class TestingService {
if (existing) {
return this.databaseService.roomInvitation.update({
where: convertTestingInvitationDtoToInvitationUniqueFilter(existing),
data,
data: convertTestingInvitationDtoToInvitationUpdate(params),
select: invitationSelect,
});
}

const data = convertTestingInvitationDtoToInvitationData({
...params,
inviter,
user,
room,
});

return this.databaseService.roomInvitation.create({
data,
select: invitationSelect,
Expand Down

0 comments on commit 4ab6247

Please sign in to comment.