first commit

This commit is contained in:
Your NamebaishaliHolocron
2026-06-15 12:57:03 +05:30
commit b9ac5ae0b2
398 changed files with 49583 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
import { baseApiRequest } from "../apiRequests/baseApiRequest";
import { ManagerMemberships, Role, RoleMembership } from "./projectManager";
const API_BASE_URL = "https://ikoncloud-dev.keross.com/ikon-api";
export const getAllRoles = async (): Promise<Role[]> => {
return await baseApiRequest(
`${API_BASE_URL}/role`,
{
method: "GET",
headers: { "Content-Type": "application/json" },
credentials: "include",
},
{
isAccessTokenRequird: true,
}
);
};
export const getRoleMemberships = async (roleId: string): Promise<RoleMembership[]> => {
return await baseApiRequest(
`${API_BASE_URL}/role/${roleId}/membership`,
{
method: "GET",
headers: { "Content-Type": "application/json" },
credentials: "include",
},
{
isAccessTokenRequird: true,
}
);
};
export const getRoleIdByName = (
roles: Role[],
roleName: string
): string | undefined => {
if (!roles || !Array.isArray(roles)) {
console.error("getRoleIdByName received invalid roles data:", roles);
return undefined;
}
const foundRole = roles.find((role) => role.roleName === roleName);
return foundRole?.roleId;
};
export const getManagerMemberships = async (): Promise<ManagerMemberships> => {
try {
const response = await getAllRoles();
const allRoles = Array.isArray(response) ? response : (response?.content || []);
const projectManagerId = getRoleIdByName(allRoles, "Project manager");
const accountManagerId = getRoleIdByName(allRoles, "Account Manager");
if (!projectManagerId) {
console.warn("Could not find roleId for 'Project Manager'");
}
if (!accountManagerId) {
console.warn("Could not find roleId for 'Account Manager'");
}
const pmPromise = projectManagerId
? getRoleMemberships(projectManagerId)
: Promise.resolve([]);
const amPromise = accountManagerId
? getRoleMemberships(accountManagerId)
: Promise.resolve([]);
const [projectManagerMembers, accountManagerMembers] = await Promise.all([
pmPromise,
amPromise,
]);
return {
projectManagerMembers,
accountManagerMembers,
};
} catch (error) {
console.error("Error in getManagerMemberships:", error);
return {
projectManagerMembers: [],
accountManagerMembers: [],
};
}
};