Skip to content
Snippets Groups Projects
Commit f61c219f authored by Guillaume Vagner's avatar Guillaume Vagner
Browse files

merge

parent 93483bf3
No related branches found
No related tags found
No related merge requests found
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;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment