Files
twenty_crm/front/src/interfaces/user.interface.ts
Charles Bochet bc49815ff0 Make all fields optional on entities (#121)
* Make all fields optional on entities

* Rewrite tests

* Add test on TableHeader Cancel button
2023-05-17 14:50:49 +02:00

46 lines
1.0 KiB
TypeScript

import {
GraphqlQueryWorkspaceMember,
WorkspaceMember,
mapToWorkspaceMember,
} from './workspace_member.interface';
export interface User {
id: string;
email?: string;
displayName?: string;
workspaceMember?: WorkspaceMember;
}
export type GraphqlQueryUser = {
id: string;
email?: string;
display_name?: string;
workspace_member?: GraphqlQueryWorkspaceMember;
__typename: string;
};
export type GraphqlMutationUser = {
id: string;
email?: string;
display_name?: string;
workspace_member_id?: string;
__typename: string;
};
export const mapToUser = (user: GraphqlQueryUser): User => ({
id: user.id,
email: user.email,
displayName: user.display_name,
workspaceMember: user.workspace_member
? mapToWorkspaceMember(user.workspace_member)
: user.workspace_member,
});
export const mapToGqlUser = (user: User): GraphqlMutationUser => ({
id: user.id,
email: user.email,
display_name: user.displayName,
workspace_member_id: user.workspaceMember?.id,
__typename: 'users',
});