summaryrefslogtreecommitdiff
path: root/lib/db
diff options
context:
space:
mode:
Diffstat (limited to 'lib/db')
-rw-r--r--lib/db/bookshelf.js24
-rw-r--r--lib/db/index.js46
2 files changed, 70 insertions, 0 deletions
diff --git a/lib/db/bookshelf.js b/lib/db/bookshelf.js
new file mode 100644
index 0000000..69157cc
--- /dev/null
+++ b/lib/db/bookshelf.js
@@ -0,0 +1,24 @@
+var knex = require('knex')({
+ client: 'mysql2',
+ connection: {
+ host : process.env.DB_HOST,
+ user : process.env.DB_USER,
+ password : process.env.DB_PASS,
+ database : process.env.DB_NAME,
+ charset : 'utf8',
+ typecast : function (field, next) {
+ console.log(field.type)
+ if (field.type == 'BLOB') {
+ return field.string()
+ }
+ return next()
+ }
+ }
+})
+
+var bookshelf = require('bookshelf')(knex)
+
+module.exports = {
+ bookshelf: bookshelf,
+ knex: knex,
+}
diff --git a/lib/db/index.js b/lib/db/index.js
new file mode 100644
index 0000000..bb62169
--- /dev/null
+++ b/lib/db/index.js
@@ -0,0 +1,46 @@
+var db = module.exports
+
+var connection = require("./bookshelf")
+var bookshelf = connection.bookshelf
+var knex = connection.knex
+
+var Folder = db.Folder = bookshelf.Model.extend({
+ tableName: 'folders',
+ hasTimestamps: true,
+})
+var File = db.File = bookshelf.Model.extend({
+ tableName: 'files',
+ hasTimestamps: true,
+})
+var Job = db.Job = bookshelf.Model.extend({
+ tableName: 'job',
+ hasTimestamps: true,
+})
+var Task = db.Task = bookshelf.Model.extend({
+ tableName: 'tasks',
+ hasTimestamps: true,
+})
+
+db.getFolders = function(id) {
+ var model = new Folder({'id': id})
+ return model.fetch()
+}
+db.getFolderFiles = function(id) {
+ return File.query(function(qb){
+ qb.where('folder_id', '=', id).orderBy("id", "desc")
+ }).fetch()
+}
+db.getLatest = function () {
+ return Image.query(function(qb){
+ qb.orderBy("id", "desc").limit(1)
+ }).fetch()
+}
+db.getRandom = function () {
+ return Image.query(function(qb){
+ qb.orderBy(knex.raw('RAND()')).limit(1)
+ }).fetch()
+}
+
+db.createImage = function(url){
+ return new Image({ url: url, shorturl: "" }).save()
+} \ No newline at end of file