@wbg-mde/repository
Version:
Managing all common method for file system CRUD operations.
350 lines (349 loc) • 11.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _ = require("lodash");
const app_repo_constants_1 = require("../shared/app.repo.constants");
const mongodbClient_1 = require("./mongodbClient");
class MongoDBRepository {
create(type, entity, data, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.insertOne(data, (err, newDoc) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: newDoc.ops[0]
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
find(type, entity, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.find({})
.toArray((err, items) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: items
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
export(type, entity, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.find({})
.toArray((err, items) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: items
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
findByFilter(type, entity, filter, callback) {
try {
let defaultFilter = {};
if (filter != undefined) {
defaultFilter = _.merge(defaultFilter, filter);
}
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.find(defaultFilter)
.toArray((err, items) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: items
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
findById(type, entity, id, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.find({
_id: id
})
.toArray((err, items) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: items[0]
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
findByName(type, entity, name, id, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.find({
name: name,
_id: {
$ne: id
}
})
.toArray((err, items) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: items
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
update(type, entity, query, data, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.update(query, data, (err, items) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
delete(type, entity, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.deleteMany({}, (err, result) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
messages: result.deletedCount
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
deleteById(type, entity, id, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.deleteOne({
_id: id
}, (err, result) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: result.deletedCount
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
deleteByStatus(type, entity, stat, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(entity)
.deleteOne({
status: stat
}, (err, result) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: result.deletedCount
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
deleteByLanguage(dbfile, language, callback) {
try {
mongodbClient_1.MongoHelper.getInstance().then(client => {
client
.db(app_repo_constants_1.App_Repository_Constants.dbName)
.collection(dbfile)
.deleteOne({
language: language
}, (err, result) => {
if (err) {
callback({
result: "error",
messages: err
});
}
else {
callback({
result: "ok",
data: result.deletedCount
});
}
});
});
}
catch (err) {
callback({
result: "error",
messages: err
});
}
}
}
exports.MongoDBRepository = MongoDBRepository;