@webiny/api-form-builder-so-ddb-es
Version:
[](https://www.npmjs.com/package/@webiny/api-form-builder-so-ddb-es) [](https://www.npmjs.com/package/@webiny
113 lines (111 loc) • 2.81 kB
JavaScript
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
;