UNPKG

@webiny/api-form-builder-so-ddb-es

Version:

[![](https://img.shields.io/npm/dw/@webiny/api-form-builder-so-ddb-es.svg)](https://www.npmjs.com/package/@webiny/api-form-builder-so-ddb-es) [![](https://img.shields.io/npm/v/@webiny/api-form-builder-so-ddb-es.svg)](https://www.npmjs.com/package/@webiny

113 lines (111 loc) 2.81 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSettingsStorageOperations = void 0; var _error = _interopRequireDefault(require("@webiny/error")); var _dbDynamodb = require("@webiny/db-dynamodb"); const createSettingsStorageOperations = params => { const { entity } = params; const createSettingsPartitionKey = ({ tenant, locale }) => { return `T#${tenant}#L#${locale}#FB#SETTINGS`; }; const createSettingsSortKey = () => { return "default"; }; const createKeys = params => { return { PK: createSettingsPartitionKey(params), SK: createSettingsSortKey() }; }; const createSettings = async params => { const { settings } = params; const keys = createKeys(settings); try { await (0, _dbDynamodb.put)({ entity, item: { ...settings, ...keys } }); return settings; } catch (ex) { throw new _error.default(ex.message || "Could not create the settings record by given keys.", ex.code || "CREATE_SETTINGS_ERROR", { keys, settings }); } }; const getSettings = async params => { const keys = createKeys(params); try { return await (0, _dbDynamodb.getClean)({ entity, keys }); } catch (ex) { throw new _error.default(ex.message || "Could not get the settings record by given keys.", ex.code || "LOAD_SETTINGS_ERROR", { keys }); } }; const updateSettings = async params => { const { settings, original } = params; const keys = createKeys(settings); try { await (0, _dbDynamodb.put)({ entity, item: { ...settings, ...keys } }); return settings; } catch (ex) { throw new _error.default(ex.message || "Could not update the settings record by given keys.", ex.code || "UPDATE_SETTINGS_ERROR", { keys, original, settings }); } }; const deleteSettings = async params => { const { settings } = params; const keys = createKeys(settings); try { await (0, _dbDynamodb.deleteItem)({ entity, keys }); } catch (ex) { throw new _error.default(ex.message || "Could not delete the settings record by given keys.", ex.code || "DELETE_SETTINGS_ERROR", { keys }); } }; return { createSettings, getSettings, updateSettings, deleteSettings, createSettingsPartitionKey, createSettingsSortKey }; }; exports.createSettingsStorageOperations = createSettingsStorageOperations; //# sourceMappingURL=index.js.map