decentralised message store

refactor: http response helpers

serenity 2c8bdef4 91a768ef

Changed files
+24 -14
src
lib
types
utils
+14 -10
src/lib/types/http/responses.ts
···
error: z.optional(httpResponseErrorInfoSchema),
});
-
export const httpSuccessResponseSchema = httpResponseBaseSchema.safeExtend({
-
status: z.literal(HttpResponseStatusType.SUCCESS),
-
data: httpResponseDataSchema,
-
error: z.undefined(),
-
});
+
export const httpSuccessResponseSchema = httpResponseBaseSchema
+
.safeExtend({
+
status: z.literal(HttpResponseStatusType.SUCCESS),
+
data: httpResponseDataSchema,
+
error: z.undefined(),
+
})
+
.omit({ error: true });
export type HttpSuccessResponse = z.infer<typeof httpSuccessResponseSchema>;
-
export const httpErrorResponseSchema = httpResponseBaseSchema.safeExtend({
-
status: z.literal(HttpResponseStatusType.ERROR),
-
error: httpResponseErrorInfoSchema,
-
data: z.undefined(),
-
});
+
export const httpErrorResponseSchema = httpResponseBaseSchema
+
.safeExtend({
+
status: z.literal(HttpResponseStatusType.ERROR),
+
error: httpResponseErrorInfoSchema,
+
data: z.undefined(),
+
})
+
.omit({ data: true });
export type HttpErrorResponse = z.infer<typeof httpErrorResponseSchema>;
+10 -4
src/lib/utils/http/responses.ts
···
+
import type { HttpResponseErrorInfo } from "@/lib/types/http/errors";
import type {
HttpErrorResponse,
HttpResponseData,
+
HttpSuccessResponse,
} from "@/lib/types/http/responses";
import { HttpResponseStatusType } from "@/lib/types/http/responses";
export const newSuccessResponse = (data: HttpResponseData) => {
-
const response = {
+
const body: HttpSuccessResponse = {
status: HttpResponseStatusType.SUCCESS,
data,
};
-
return new Response(JSON.stringify(response), {
+
return new Response(JSON.stringify(body), {
status: 200,
headers: {
"Content-Type": "application/json",
···
export const newErrorResponse = (
httpCode: number,
-
errorObj: HttpErrorResponse,
+
errorObj: HttpResponseErrorInfo,
) => {
-
return new Response(JSON.stringify(errorObj), {
+
const body: HttpErrorResponse = {
+
status: HttpResponseStatusType.ERROR,
+
error: errorObj,
+
};
+
return new Response(JSON.stringify(body), {
status: httpCode,
headers: {
"Content-Type": "application/json",