Add API specs to groups endpoints, convert projectId groups endpoints to be slug-based

This commit is contained in:
Tuan Dang
2024-03-28 18:21:12 -07:00
parent 8afecac7d8
commit 9460eafd91
18 changed files with 213 additions and 146 deletions
@@ -30,7 +30,7 @@ import { TUserGroupMembershipDALFactory } from "./user-group-membership-dal";
type TGroupServiceFactoryDep = {
userDAL: Pick<TUserDALFactory, "findOne" | "findUserEncKeyByUsername">;
groupDAL: Pick<TGroupDALFactory, "create" | "findOne" | "update" | "delete" | "findAllGroupMembers">;
groupProjectDAL: TGroupProjectDALFactory;
groupProjectDAL: Pick<TGroupProjectDALFactory, "find">;
orgDAL: Pick<TOrgDALFactory, "findMembership">;
userGroupMembershipDAL: Pick<
TUserGroupMembershipDALFactory,
@@ -112,6 +112,7 @@ const buildMemberPermission = () => {
can(OrgPermissionActions.Create, OrgPermissionSubjects.Workspace);
can(OrgPermissionActions.Read, OrgPermissionSubjects.Member);
can(OrgPermissionActions.Create, OrgPermissionSubjects.Member);
can(OrgPermissionActions.Read, OrgPermissionSubjects.Groups);
can(OrgPermissionActions.Read, OrgPermissionSubjects.Role);
can(OrgPermissionActions.Read, OrgPermissionSubjects.Settings);
can(OrgPermissionActions.Read, OrgPermissionSubjects.Billing);
@@ -145,41 +145,6 @@ export const permissionDALFactory = (db: TDbClient) => {
]
});
// const permission = sqlNestRelationships({
// data: docs, // TODO: concat?
// key: "membershipId",
// parentMapper: ({
// orgId,
// orgAuthEnforced,
// membershipId,
// membershipCreatedAt,
// membershipUpdatedAt,
// oldRoleField,
// // role
// }) => ({
// orgId,
// orgAuthEnforced,
// userId,
// role: oldRoleField,
// // role,
// id: membershipId,
// projectId,
// createdAt: membershipCreatedAt,
// updatedAt: membershipUpdatedAt
// }),
// childrenMapper: [
// {
// key: "id",
// label: "roles" as const,
// mapper: (data) =>
// ProjectUserMembershipRolesSchema.extend({
// permissions: z.unknown(),
// customRoleSlug: z.string().optional().nullable()
// }).parse(data)
// }
// ]
// });
// when introducting cron mode change it here
const activeRoles = permission?.[0]?.roles.filter(
({ isTemporary, temporaryAccessEndTime }) =>