@wbg-mde/repository
Version:
Managing all common method for file system CRUD operations.
161 lines (160 loc) • 5.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const mkdirp = require("mkdirp");
const path = require("path");
class FileRepository {
find(type, entity, callback) {
try {
let filePath = path.join(this.basePath, type, entity + '.json');
fs.readFile(filePath, (err, data) => {
if (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Read Error >> ' + err);
}
else {
callback({ result: 'ok', data: JSON.parse(data.toString()) });
}
});
}
catch (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Read Error >> ' + err);
}
}
findFile(paths, callback) {
try {
let filePath = paths;
if (typeof paths !== "string") {
filePath = path.join(...paths);
}
fs.readFile(filePath, (err, data) => {
if (err) {
callback({ result: 'error', messages: err });
}
else {
callback({ result: 'ok', data: JSON.parse(data.toString()) });
}
});
}
catch (err) {
callback({ result: 'error', messages: err });
}
}
create(type, entity, data, callback) {
try {
let filePath = path.join(this.basePath, type, entity + '.json');
let directory = path.dirname(filePath);
mkdirp(directory, (err) => {
if (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Create Error >> ' + err);
}
else {
fs.writeFile(filePath, JSON.stringify(data), (err) => {
if (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Create Error >> ' + err);
}
else {
callback({ result: 'ok', data: data });
}
});
}
});
}
catch (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Write Error >> ' + err);
}
}
createTemplate(filePath, data, callback) {
try {
let directory = path.dirname(filePath);
mkdirp(directory, (err) => {
if (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Create Error >> ' + err);
}
else {
fs.writeFile(filePath, JSON.stringify(data), (err) => {
if (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Create Error >> ' + err);
}
else {
callback({ result: 'ok', data: data });
}
});
}
});
}
catch (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Write Error >> ' + err);
}
}
delete(type, entity, callback) {
try {
let filePath = path.join(this.basePath, type, entity + '.json');
fs.unlink(filePath, (err) => {
if (err) {
callback({ result: 'error', messgae: err });
console.log('File Repository Remove Error >> ' + err);
}
else {
callback({ result: 'ok', messgae: 'file deleted!!' });
}
});
}
catch (err) {
callback({ result: 'error', messgae: err });
console.log('File Repository Remove Error >> ' + err);
}
}
deleteTemplate(paths, callback) {
try {
let filePath = paths;
if (typeof paths !== "string") {
filePath = path.join(...paths);
}
fs.unlink(filePath, (err) => {
if (err) {
callback({ result: 'error', messgae: err });
console.log('File Repository Remove Error >> ' + err);
}
else {
callback({ result: 'ok', messgae: 'file deleted!!' });
}
});
}
catch (err) {
callback({ result: 'error', messgae: err });
console.log('File Repository Remove Error >> ' + err);
}
}
export(type, entity, callback) {
try {
let filePath = path.join(this.basePath, type, entity + '.json');
fs.readFile(filePath, (err, data) => {
if (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Export Error >> ' + err);
}
else {
callback({ result: 'ok', data: JSON.parse(data.toString()) });
}
});
}
catch (err) {
callback({ result: 'error', messages: err });
console.log('File Repository Export Error >> ' + err);
}
}
writeFile(filePath, data) {
let directory = path.dirname(filePath);
mkdirp.sync(directory);
fs.writeFileSync(filePath, data);
}
}
exports.FileRepository = FileRepository;