· 8 years ago · Nov 23, 2017, 02:20 PM
1const sqlite3 = require('sqlite3').verbose();
2const dbName = '../database.db';
3const db = new sqlite3.Database(dbName);
4
5db.serialize(() => {
6 const sql = `
7 CREATE TABLE IF NOT EXISTS artwork (id VARCHAR(6) NOT NULL PRIMARY KEY,accession_number VARCHAR(16) NOT NULL,artist VARCHAR(120) NOT NULL,artistRole VARCHAR(24) NOT NULL,artistId VARCHAR(8) NOT NULL,title VARCHAR(320) NOT NULL,dateText VARCHAR(75) NOT NULL,medium VARCHAR(120),creditLine VARCHAR(821),year VARCHAR(8),acquisitionYear VARCHAR(15),dimensions VARCHAR(248),width VARCHAR(11),height VARCHAR(6),depth VARCHAR(5),units VARCHAR(5),inscription VARCHAR(14),thumbnailCopyright VARCHAR(984),thumbnailUrl VARCHAR(57),url VARCHAR(134) NOT NULL)
8 `;
9 db.run(sql);
10});
11
12class Artworks {
13 static all(cb) {
14 db.all('SELECT * FROM artwork', cb);
15 }
16
17 static find(id, cb) {
18 db.get('SELECT * FROM artwork WHERE id = ?', id, cb);
19 }
20
21 static create(data, cb) {
22 const sql = 'INSERT INTO artwork(title, content) VALUES (?, ?)';
23 db.run(sql, data.title, data.content, cb);
24 }
25
26 static delete(id, cb) {
27 if (!id) return cb(new Error('Please provide an id'));
28 db.run('DELETE FROM artwork WHERE id = ?', id, cb);
29 }
30}
31
32module.exports = db;
33module.exports.Artworks = Artworks;