motionlink-cli
Version:
Making it easy to use Notion as a Content Management system for personal websites, portfolios, blogs, business homepages, and other kinds of static websites.
45 lines • 1.77 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const motion_link_api_1 = __importDefault(require("../api_wrappers/motion_link_api"));
class AssociationsService {
async toNotionDatabaseAssociations(associations) {
const promises = new Array();
const makeAssociationData = async (association) => {
return {
data: await this.getLinkData(association.value),
key: association.key,
};
};
for (const association of associations) {
promises.push(makeAssociationData(association));
}
const data = await Promise.all(promises);
return data.map((linkData) => {
return {
name: linkData.key,
notionDatabaseId: linkData.data.notionDatabaseId,
notionIntegrationToken: linkData.data.notionIntegrationToken,
};
});
}
async getLinkData(linkAccessKey) {
const promises = [
motion_link_api_1.default.instance.getNotionDatabaseIdForLink(linkAccessKey),
motion_link_api_1.default.instance.getNotionTokenForLink(linkAccessKey),
];
const linkData = await Promise.all(promises);
return {
notionDatabaseId: linkData[0],
notionIntegrationToken: linkData[1],
};
}
static get instance() {
var _a;
return (_a = this._instance) !== null && _a !== void 0 ? _a : (this._instance = new AssociationsService());
}
}
exports.default = AssociationsService;
//# sourceMappingURL=associations_service.js.map