Resume + Projects done

This commit is contained in:
Ahmed Al-Taiar
2024-10-01 20:45:43 -04:00
parent 9c0dee7d54
commit 4a94b6807e
32 changed files with 1034 additions and 431 deletions

View File

@ -0,0 +1,19 @@
export const schema = gql`
type Resume {
id: Int!
fileId: URL!
}
type Query {
resume: Resume @skipAuth
}
input CreateResumeInput {
fileId: URL!
}
type Mutation {
createResume(input: CreateResumeInput!): Resume! @requireAuth
deleteResume: Resume! @requireAuth
}
`

View File

@ -0,0 +1,25 @@
export const schema = gql`
type Title {
id: Int!
title: String!
}
type Query {
titles: [Title!]! @skipAuth
title(id: Int!): Title @skipAuth
}
input CreateTitleInput {
title: String!
}
input UpdateTitleInput {
title: String
}
type Mutation {
createTitle(input: CreateTitleInput!): Title! @requireAuth
updateTitle(id: Int!, input: UpdateTitleInput!): Title! @requireAuth
deleteTitle(id: Int!): Title! @requireAuth
}
`

View File

@ -0,0 +1,42 @@
import type { QueryResolvers, MutationResolvers } from 'types/graphql'
import { isProduction } from '@redwoodjs/api/logger'
import { ValidationError } from '@redwoodjs/graphql-server'
import { db } from 'src/lib/db'
const address = isProduction
? process.env.ADDRESS_PROD
: process.env.ADDRESS_DEV
export const resume: QueryResolvers['resume'] = async () => {
const resume = await db.resume.findFirst()
if (resume) return resume
else
return {
id: -1,
fileId: `${address}/no_resume.pdf`,
}
}
export const createResume: MutationResolvers['createResume'] = async ({
input,
}) => {
if (await db.resume.findFirst())
throw new ValidationError('Resume already exists')
else
return db.resume.create({
data: input,
})
}
export const deleteResume: MutationResolvers['deleteResume'] = async () => {
const resume = await db.resume.findFirst()
if (!resume) throw new ValidationError('Resume does not exist')
else
return db.resume.delete({
where: { id: resume.id },
})
}

View File

@ -0,0 +1,26 @@
import type { QueryResolvers, MutationResolvers } from 'types/graphql'
import { db } from 'src/lib/db'
export const titles: QueryResolvers['titles'] = () => db.title.findMany()
export const title: QueryResolvers['title'] = ({ id }) =>
db.title.findUnique({
where: { id },
})
export const createTitle: MutationResolvers['createTitle'] = ({ input }) =>
db.title.create({
data: input,
})
export const updateTitle: MutationResolvers['updateTitle'] = ({ id, input }) =>
db.title.update({
data: input,
where: { id },
})
export const deleteTitle: MutationResolvers['deleteTitle'] = ({ id }) =>
db.title.delete({
where: { id },
})