Skip to content
Open
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d6e5ae7
feat: create member schema
VK-RED Jul 20, 2024
79dff66
feat: create getTeamMember route
VK-RED Jul 20, 2024
7fb0272
feat: create register function and call getOne
VK-RED Jul 20, 2024
52dc26b
Merge branch 'main' into feat/openapi-for-team-members
VK-RED Jul 24, 2024
ab4b041
feat: create getMany Members service
VK-RED Jul 24, 2024
7cbff8f
feat: create getMany members route
VK-RED Jul 24, 2024
70c7fb9
feat: add getMany Members route in index.ts
VK-RED Jul 24, 2024
fa76497
feat: create create-team-member and check-user-membership
VK-RED Jul 24, 2024
bdba422
chore: rename file
VK-RED Jul 24, 2024
739e1c6
chore: update import
VK-RED Jul 24, 2024
d967223
chore: use checkUserMembership and createTeamMember functions
VK-RED Jul 24, 2024
728c9ca
chore: reuse types
VK-RED Jul 24, 2024
657b020
chore: rename files
VK-RED Jul 25, 2024
4be51ca
feat: return additional member data
VK-RED Jul 25, 2024
f0d603c
feat: add createTeamMember function
VK-RED Jul 25, 2024
617c4c8
feat: add CreateMemberSchema
VK-RED Jul 25, 2024
f992d47
feat: create post method for member route
VK-RED Jul 25, 2024
3b3c687
feat: call create route in index.ts
VK-RED Jul 25, 2024
5ef4688
fix: post member route and createTeamMember error responses
VK-RED Jul 25, 2024
20dc9b7
feat: export ErrorCodes
VK-RED Jul 25, 2024
135aa1f
feat: add UpdateMemberSchema and update TeamMemberSchema
VK-RED Jul 25, 2024
96e203b
feat: create update member route
VK-RED Jul 25, 2024
19aa3a2
feat: call update member route
VK-RED Jul 25, 2024
17278ba
feat: add delete member endpoints
VK-RED Jul 25, 2024
f96fa5a
feat: call delete function in index.ts
VK-RED Jul 25, 2024
7fee741
feat: register teamMembers route
VK-RED Jul 25, 2024
c390cf4
Merge branch 'main' into feat/openapi-for-team-members
VK-RED Jul 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
feat: create member schema
  • Loading branch information
VK-RED committed Jul 20, 2024
commit d6e5ae7ec2e6dabc15882bc9baad31d71f15b500
71 changes: 71 additions & 0 deletions src/server/api/schema/team-member.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { MemberStatusEnum } from "@/prisma/enums";
import { Roles } from "@/prisma/enums";
import { z } from "@hono/zod-openapi";

const MemberStatusArr = Object.values(MemberStatusEnum) as [
string,
...string[],
];
const RolesArr = Object.values(Roles) as [string, ...string[]];

export const TeamMemberSchema = z.object({
id: z.string().cuid().optional().openapi({
description: "Team member ID",
example: "cly13ipa40000i7ng42mv4x7b",
}),

title: z.string().nullable().openapi({
description: "Team member title",
example: "Co-Founder & CTO",
}),

status: z.enum(MemberStatusArr).openapi({
description: "Team member Status",
example: "ACTIVE",
}),

isOnboarded: z.boolean().openapi({
description: "Is team member onboarded",
example: false,
}),

role: z.enum(RolesArr).nullable().openapi({
description: "Role assigned to the member",
example: "ADMIN",
}),

workEmail: z.string().nullable().openapi({
description: "Work Email of the team member",
example: "[email protected]",
}),

lastAccessed: z.string().datetime().optional().openapi({
description: "Team member last accessed at",
example: "2022-01-01T00:00:00Z",
}),

createdAt: z.string().datetime().optional().openapi({
description: "Team member created at",
example: "2022-01-01T00:00:00Z",
}),

updatedAt: z.string().datetime().optional().openapi({
description: "Team member updated at",
example: "2022-01-01T00:00:00Z",
}),

userId: z.string().cuid().openapi({
description: "User ID of the team member",
example: "cly13ipa40000i7ng42mv4x7b",
}),

companyId: z.string().cuid().openapi({
description: "Company ID",
example: "cly13ipa40000i7ng42mv4x7b",
}),

customRoleId: z.string().cuid().nullable().openapi({
description: "Custom role ID of the team member",
example: "cly13ipa40000i7ng42mv4x7b",
}),
});