Skip to content

Commit

Permalink
Use findUnique
Browse files Browse the repository at this point in the history
  • Loading branch information
lemonmade committed Mar 18, 2024
1 parent e1584a4 commit 6014442
Show file tree
Hide file tree
Showing 32 changed files with 116 additions and 115 deletions.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,8 @@
"cSpell.words": ["signup"],
"[postcss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[prisma]": {
"editor.defaultFormatter": "Prisma.prisma"
}
}
2 changes: 1 addition & 1 deletion app/server/auth/email.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export async function signInFromEmail(request: Request) {
);

const prisma = await createPrisma();
const user = await prisma.user.findFirst({where: {email}});
const user = await prisma.user.findUnique({where: {email}});

if (user == null) {
throw new Error(`No user found for email ${email}`);
Expand Down
2 changes: 1 addition & 1 deletion app/server/auth/github/github.ts
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ async function handleGithubOAuthCallback(
}

const prisma = await createPrisma();
const account = await prisma.githubAccount.findFirst({
const account = await prisma.githubAccount.findUnique({
where: {id: githubResult.viewer.id},
select: {userId: true},
});
Expand Down
2 changes: 1 addition & 1 deletion app/server/auth/google/google.ts
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ async function handleGoogleOAuthCallback<State extends {} = {}>(
};

const prisma = await createPrisma();
const account = await prisma.googleAccount.findFirst({
const account = await prisma.googleAccount.findUnique({
where: {id: googleAccount.id},
select: {userId: true},
});
Expand Down
6 changes: 3 additions & 3 deletions app/server/graphql/resolvers/apps/App.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ declare module '../types' {

export const Query = createQueryResolver({
app(_, {id}, {prisma}) {
return prisma.app.findFirst({where: {id: fromGid(id).id}});
return prisma.app.findUnique({where: {id: fromGid(id).id}});
},
apps(_, __, {prisma}) {
return prisma.app.findMany({take: 50});
Expand Down Expand Up @@ -98,7 +98,7 @@ export const App = createResolverWithGid('App', {

export const AppInstallation = createResolverWithGid('AppInstallation', {
app: ({appId}, _, {prisma}) =>
prisma.app.findFirstOrThrow({where: {id: appId}}),
prisma.app.findUniqueOrThrow({where: {id: appId}}),
async extensions({id}, _, {prisma}) {
const installations = await prisma.clipsExtensionInstallation.findMany({
where: {appInstallationId: id},
Expand All @@ -122,7 +122,7 @@ export const User = createResolver('User', {
throw new Error('You must supply either an id or a handle');
}

return prisma.app.findFirst({
return prisma.app.findUnique({
where: {
id: id ? fromGid(id).id : undefined,
handle: handle || undefined,
Expand Down
42 changes: 20 additions & 22 deletions app/server/graphql/resolvers/apps/ClipsExtension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export const Query = createQueryResolver({
});
},
clipsInstallation(_, {id}, {prisma}) {
return prisma.clipsExtensionInstallation.findFirst({
return prisma.clipsExtensionInstallation.findUniqueOrThrow({
where: {id: fromGid(id).id},
});
},
Expand Down Expand Up @@ -143,7 +143,7 @@ export const Mutation = createMutationResolver({
select: {id: true},
});

const extension = await prisma.clipsExtension.findFirstOrThrow({
const extension = await prisma.clipsExtension.findUniqueOrThrow({
where: {id},
});

Expand Down Expand Up @@ -208,7 +208,7 @@ export const Mutation = createMutationResolver({
};
},
async installClipsExtension(_, {id, target, settings}, {user, prisma}) {
const extension = await prisma.clipsExtension.findFirstOrThrow({
const extension = await prisma.clipsExtension.findUniqueOrThrow({
where: {id: fromGid(id).id},
include: {
activeVersion: {select: {extends: true}},
Expand Down Expand Up @@ -257,7 +257,7 @@ export const Mutation = createMutationResolver({
},
async uninstallClipsExtension(_, {id}, {user, prisma}) {
const installation =
await prisma.clipsExtensionInstallation.findFirstOrThrow({
await prisma.clipsExtensionInstallation.findUniqueOrThrow({
where: {id: fromGid(id).id, userId: user.id},
select: {
id: true,
Expand All @@ -276,15 +276,11 @@ export const Mutation = createMutationResolver({
},
async updateClipsExtensionInstallation(_, {id, settings}, {user, prisma}) {
const installationDetails =
await prisma.clipsExtensionInstallation.findFirstOrThrow({
where: {id: fromGid(id).id},
await prisma.clipsExtensionInstallation.findUniqueOrThrow({
where: {id: fromGid(id).id, userId: user.id},
select: {id: true, userId: true},
});

if (installationDetails.userId !== user.id) {
throw new Error();
}

const {extension, ...installation} =
await prisma.clipsExtensionInstallation.update({
where: {id: installationDetails.id},
Expand All @@ -306,10 +302,12 @@ export const Mutation = createMutationResolver({

export const ClipsExtension = createResolverWithGid('ClipsExtension', {
app: ({appId}, _, {prisma}) =>
prisma.app.findFirstOrThrow({where: {id: appId}}),
prisma.app.findUniqueOrThrow({where: {id: appId}}),
latestVersion({activeVersionId}, _, {prisma}) {
return activeVersionId
? prisma.clipsExtensionVersion.findFirst({where: {id: activeVersionId}})
? prisma.clipsExtensionVersion.findUniqueOrThrow({
where: {id: activeVersionId},
})
: null;
},
async versions({id}, _, {prisma}) {
Expand All @@ -334,7 +332,7 @@ export const ClipsExtensionVersion = createResolverWithGid(
'ClipsExtensionVersion',
{
extension: ({extensionId}, _, {prisma}) =>
prisma.clipsExtension.findFirstOrThrow({
prisma.clipsExtension.findUniqueOrThrow({
where: {id: extensionId},
}),
assets: ({scriptUrl}) => (scriptUrl ? [{source: scriptUrl}] : []),
Expand Down Expand Up @@ -389,23 +387,23 @@ export const ClipsExtensionInstallation = createResolverWithGid(
{
id: ({id}) => toGid(id, 'ClipsExtensionInstallation'),
extension: ({extensionId}, _, {prisma}) =>
prisma.clipsExtension.findFirstOrThrow({
prisma.clipsExtension.findUniqueOrThrow({
where: {id: extensionId},
}),
appInstallation: ({appInstallationId}, _, {prisma}) =>
prisma.appInstallation.findFirstOrThrow({
prisma.appInstallation.findUniqueOrThrow({
where: {id: appInstallationId},
}),
async version({extensionId}, _, {prisma}) {
const extension = await prisma.clipsExtension.findFirstOrThrow({
const extension = await prisma.clipsExtension.findUniqueOrThrow({
where: {id: extensionId},
select: {activeVersion: true},
});

return extension.activeVersion!;
},
async translations({extensionId}, _, {prisma}) {
const extension = await prisma.clipsExtension.findFirstOrThrow({
const extension = await prisma.clipsExtension.findUniqueOrThrow({
where: {id: extensionId},
select: {activeVersion: true},
});
Expand All @@ -415,7 +413,7 @@ export const ClipsExtensionInstallation = createResolverWithGid(
return translations ? JSON.stringify(translations) : null;
},
async liveQuery({target, extensionId}, _, {prisma}) {
const extension = await prisma.clipsExtension.findFirstOrThrow({
const extension = await prisma.clipsExtension.findUniqueOrThrow({
where: {id: extensionId},
select: {activeVersion: true},
});
Expand All @@ -425,7 +423,7 @@ export const ClipsExtensionInstallation = createResolverWithGid(
return extend.find((extend) => extend.target === target)?.liveQuery;
},
async loading({target, extensionId}, _, {prisma}) {
const extension = await prisma.clipsExtension.findFirstOrThrow({
const extension = await prisma.clipsExtension.findUniqueOrThrow({
where: {id: extensionId},
select: {activeVersion: true},
});
Expand Down Expand Up @@ -497,7 +495,7 @@ export const WatchThrough = createResolver('WatchThrough', {
}

const [series, installations] = await Promise.all([
prisma.series.findFirstOrThrow({
prisma.series.findUniqueOrThrow({
where: {id: seriesId},
select: {handle: true},
}),
Expand Down Expand Up @@ -715,15 +713,15 @@ async function resolveConditions(
}

if (condition.series.id != null) {
const series = await prisma.series.findFirstOrThrow({
const series = await prisma.series.findUniqueOrThrow({
where: {id: fromGid(condition.series.id).id},
});

return {condition, series};
}

if (condition.series.handle != null) {
const series = await prisma.series.findFirstOrThrow({
const series = await prisma.series.findUniqueOrThrow({
where: {handle: condition.series.handle},
});

Expand Down
16 changes: 8 additions & 8 deletions app/server/graphql/resolvers/lists/List.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ export const VIRTUAL_WATCH_LATER_LIST = {

export const Query = createQueryResolver({
list(_, {id}: {id: string}, {prisma, user}) {
return prisma.list.findFirst({
return prisma.list.findUnique({
where: {id: fromGid(id).id, userId: user.id},
});
},
async lists(_, __, {user, prisma}) {
const {watchLaterId} = await prisma.user.findFirstOrThrow({
const {watchLaterId} = await prisma.user.findUniqueOrThrow({
where: {id: user.id},
});

Expand Down Expand Up @@ -69,7 +69,7 @@ export const ListItem = createResolverWithGid('ListItem', {
const series =
seriesId == null
? null
: await prisma.series.findFirst({
: await prisma.series.findUnique({
where: {id: seriesId},
});

Expand Down Expand Up @@ -125,11 +125,11 @@ export const Mutation = createMutationResolver({
throw new Error(`You must provide a seriesId`);
}

const series = await prisma.series.findFirstOrThrow({
const series = await prisma.series.findUniqueOrThrow({
where: {id: fromGid(seriesId).id},
});

const list = await prisma.list.findFirst({
const list = await prisma.list.findUnique({
where: {id: fromGid(id).id, userId: user.id},
include: {
items: {
Expand All @@ -153,11 +153,11 @@ export const Mutation = createMutationResolver({
return {series, list, item};
},
async removeFromList(_, {id, itemId}, {user, prisma}) {
const list = await prisma.list.findFirstOrThrow({
const list = await prisma.list.findUniqueOrThrow({
where: {id: fromGid(id).id, userId: user.id},
});

const item = await prisma.listItem.findFirstOrThrow({
const item = await prisma.listItem.findUniqueOrThrow({
where: {id: fromGid(itemId).id},
});

Expand All @@ -174,7 +174,7 @@ export const Mutation = createMutationResolver({
const series =
item.seriesId == null
? null
: await prisma.series.findFirstOrThrow({
: await prisma.series.findUniqueOrThrow({
where: {id: item.seriesId},
});

Expand Down
4 changes: 2 additions & 2 deletions app/server/graphql/resolvers/lists/WatchLater.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export const Mutation = createMutationResolver({
throw new Error(`You must provide a seriesId`);
}

const series = await prisma.series.findFirstOrThrow({
const series = await prisma.series.findUniqueOrThrow({
where: {id: fromGid(seriesId).id},
});

Expand Down Expand Up @@ -114,7 +114,7 @@ export async function addSeriesToWatchLater(
id: string,
{prisma, user}: Pick<ResolverContext, 'prisma' | 'user'>,
) {
const series = await prisma.series.findFirstOrThrow({
const series = await prisma.series.findUniqueOrThrow({
where: {id},
});

Expand Down
8 changes: 4 additions & 4 deletions app/server/graphql/resolvers/media/Episode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export type EpisodeResolver = Resolver<'Episode'>;
export const Query = createQueryResolver({
episode(_, {id, series, season, number, selector}, {prisma}) {
if (id) {
return prisma.episode.findFirst({
return prisma.episode.findUnique({
where: {id: fromGid(id).id},
});
} else if (series) {
Expand Down Expand Up @@ -71,12 +71,12 @@ export const Episode = createResolverWithGid('Episode', {
return EpisodeSelection.stringify({episode: number, season: seasonNumber});
},
series({seriesId}, _, {prisma}) {
return prisma.series.findFirstOrThrow({
return prisma.series.findUniqueOrThrow({
where: {id: seriesId},
});
},
season({seasonId}, _, {prisma}) {
return prisma.season.findFirstOrThrow({
return prisma.season.findUniqueOrThrow({
where: {id: seasonId},
});
},
Expand All @@ -88,7 +88,7 @@ export const Episode = createResolverWithGid('Episode', {
return firstAired.getTime() < Date.now();
}

const season = await prisma.season.findFirstOrThrow({
const season = await prisma.season.findUniqueOrThrow({
where: {id: seasonId},
});

Expand Down
8 changes: 4 additions & 4 deletions app/server/graphql/resolvers/media/Season.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export type SeasonResolver = Resolver<'Season'>;
export const Query = createQueryResolver({
season(_, {id, series, number, selector}, {prisma}) {
if (id) {
return prisma.season.findFirst({
return prisma.season.findUnique({
where: {id: fromGid(id).id},
});
} else if (series) {
Expand Down Expand Up @@ -117,20 +117,20 @@ export const Season = createResolverWithGid('Season', {
return EpisodeSelection.stringify({season: number});
},
series({seriesId}, _, {prisma}) {
return prisma.series.findFirstOrThrow({
return prisma.series.findUniqueOrThrow({
where: {id: seriesId},
});
},
async tmdbUrl({seriesId, number}, _, {prisma}) {
const series = await prisma.series.findFirstOrThrow({
const series = await prisma.series.findUniqueOrThrow({
where: {id: seriesId},
select: {tmdbId: true},
});

return `https://www.themoviedb.org/tv/${series.tmdbId}/season/${number}`;
},
async imdbUrl({seriesId, number}, _, {prisma}) {
const series = await prisma.series.findFirstOrThrow({
const series = await prisma.series.findUniqueOrThrow({
where: {id: seriesId},
select: {imdbId: true},
});
Expand Down
8 changes: 4 additions & 4 deletions app/server/graphql/resolvers/media/Series.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ export type SeriesResolver = Resolver<'Series'>;
export const Query = createQueryResolver({
series(_, {id, handle}, {prisma}) {
if (id) {
return prisma.series.findFirst({
return prisma.series.findUnique({
where: {id: fromGid(id).id},
});
} else if (handle) {
return prisma.series.findFirst({
return prisma.series.findUnique({
where: {handle},
});
}
Expand All @@ -46,7 +46,7 @@ export const Query = createQueryResolver({
},
randomSeries(_, __, {prisma}) {
// TODO: make it more random
return prisma.series.findFirstOrThrow();
return prisma.series.findUniqueOrThrow();
},
});

Expand Down Expand Up @@ -86,7 +86,7 @@ export const Mutation = createMutationResolver({
}

const {id} = fromGid(gid);
const {tmdbId, name} = await prisma.series.findFirstOrThrow({where: {id}});
const {tmdbId, name} = await prisma.series.findUniqueOrThrow({where: {id}});
const {series} = await updateSeries({id, name, tmdbId, prisma});
return {series, errors: []};
},
Expand Down
Loading

0 comments on commit 6014442

Please sign in to comment.