Skip to content

Commit

Permalink
feat(core-api): implement businesses/bridgechains endpoint (#3119)
Browse files Browse the repository at this point in the history
  • Loading branch information
dated authored and spkjp committed Oct 25, 2019
1 parent d579fda commit 697d347
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 2 deletions.
11 changes: 11 additions & 0 deletions packages/core-api/src/handlers/businesses/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,17 @@ export class BusinessController extends Controller {
}
}

public async bridgechains(request: Hapi.Request, h: Hapi.ResponseToolkit) {
try {
// @ts-ignore
const data = await request.server.methods.v2.businesses.bridgechains(request);

return super.respondWithCache(data, h);
} catch (error) {
return Boom.badImplementation(error);
}
}

public async search(request: Hapi.Request, h: Hapi.ResponseToolkit) {
try {
// @ts-ignore
Expand Down
23 changes: 23 additions & 0 deletions packages/core-api/src/handlers/businesses/methods.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,24 @@ const show = async request => {
return respondWithResource(business, "business");
};

const bridgechains = async request => {
const business = databaseService.wallets.search(Database.SearchScope.Businesses, {
businessId: request.params.id,
});

if (!business) {
return Boom.notFound("Business not found");
}

const bridgechains = databaseService.wallets.search(Database.SearchScope.Bridgechains, {
businessId: request.params.id,
...request.query,
...paginate(request),
});

return toPagination(bridgechains, "bridgechain");
};

const search = async request => {
const businesses = databaseService.wallets.search(Database.SearchScope.Businesses, {
...request.payload,
Expand All @@ -44,6 +62,11 @@ export const registerMethods = server => {
...paginate(request),
}))
.method("v2.businesses.show", show, 8, request => ({ id: request.params.id }))
.method("v2.businesses.bridgechains", bridgechains, 8, request => ({
id: request.params.id,
...request.query,
...paginate(request),
}))
.method("v2.businesses.search", search, 30, request => ({
...request.payload,
...request.query,
Expand Down
4 changes: 2 additions & 2 deletions packages/core-api/src/handlers/businesses/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ export const registerRoutes = (server: Hapi.Server): void => {
server.route({
method: "GET",
path: "/businesses/{id}/bridgechains",
handler: controller.show,
handler: controller.bridgechains,
options: {
validate: Schema.show,
validate: Schema.bridgechains,
},
});

Expand Down
14 changes: 14 additions & 0 deletions packages/core-api/src/handlers/businesses/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,20 @@ export const show: object = {
},
};

export const bridgechains: object = {
params: {
id: Joi.number()
.integer()
.min(1),
},
query: {
...pagination,
...{
orderBy: Joi.string(),
},
},
};

export const search: object = {
query: {
...pagination,
Expand Down

0 comments on commit 697d347

Please sign in to comment.