implemented identity, updated session, added 'workings' list

added paginated querying, added 'common'
This commit is contained in:
lnn0q 2025-05-17 00:29:55 +03:00
parent 027deba422
commit 6ada519e06
36 changed files with 1422 additions and 279 deletions

View file

@ -40,6 +40,7 @@ export async function LoginResolver(
});
return {
userId: user.id,
accessToken
};
}

View file

@ -0,0 +1,14 @@
import { IdentityContext } from '@app/server/identity';
import { prisma } from '@app/server/prisma/client';
import { Identity } from '@generated/types';
import { toIdentitySchema } from './mappers/identityMapper';
export async function IdentityResolver(
_: any,
__: any,
{ identity }: IdentityContext
): Promise<Identity> {
if (identity == null) throw new Error('Unauthorized.');
const model = await prisma.user.findUniqueOrThrow({ where: { id: identity.id } });
return toIdentitySchema(model);
}

View file

@ -0,0 +1,12 @@
import { Identity as IdentitySchema } from '@generated/types';
import { User } from '@prisma/client';
import { toUserSchema } from './userMapper';
export async function toIdentitySchema(model: User): Promise<IdentitySchema> {
return {
id: model.id,
email: model.email,
isDarkTheme: true,
user: await toUserSchema(model)
};
}

View file

@ -0,0 +1,11 @@
import { User as UserSchema } from '@generated/types';
import { User } from '@prisma/client';
export async function toUserSchema(model: User): Promise<UserSchema> {
return {
id: model.id,
username: model.username,
createdAt: model.createdAt.toISOString(),
updatedAt: model.updatedAt.toISOString()
};
}

View file

@ -0,0 +1,13 @@
import { IdentityContext } from '@app/server/identity';
import { prisma } from '@app/server/prisma/client';
import { QueryUserOneArgs, User } from '@generated/types';
import { toUserSchema } from './mappers/userMapper';
export async function UserOneResolver(
_: any,
{ id }: QueryUserOneArgs,
{ identity }: IdentityContext
): Promise<User> {
const model = await prisma.user.findUniqueOrThrow({ where: { id } });
return toUserSchema(model);
}