From 5ed561f230f68ab7c325adbdb90c5472bbca7f6b Mon Sep 17 00:00:00 2001 From: Kenneth Trecy Tobias <19201.tobias.kennethtrecy.c@gmail.com> Date: Sat, 15 Oct 2022 17:32:23 +0800 Subject: [PATCH] intrn(server)!: return the created or found document --- server/middlewares/miscellaneous/force_redirector.ts | 1 + server/singletons/asynchronous_operation_manager.ts | 7 +++++-- t/helpers/setups/mock_requester.ts | 7 ++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/server/middlewares/miscellaneous/force_redirector.ts b/server/middlewares/miscellaneous/force_redirector.ts index efa75facd..5bfb18af9 100644 --- a/server/middlewares/miscellaneous/force_redirector.ts +++ b/server/middlewares/miscellaneous/force_redirector.ts @@ -1,4 +1,5 @@ import type { Request, Response, NextFunction } from "!/types/dependent" + import redirect from "!/helpers/redirect" import Middleware from "!/bases/middleware" import RequestEnvironment from "$/singletons/request_environment" diff --git a/server/singletons/asynchronous_operation_manager.ts b/server/singletons/asynchronous_operation_manager.ts index e7a576e93..28449437e 100644 --- a/server/singletons/asynchronous_operation_manager.ts +++ b/server/singletons/asynchronous_operation_manager.ts @@ -26,7 +26,7 @@ export default class extends TransactionManager implements AsynchronousOperation request: AuthenticatedRequest, Manager: BaseManagerClass, totalStepCount: number - ): Promise { + ): Promise { await this.initialize() this.rawManager = new Manager({ "cache": request.cache, @@ -38,7 +38,7 @@ export default class extends TransactionManager implements AsynchronousOperation const hashedBody = await digest(request.body) Log.trace("asynchronous", `digested body in ${request.url}`) - const possibleDocument = await this.manager.findOneOnColumn("token", hashedBody, { + let possibleDocument = await this.manager.findOneOnColumn("token", hashedBody, { "constraints": { "filter": { "existence": "exists" @@ -60,6 +60,7 @@ export default class extends TransactionManager implements AsynchronousOperation "userID": Number(user.data.id) }) + possibleDocument = createdDocument possibleResource = createdDocument.data } else { this.hasFound = true @@ -74,6 +75,8 @@ export default class extends TransactionManager implements AsynchronousOperation await this.destroySuccessfully() await this.initialize() Log.trace("asynchronous", "initialize asynchronous operation") + + return possibleDocument } get isNew(): boolean { return !this.hasFound } diff --git a/t/helpers/setups/mock_requester.ts b/t/helpers/setups/mock_requester.ts index 658b09b7c..72742b75a 100644 --- a/t/helpers/setups/mock_requester.ts +++ b/t/helpers/setups/mock_requester.ts @@ -1,5 +1,6 @@ import { getMockReq as makeRequest, getMockRes as makeResponse } from "@jest-mock/express" +import type { Serializable } from "$/types/general" import type { FieldRules } from "!/types/validation" import type { Request, Response, NextFunction, BaseManagerClass } from "!/types/dependent" @@ -89,11 +90,11 @@ export default class extends RequestEnvironment { unusedRequest: T, Manager: BaseManagerClass, totalStepCount: number - ) => Promise, + ) => Promise, Manager: BaseManagerClass, totalStepCount: number - ): Promise { - await handle(this.request, Manager, totalStepCount) + ): Promise { + return await handle(this.request, Manager, totalStepCount) } expectSuccess(): any {