Files
Mastering-Node.js-Web-Devel…/Chapter 15/Beginning of Chapter/part2app/src/server/api/index.ts
T
2024-05-29 18:54:49 +01:00

34 lines
1.2 KiB
TypeScript

import { Express } from "express";
import { createAdapter } from "./http_adapter";
import { ResultWebService } from "./results_api";
import { Validator } from "./validation_adapter";
import { ResultWebServiceValidation } from "./results_api_validation";
import { FeathersWrapper } from "./feathers_adapter";
import { feathers } from "@feathersjs/feathers";
import feathersExpress, { rest } from "@feathersjs/express";
import { ValidationError } from "./validation_types";
export const createApi = (app: Express) => {
// createAdapter(app, new Validator(new ResultWebService(),
// ResultWebServiceValidation), "/api/results");
const feathersApp = feathersExpress(feathers(), app).configure(rest());
const service = new Validator(new ResultWebService(),
ResultWebServiceValidation);
feathersApp.use('/api/results', new FeathersWrapper(service));
feathersApp.hooks({
error: {
all: [(ctx) => {
if (ctx.error instanceof ValidationError) {
ctx.http = { status: 400};
ctx.error = undefined;
}
}]
}
});
}