You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bandolier-website/api/media_like.js

29 lines
847 B

import { Media } from "../lib/models.js";
import { knex } from "../lib/ormish.js";
import logging from '../lib/logging.js';
import assert from 'assert';
import { API } from '../lib/api.js';
const log = logging.create(import.meta.url);
export const get = async (req, res) => {
const api = new API(req, res);
try {
const { media_id, really } = req.query;
assert(media_id !== undefined, "media_id required");
assert(really === "true" || really === "false", "really required");
if(really === "true") {
await knex(Media.table_name).increment('likes').where({id: media_id});
} else {
await knex(Media.table_name).increment('dislikes').where({id: media_id});
}
api.reply(200, {message: "OK" });
} catch (error) {
log.error(error);
api.error(500, error.message || "Internal Server Error");
}
}