/*
 * Copyright (C) Sapphirecode - All Rights Reserved
 * This file is part of appreports which is released under GPL-3.0-or-later.
 * See file 'LICENSE' for full license details.
 * Created by Timo Hocker <timo@scode.ovh>, August 2020
 */

'use strict';

const db = require ('../db');
const { http } = require ('@sapphirecode/consts');

module.exports = async (req, res) => {
  const { app_id } = req.headers;
  if (
    app_id === 'undefined'
    || isNaN (parseInt (app_id))
  ) {
    res.status (http.status_bad_request)
      .end ('app id not specified');
    return;
  }

  const log = req.body;
  if (typeof log !== 'object') {
    res.status (http.status_bad_request)
      .end ('invalid data format');
    return;
  }

  const { message, data, timestamp } = log;
  await db.log.insert (app_id, message, JSON.stringify (data), timestamp);

  res.status (http.status_created)
    .end ();
};