Skip to content
This repository was archived by the owner on Nov 10, 2021. It is now read-only.

Commit 5b25ef8

Browse files
committed
Improve DB access methods
1 parent f83ac19 commit 5b25ef8

File tree

1 file changed

+9
-33
lines changed

1 file changed

+9
-33
lines changed

server/index.js

+9-33
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ router
6969
]))
7070
.then(([user]) => Promise.all([
7171
user.id,
72-
knex.first("id").where({id: user.id}).from("users"),
72+
knex("users").first("id").where({id: user.id}),
7373
]))
7474
.then(([id, exists]) => {
7575
const token = uuid.v1()
@@ -96,7 +96,7 @@ router
9696
})
9797
.delete("/auth/token/:token", async (ctx, next) => {
9898
const {token} = ctx.params
99-
await knex.first("id", "revoked").where("token", token).from("users")
99+
await knex("users").first("id", "revoked").where("token", token)
100100
.then(user => {
101101
ctx.assert(user, 404)
102102
ctx.assert(!user.revoked, 400)
@@ -116,7 +116,7 @@ router
116116
// Token should be "Authorization: Bearer <UUID>"
117117
const token = auth.replace(/^Bearer /, "")
118118
// Authentication (token to user)
119-
await knex.first("id").where("token", token).from("users")
119+
await knex("users").first("id").where("token", token)
120120
.then(user => {
121121
ctx.assert(user, 403)
122122
ctx.user = user.id
@@ -125,7 +125,7 @@ router
125125
})
126126
.get("/:username/items/:id", async (ctx, next) => {
127127
// Get disliked status and dislike count from DB
128-
await knex.select("by_whom").where({id: ctx.params.id, state: true}).from("item_dislike")
128+
await knex("item_dislike").select("by_whom").where({id: ctx.params.id, state: true})
129129
.then(users => {
130130
ctx.body = {
131131
disliked: users.map(_=>_.by_whom).includes(ctx.user),
@@ -136,27 +136,12 @@ router
136136
.post("/:username/items/:id", async (ctx, next) => {
137137
// Set disliked status and get new dislike count
138138
const {id, username} = ctx.params
139-
await knex.first("state").where({id, by_whom: ctx.user}).from("item_dislike")
139+
await knex("item_dislike").first("state").where({id, by_whom: ctx.user})
140140
.then(disliked => {
141141
if (disliked === undefined) {
142-
return knex.transaction(trx => knex("item_dislike")
143-
.transacting(trx)
144-
.insert({id, username, by_whom: ctx.user, state: true})
145-
.then(trx.commit)
146-
.catch(e => {
147-
trx.rollback()
148-
throw e
149-
}))
142+
return knex("item_dislike").insert({id, username, by_whom: ctx.user, state: true})
150143
} else if (!disliked.state) {
151-
return knex.transaction(trx => knex("item_dislike")
152-
.transacting(trx)
153-
.where({id, by_whom: ctx.user})
154-
.update({state: true})
155-
.then(trx.commit)
156-
.catch(e => {
157-
trx.rollback()
158-
throw e
159-
}))
144+
return knex("item_dislike").where({id, by_whom: ctx.user}).update({state: true})
160145
} else {
161146
ctx.throw(405)
162147
}
@@ -168,18 +153,9 @@ router
168153
.delete("/:username/items/:id", async (ctx, next) => {
169154
// Unset disliked status and get new dislike count
170155
const {id, username} = ctx.params
171-
await knex.first("state").where({id, by_whom: ctx.user}).from("item_dislike")
156+
await knex("item_dislike").first("state").where({id, by_whom: ctx.user})
172157
.then(disliked => ctx.assert(!!disliked && disliked.state, 405))
173-
.then(() => knex.transaction(trx => knex("item_dislike")
174-
.transacting(trx)
175-
.where({id, by_whom: ctx.user})
176-
.update({state: false})
177-
.then(trx.commit)
178-
.catch(e => {
179-
trx.rollback()
180-
throw e
181-
})
182-
))
158+
.then(() => knex("item_dislike").where({id, by_whom: ctx.user}).update({state: false}))
183159
.then(() => {
184160
ctx.body = {complete: true}
185161
})

0 commit comments

Comments
 (0)