ENCOA-6: Updated the Linked Corporate column in the Group List

This commit is contained in:
Tiago Ribeiro
2024-04-11 11:29:08 +01:00
parent 4ecb21e0ae
commit 13496387c4
2 changed files with 12 additions and 18 deletions

View File

@@ -218,9 +218,7 @@ export default function GroupList({user}: {user: User}) {
header: "Admin", header: "Admin",
cell: (info) => ( cell: (info) => (
<div className="tooltip" data-tip={capitalize(users.find((x) => x.id === info.getValue())?.type)}> <div className="tooltip" data-tip={capitalize(users.find((x) => x.id === info.getValue())?.type)}>
{users.find((x) => x.id === info.getValue())?.type === "corporate" {users.find((x) => x.id === info.getValue())?.name}
? (users.find((x) => x.id === info.getValue()) as CorporateUser)?.corporateInformation?.companyInformation?.name
: users.find((x) => x.id === info.getValue())?.name}
</div> </div>
), ),
}), }),

View File

@@ -1,24 +1,20 @@
import { CorporateUser, Group, User } from "@/interfaces/user"; import {CorporateUser, Group, User} from "@/interfaces/user";
import axios from "axios"; import axios from "axios";
export const isUserFromCorporate = async (userID: string) => { export const isUserFromCorporate = async (userID: string) => {
const groups = (await axios.get<Group[]>(`/api/groups?participant=${userID}`)) const groups = (await axios.get<Group[]>(`/api/groups?participant=${userID}`)).data;
.data;
const users = (await axios.get<User[]>("/api/users/list")).data; const users = (await axios.get<User[]>("/api/users/list")).data;
const adminTypes = groups.map( const adminTypes = groups.map((g) => users.find((u) => u.id === g.admin)?.type);
(g) => users.find((u) => u.id === g.admin)?.type,
);
return adminTypes.includes("corporate"); return adminTypes.includes("corporate");
}; };
export const getUserCorporate = async (userID: string) => { export const getUserCorporate = async (userID: string) => {
const groups = (await axios.get<Group[]>(`/api/groups?participant=${userID}`))
.data;
const users = (await axios.get<User[]>("/api/users/list")).data; const users = (await axios.get<User[]>("/api/users/list")).data;
if (users.find((u) => u.id === userID)?.type === "corporate") return users.find((u) => u.id === userID) as CorporateUser;
const admins = groups const groups = (await axios.get<Group[]>(`/api/groups?participant=${userID}`)).data;
.map((g) => users.find((u) => u.id === g.admin))
.filter((x) => x?.type === "corporate"); const admins = groups.map((g) => users.find((u) => u.id === g.admin)).filter((x) => x?.type === "corporate");
return admins.length > 0 ? (admins[0] as CorporateUser) : undefined; return admins.length > 0 ? (admins[0] as CorporateUser) : undefined;
}; };