UNPKG

nexorm

Version:

A powerful TypeScript ORM with advanced features.

47 lines (46 loc) 1.9 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateOne = updateOne; const errorHandler_1 = __importDefault(require("../errorHandler")); const updateParser_1 = require("../util/updateParser"); const build_1 = require("./build"); const updateMany_1 = require("./updateMany"); const errorParser_1 = require("../util/errorParser"); async function updateOne(model, where, update, rules, options, schema) { if (!options.$multi) options.$multi = false; /* Multi Update Route */ if (options.$multi) { return (await (0, updateMany_1.updateMany)(model, where, update, rules, options, schema)); } ; if (!update) throw new errorHandler_1.default("No data provided.", "#FF0000"); if (!model) throw new errorHandler_1.default("No model provided.", "#FF0000"); if (!model.findAll) throw new errorHandler_1.default("Invalid model provided.", "#FF0000"); try { var findedValue = await model.findOne({ where: where }); if (!findedValue && options.$upsert) { var buildValue = await (0, updateParser_1.updateParser)({ dataValues: where }, update, rules, model.name, schema); return (await (0, build_1.build)(model, buildValue)); } ; if (!findedValue) return null; var value = await (0, updateParser_1.updateParser)(findedValue, update, rules, model.name, schema); if (!value || Object.keys(value)?.length == 0) throw new errorHandler_1.default("No data provided.", "#FF0000"); var data = (await findedValue.update(value)).dataValues; return data; } catch (error) { throw (0, errorParser_1.errorParser)(error); } ; } ;