Files
hoppscotch/packages/hoppscotch-backend/src/user/user.model.ts
2024-02-21 21:35:08 +05:30

78 lines
1.5 KiB
TypeScript

import { ObjectType, ID, Field, registerEnumType } from '@nestjs/graphql';
@ObjectType()
export class User {
@Field(() => ID, {
description: 'UID of the user',
})
uid: string;
@Field({
nullable: true,
description: 'Name of the user (if fetched)',
})
displayName?: string;
@Field({
nullable: true,
description: 'Email of the user',
})
email?: string;
@Field({
nullable: true,
description: 'URL to the profile photo of the user (if fetched)',
})
photoURL?: string;
@Field({
description: 'Flag to determine if user is an Admin or not',
})
isAdmin: boolean;
@Field({
description: 'Date when the user account was created',
})
createdOn: Date;
@Field({
nullable: true,
description: 'Stringified current REST session for logged-in User',
})
currentRESTSession?: string;
@Field({
nullable: true,
description: 'Stringified current GraphQL session for logged-in User',
})
currentGQLSession?: string;
}
export enum SessionType {
REST = 'REST',
GQL = 'GQL',
}
registerEnumType(SessionType, {
name: 'SessionType',
});
@ObjectType()
export class UserDeletionResult {
@Field(() => ID, {
description: 'UID of the user',
})
userUID: string;
@Field(() => Boolean, {
description: 'Flag to determine if user deletion was successful or not',
})
isDeleted: Boolean;
@Field({
nullable: true,
description: 'Error message if user deletion was not successful',
})
errorMessage: String;
}