ghost
Version:
The professional publishing platform
35 lines (34 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IncomingRecommendationController = void 0;
const UnsafeData_1 = require("./UnsafeData");
class IncomingRecommendationController {
service;
constructor(deps) {
this.service = deps.service;
}
async browse(frame) {
const options = new UnsafeData_1.UnsafeData(frame.options);
const page = options.optionalKey('page')?.integer ?? 1;
const limit = options.optionalKey('limit')?.integer ?? 5;
const { incomingRecommendations, meta } = await this.service.listIncomingRecommendations({ page, limit });
return this.#serialize(incomingRecommendations, meta);
}
#serialize(recommendations, meta) {
return {
data: recommendations.map((entity) => {
return {
id: entity.id,
title: entity.title,
excerpt: entity.excerpt,
featured_image: entity.featuredImage?.toString() ?? null,
favicon: entity.favicon?.toString() ?? null,
url: entity.url.toString(),
recommending_back: !!entity.recommendingBack
};
}),
meta
};
}
}
exports.IncomingRecommendationController = IncomingRecommendationController;