|
@@ -5,6 +5,7 @@ const db = new Database('./cosette.db')
|
|
function load () {
|
|
function load () {
|
|
db.pragma('journal_mode = WAL')
|
|
db.pragma('journal_mode = WAL')
|
|
db.exec('CREATE TABLE IF NOT EXISTS cosette (uuid TEXT PRIMARY KEY, name TEXT NOT NULL, description TEXT, tags TEXT, images TEXT, updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP)')
|
|
db.exec('CREATE TABLE IF NOT EXISTS cosette (uuid TEXT PRIMARY KEY, name TEXT NOT NULL, description TEXT, tags TEXT, images TEXT, updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP)')
|
|
|
|
+ db.exec('CREATE INDEX cosette_updated_at_index ON cosette (updatedAt)')
|
|
db.exec('CREATE TABLE IF NOT EXISTS chan (uuid TEXT PRIMARY KEY, cosetta_uuid REFERENCES cosette(uuid), message TEXT, updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP)')
|
|
db.exec('CREATE TABLE IF NOT EXISTS chan (uuid TEXT PRIMARY KEY, cosetta_uuid REFERENCES cosette(uuid), message TEXT, updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP)')
|
|
}
|
|
}
|
|
// TODO: da gestire in qualche modo all'avvio
|
|
// TODO: da gestire in qualche modo all'avvio
|
|
@@ -31,14 +32,21 @@ export function get (uuid) {
|
|
return { cosetta, comments }
|
|
return { cosetta, comments }
|
|
}
|
|
}
|
|
|
|
|
|
-export function getAll (limit=0, offset=0, tags=[], search='') {
|
|
|
|
- const q = db.prepare('SELECT * FROM cosette')
|
|
|
|
- const ret = q.all()
|
|
|
|
- return ret.map(r => {
|
|
|
|
|
|
+export function getAll ({ page }) {
|
|
|
|
+ page = Number(page || 0)
|
|
|
|
+ const perPage = 3
|
|
|
|
+ let query = 'SELECT * FROM cosette ORDER BY updatedAt DESC LIMIT ? OFFSET ?'
|
|
|
|
+ const q = db.prepare(query)
|
|
|
|
+ const ret = q.all(perPage, perPage * page)
|
|
|
|
+ const cosette = ret.map(r => {
|
|
r.tags = r.tags ? JSON.parse(r.tags) : []
|
|
r.tags = r.tags ? JSON.parse(r.tags) : []
|
|
r.images = r.images ? JSON.parse(r.images) : []
|
|
r.images = r.images ? JSON.parse(r.images) : []
|
|
return r
|
|
return r
|
|
})
|
|
})
|
|
|
|
+
|
|
|
|
+ const count = db.prepare('SELECT COUNT(*) count from cosette').get().count
|
|
|
|
+
|
|
|
|
+ return { cosette, details: { page, count, prev: page !== 0, next: count > perPage*(page+1), n_page: Math.ceil(count / perPage) } }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|