move old to legacy folder
This commit is contained in:
107
.bzr/legacy/stc-21-03/controllers.js
Normal file
107
.bzr/legacy/stc-21-03/controllers.js
Normal file
@@ -0,0 +1,107 @@
|
||||
const { getDB } = require('../../../utils/mongo')
|
||||
|
||||
let db = null
|
||||
|
||||
const connect = async () => {
|
||||
db = await getDB('stc-21-03')
|
||||
}
|
||||
|
||||
const _idToId = (data) => {
|
||||
const { _id, ...rest } = data
|
||||
|
||||
return {
|
||||
id: _id, ...rest,
|
||||
}
|
||||
}
|
||||
|
||||
const FILM_TOMATOS_COLL = 'films-tomatos'
|
||||
const getFilmData = async (filmId) => {
|
||||
if (db === null) throw new Error('no db connection')
|
||||
|
||||
const filmsCollection = db.collection(FILM_TOMATOS_COLL)
|
||||
const data = await filmsCollection.find({
|
||||
filmId,
|
||||
}).toArray()
|
||||
|
||||
if (data.length === 0) {
|
||||
const newData = {
|
||||
filmId,
|
||||
views: 0,
|
||||
ratings: [],
|
||||
likes: 0,
|
||||
}
|
||||
|
||||
filmsCollection.insertMany([newData])
|
||||
|
||||
return _idToId(newData)
|
||||
}
|
||||
const filmData = data[0]
|
||||
filmsCollection.updateOne({
|
||||
filmId,
|
||||
}, [
|
||||
{
|
||||
$set: {
|
||||
views: ++filmData.views,
|
||||
},
|
||||
},
|
||||
])
|
||||
return _idToId(filmData)
|
||||
}
|
||||
|
||||
const setLike = async (filmId) => {
|
||||
if (db === null) throw new Error('no db connection')
|
||||
|
||||
const filmsCollection = db.collection(FILM_TOMATOS_COLL)
|
||||
const data = await filmsCollection.find({
|
||||
filmId,
|
||||
}).toArray()
|
||||
|
||||
if (data.length === 0) {
|
||||
throw new Error('no film data')
|
||||
}
|
||||
|
||||
const filmData = data[0]
|
||||
filmsCollection.updateOne({
|
||||
filmId,
|
||||
}, [
|
||||
{
|
||||
$set: {
|
||||
likes: ++filmData.likes,
|
||||
},
|
||||
},
|
||||
])
|
||||
return _idToId(filmData)
|
||||
}
|
||||
|
||||
const setRating = async ({ filmId, rating }) => {
|
||||
if (db === null) throw new Error('no db connection')
|
||||
|
||||
const filmsCollection = db.collection(FILM_TOMATOS_COLL)
|
||||
const data = await filmsCollection.find({
|
||||
filmId,
|
||||
}).toArray()
|
||||
|
||||
if (data.length === 0) {
|
||||
throw new Error('no film data')
|
||||
}
|
||||
|
||||
const filmData = data[0]
|
||||
filmData.ratings = [...filmData.ratings, rating]
|
||||
filmsCollection.updateOne({
|
||||
filmId,
|
||||
}, [
|
||||
{
|
||||
$set: {
|
||||
ratings: filmData.ratings,
|
||||
},
|
||||
},
|
||||
])
|
||||
return _idToId(filmData)
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
connect,
|
||||
getFilmData,
|
||||
setLike,
|
||||
setRating,
|
||||
}
|
||||
Reference in New Issue
Block a user