UNPKG

@webiny/api-headless-cms-ddb

Version:

DynamoDB storage operations plugin for Headless CMS API.

94 lines (92 loc) 2.12 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSystemStorageOperations = void 0; var _error = _interopRequireDefault(require("@webiny/error")); var _get = require("@webiny/db-dynamodb/utils/get"); var _dbDynamodb = require("@webiny/db-dynamodb"); const createPartitionKey = ({ tenant }) => { return `T#${tenant.toLowerCase()}#SYSTEM`; }; const createSortKey = () => { return "CMS"; }; const createKeys = params => { return { PK: createPartitionKey(params), SK: createSortKey() }; }; const createSystemStorageOperations = params => { const { entity } = params; const create = async ({ system }) => { const keys = createKeys(system); try { await (0, _dbDynamodb.put)({ entity, item: { ...system, ...keys } }); return system; } catch (ex) { throw new _error.default(ex.message || "Could not create system.", ex.code || "CREATE_SYSTEM_ERROR", { error: ex, system, keys }); } }; const update = async params => { const { system } = params; const keys = createKeys(system); try { await (0, _dbDynamodb.put)({ entity, item: { ...system, ...keys } }); return system; } catch (ex) { throw new _error.default(ex.message || "Could not update system.", ex.code || "UPDATE_SYSTEM_ERROR", { error: ex, system, keys }); } }; const get = async params => { const keys = createKeys(params); try { return await (0, _get.getClean)({ entity, keys }); } catch (ex) { throw new _error.default(ex.message || "Could not get system.", ex.code || "GET_SYSTEM_ERROR", { error: ex, keys }); } }; return { create, update, get }; }; exports.createSystemStorageOperations = createSystemStorageOperations; //# sourceMappingURL=index.js.map