Commit f61c219f authored by Guillaume Vagner's avatar Guillaume Vagner
Browse files

merge

parent 93483bf3
var mysql = require('promise-mysql');
const config = require('./config');
function query(req) {
return mysql.createConnection(
config.mysql
).then(connection => {
return Promise.all([
connection.query(req),
connection
])
}).then(([rep, connection]) => {
connection.end();
return rep;
}).catch(error => {
//logs out the error
console.error(error);
});
}
Promise.all([
query(`CREATE TABLE IF NOT EXISTS channel(
chatId INT PRIMARY KEY NOT NULL,
username TEXT,
state TEXT,
token TEXT,
refresh TEXT,
expiration TEXT,
schedule TEXT
)`),
query(`CREATE TABLE IF NOT EXISTS groups(
chatId INT NOT NULL,
grp INT,
primary key (chatId, grp)
)`)
]).then(_ => {
console.log('[mariadb] connected to database')
})
function getChanByChatId(chatId) {
return query(`
SELECT *
FROM channel
WHERE chatId = ${chatId}
`).then(rep => rep[0]);
}
function createChan(data) {
return query(`
INSERT INTO channel
VALUES (${data.chatId}, "${data.username}", "${data.state}", "${data.token}", "${data.refresh}", "${data.expiration}", "${data.schedule}")
`)
}
function deleteChanByChatId(chatId) {
return query(`DELETE FROM channel WHERE chatId = ${chatId}`);
}
function modifyChan(data) {
return query(`
UPDATE channel
SET username = "${data.username}",
state = "${data.state}",
token = "${data.token}",
refresh = "${data.refresh}",
expiration = "${data.expiration}",
schedule = "${data.schedule}"
WHERE chatId = ${data.chatId}
`).then(_ => {
return getChanByChatId(data.chatId)
})
}
function getChanByState(state) {
return query(`
SELECT *
FROM channel
WHERE state = "${state}"
`).then(rep => rep[0]);
}
function addGroup(chatId, groupId) {
return query(`
INSERT INTO groups
VALUES (${chatId}, ${groupId})
`);
}
function getGroups(chatId) {
return query(`
SELECT grp
FROM groups
WHERE chatId = ${chatId}
`).then(rep => {
return rep.map(element => element.grp);
})
}
module.exports = { query, getChanByChatId, createChan, deleteChanByChatId, modifyChan, getChanByState, addGroup, getGroups };
\ No newline at end of file
const mongoose = require('../mongoose');
const channelSchema = new mongoose.Schema({
token: String,
refresh: String,
expiration: Date,
username: String,
chatId: Number,
state: String,
groups: [Number],
scheduleTime: { type: String, validate: /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/ }
})
module.exports = mongoose.model('Channel', channelSchema);
\ No newline at end of file
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/botday', { useNewUrlParser: true })
.then(() => console.log('[mongoose] Connection succesful'))
.catch((err) => console.error(err));
module.exports = mongoose;
\ No newline at end of file
// NOTE: These definitions support NodeJS and TypeScript 3.1.
// NOTE: TypeScript version-specific augmentations can be found in the following paths:
// - ~/base.d.ts - Shared definitions common to all TypeScript versions
// - ~/index.d.ts - Definitions specific to TypeScript 2.1
// - ~/ts3.1/index.d.ts - Definitions specific to TypeScript 3.1
// Reference required types from the default lib:
/// <reference lib="es2018" />
/// <reference lib="esnext.asyncIterable" />
/// <reference lib="esnext.intl" />
// Base definitions for all NodeJS modules that are not specific to any version of TypeScript:
// tslint:disable-next-line:no-bad-reference
/// <reference path="../base.d.ts" />
// TypeScript 3.1-specific augmentations:
/// <reference path="util.d.ts" />
// tslint:disable-next-line:no-bad-reference
/// <reference path="../util.d.ts" />
declare module "util" {
namespace inspect {
const custom: unique symbol;
}
namespace promisify {
const custom: unique symbol;
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment