implemented identity, updated session, added 'workings' list
added paginated querying, added 'common'
This commit is contained in:
parent
027deba422
commit
6ada519e06
36 changed files with 1422 additions and 279 deletions
|
|
@ -40,6 +40,7 @@ export async function LoginResolver(
|
|||
});
|
||||
|
||||
return {
|
||||
userId: user.id,
|
||||
accessToken
|
||||
};
|
||||
}
|
||||
|
|
|
|||
14
app/server/graphql/resolvers/identityResolver.ts
Normal file
14
app/server/graphql/resolvers/identityResolver.ts
Normal 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);
|
||||
}
|
||||
12
app/server/graphql/resolvers/mappers/identityMapper.ts
Normal file
12
app/server/graphql/resolvers/mappers/identityMapper.ts
Normal 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)
|
||||
};
|
||||
}
|
||||
11
app/server/graphql/resolvers/mappers/userMapper.ts
Normal file
11
app/server/graphql/resolvers/mappers/userMapper.ts
Normal 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()
|
||||
};
|
||||
}
|
||||
13
app/server/graphql/resolvers/userOneResolver.ts
Normal file
13
app/server/graphql/resolvers/userOneResolver.ts
Normal 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);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue