Skip to content

Commit b0753aa

Browse files
committed
feat(claimEditor): ✨ Move constructClaimGeoJSONQuery to a separate query file for better organization
1 parent a86ca8c commit b0753aa

3 files changed

Lines changed: 62 additions & 62 deletions

File tree

apps/dashboard/src/actions/claimEditor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use server';
22

3-
import { constructClaimGeoJSONQuery } from '@/app/(sideNavbar)/api/data/claims.geojson/route';
3+
import { constructClaimGeoJSONQuery } from '@/app/(sideNavbar)/api/data/claims.geojson/query';
44
import turf, { toPolygon } from '@/util/coordinates';
55
import prisma from '@/util/db';
66
import { updateClaimBuildingCount, updateClaimOSMDetails } from '@/util/geojsonHelpers';
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
export function constructClaimGeoJSONQuery(filters: {
2+
finished?: boolean;
3+
active?: boolean;
4+
user?: string | null;
5+
extended?: boolean;
6+
id?: string | null;
7+
}) {
8+
return {
9+
where: {
10+
finished: filters.finished,
11+
active: filters.active,
12+
owner: filters.user ? { OR: [{ ssoId: filters.user }, { id: filters.user }] } : undefined,
13+
id: filters.id ? { in: filters.id.split(',') } : undefined,
14+
},
15+
select: filters.extended
16+
? {
17+
id: true,
18+
area: true,
19+
center: true,
20+
finished: true,
21+
active: true,
22+
owner: {
23+
select: {
24+
id: true,
25+
ssoId: true,
26+
avatar: true,
27+
minecraft: true,
28+
username: true,
29+
},
30+
},
31+
builders: {
32+
select: {
33+
id: true,
34+
avatar: true,
35+
minecraft: true,
36+
username: true,
37+
},
38+
},
39+
buildings: true,
40+
buildTeam: {
41+
select: { id: true, slug: true, name: true, location: true },
42+
},
43+
description: true,
44+
city: true,
45+
name: true,
46+
osmName: true,
47+
images: {
48+
select: {
49+
id: true,
50+
hash: true,
51+
name: true,
52+
createdAt: true,
53+
height: true,
54+
width: true,
55+
},
56+
},
57+
}
58+
: { id: true, area: true, center: true, name: true, owner: { select: { id: true, ssoId: true } } },
59+
};
60+
}
Lines changed: 1 addition & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import prisma from '@/util/db';
22
import { NextRequest } from 'next/server';
3+
import { constructClaimGeoJSONQuery } from './query';
34

45
export async function GET(req: NextRequest) {
56
const searchParams = req.nextUrl.searchParams;
@@ -59,64 +60,3 @@ export async function GET(req: NextRequest) {
5960
return Response.json(geojson, { headers: { 'Content-Type': 'application/geo+json' } });
6061
}
6162
}
62-
63-
export function constructClaimGeoJSONQuery(filters: {
64-
finished?: boolean;
65-
active?: boolean;
66-
user?: string | null;
67-
extended?: boolean;
68-
id?: string | null;
69-
}) {
70-
return {
71-
where: {
72-
finished: filters.finished,
73-
active: filters.active,
74-
owner: filters.user ? { OR: [{ ssoId: filters.user }, { id: filters.user }] } : undefined,
75-
id: filters.id ? { in: filters.id.split(',') } : undefined,
76-
},
77-
select: filters.extended
78-
? {
79-
id: true,
80-
area: true,
81-
center: true,
82-
finished: true,
83-
active: true,
84-
owner: {
85-
select: {
86-
id: true,
87-
ssoId: true,
88-
avatar: true,
89-
minecraft: true,
90-
username: true,
91-
},
92-
},
93-
builders: {
94-
select: {
95-
id: true,
96-
avatar: true,
97-
minecraft: true,
98-
username: true,
99-
},
100-
},
101-
buildings: true,
102-
buildTeam: {
103-
select: { id: true, slug: true, name: true, location: true },
104-
},
105-
description: true,
106-
city: true,
107-
name: true,
108-
osmName: true,
109-
images: {
110-
select: {
111-
id: true,
112-
hash: true,
113-
name: true,
114-
createdAt: true,
115-
height: true,
116-
width: true,
117-
},
118-
},
119-
}
120-
: { id: true, area: true, center: true, name: true, owner: { select: { id: true, ssoId: true } } },
121-
};
122-
}

0 commit comments

Comments
 (0)