Skip to content

Commit c582b27

Browse files
chore: wip
1 parent a84817a commit c582b27

File tree

4 files changed

+42
-13
lines changed

4 files changed

+42
-13
lines changed

app/Actions/SubscriberEmailAction.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ export default new Action({
1010
async handle(request: SubscriberEmailRequestType) {
1111
const email = request.get('email')
1212

13+
await request.validate()
14+
1315
const model = await SubscriberEmail.create({ email })
1416

1517
return model

storage/framework/core/router/src/request.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ export class Request implements RequestInstance {
2020
return Request.instance
2121
}
2222

23-
public addQuery(url: URL, params: any): void {
24-
if (Object.keys(url.searchParams).length === 0) {
25-
this.query = params
26-
} else {
27-
this.query = Object.fromEntries(url.searchParams)
28-
}
23+
public addQuery(url: URL): void {
24+
this.query = Object.fromEntries(url.searchParams)
25+
}
26+
27+
public addBodies(params: any): void {
28+
this.query = params
2929
}
3030

3131
public addParam(param: RouteParam): void {

storage/framework/core/router/src/server.ts

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,12 @@ export async function serverResponse(req: Request, body: string) {
8787

8888
const routeParams = extractDynamicSegments(foundRoute.uri, url.pathname)
8989

90-
await addRouteQuery(url, body)
90+
if (!body) {
91+
await addRouteQuery(url)
92+
} else {
93+
await addBody(body)
94+
}
95+
9196
await addRouteParam(routeParams)
9297
await addHeaders(req.headers)
9398

@@ -214,7 +219,9 @@ async function execute(foundRoute: Route, req: Request, { statusCode }: Options)
214219

215220
if (isObject(foundCallback) && foundCallback.status) {
216221
if (foundCallback.status === 422) {
222+
// biome-ignore lint/performance/noDelete: <explanation>
217223
delete foundCallback.status
224+
218225
return await new Response(JSON.stringify(foundCallback), {
219226
headers: {
220227
'Content-Type': 'json',
@@ -229,6 +236,7 @@ async function execute(foundRoute: Route, req: Request, { statusCode }: Options)
229236
if (isObject(foundCallback) && foundCallback.status) {
230237
if (foundCallback.status === 401) {
231238
delete foundCallback.status
239+
232240
return await new Response(JSON.stringify(foundCallback), {
233241
headers: {
234242
'Content-Type': 'json',
@@ -283,7 +291,7 @@ function noCache(response: Response) {
283291
return response
284292
}
285293

286-
async function addRouteQuery(url: URL, body: string) {
294+
async function addRouteQuery(url: URL) {
287295
const modelFiles = glob.sync(path.userModelsPath('*.ts'))
288296

289297
for (const modelFile of modelFiles) {
@@ -294,14 +302,31 @@ async function addRouteQuery(url: URL, body: string) {
294302
const requestImport = await import(requestPath)
295303
const requestInstance = requestImport[modelNameLower]
296304

297-
if (requestInstance && !isObjectNotEmpty(url.searchParams)) {
298-
requestInstance.addQuery(url, JSON.parse(body))
305+
if (requestInstance) {
306+
requestInstance.addQuery(url)
299307
}
300308
}
301309

302-
if (!isObjectNotEmpty(url.searchParams)) {
303-
RequestParam.addQuery(url, JSON.parse(body))
310+
RequestParam.addQuery(url)
311+
}
312+
313+
async function addBody(params: any) {
314+
const modelFiles = glob.sync(path.userModelsPath('*.ts'))
315+
316+
for (const modelFile of modelFiles) {
317+
const model = (await import(modelFile)).default
318+
const modelName = getModelName(model, modelFile)
319+
const modelNameLower = `${camelCase(modelName)}Request`
320+
const requestPath = path.projectStoragePath(`framework/requests/${modelName}Request.ts`)
321+
const requestImport = await import(requestPath)
322+
const requestInstance = requestImport[modelNameLower]
323+
324+
if (requestInstance) {
325+
requestInstance.addBodies(JSON.parse(params))
326+
}
304327
}
328+
329+
RequestParam.addBodies(JSON.parse(params))
305330
}
306331

307332
async function addRouteParam(param: RouteParam): Promise<void> {

storage/framework/core/types/src/request.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ interface RequestData {
55
type RouteParams = { [key: string]: string } | null
66

77
export interface RequestInstance {
8-
addQuery(url: URL, params: any): void
8+
addQuery(url: URL): void
9+
10+
addBodies(params: any): void
911

1012
addParam(param: RouteParams): void
1113

0 commit comments

Comments
 (0)