File: //var/dev/farhangmoaser/web/models/longText.js
"use strict";
var md5 = require('md5');
var uuid = require('uuid');
// var mysql = require('../connectors/mysql').client();
class LongTextModel {
/**
* Constructor
* @param {object} conn db connection from db pool.
* @param {Object} data values for table fields.
* At least on of `title` or `id` must be set.
*/
constructor(conn, data) {
this.data = data;
this.conn = conn;
}
field(key, value) {
if(arguments.length==0) return;
if(arguments.length==1)
return this.data[key];
if(value===undefined)
delete this.data[key];
else
this.data[key] = value;
}
fields(){
return this.data;
}
save() {
if(this.data.id) return this.update();
else return this.add();
}
update() {
var self = this;
return new Promise(function(resolve, reject){
if(!self.data.hasOwnProperty('id'))
return reject('id is required.');
self.conn.query("UPDATE long_text SET ? where ?", [{content: self.data.content}, {id: self.data.id}], function(err, result){
if(err) return reject('db error.');
resolve(self);
});
});
}
add() {
var self = this;
return new Promise(function(resolve, reject){
if(!self.data.content)
return reject('content field is required.');
self.conn.query(`INSERT INTO long_text SET ?`, {content: self.data.content}, function(err, result){
if(err) return reject('db error.');
self.data.id = result.insertId;
resolve(self);
});
});
}
load() {
var self = this;
return new Promise(function(resolve, reject){
if(self.data.hasOwnProperty('id')) {
if(!self.data.id) return resolve(self);
self.conn.query(`SELECT * FROM long_text WHERE ?`, {id: self.data.id}, function(err, rows, fields){
if (err) return reject(err.message);
self.data = rows[0];
resolve(self);
});
}else
return reject('At least on of the id and title fields must be provided.');
});
}
remove() {
var self = this;
return new Promise(function(resolve, reject){
if(!self.data.hasOwnProperty('id')) return reject('id is required.');
self.conn.query(`DELETE FROM long_text WHERE ?`, {id: self.data.id}, function(err, rows, fields){
if(err) return reject(err.message);
resolve(self);
});
});
}
}
module.exports = LongTextModel;