clean configuration

This commit is contained in:
lesion
2019-04-30 15:16:50 +02:00
parent e50e5434bc
commit 69792b518e
14 changed files with 121 additions and 84 deletions

2
.gitignore vendored
View File

@@ -16,6 +16,8 @@ pids
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
uploads
# Coverage directory used by tools like istanbul
coverage

View File

@@ -1,5 +1,16 @@
{
"done": [
{
"assignedTo": {
"name": "lesion"
},
"category": "feature",
"creation_time": "2019-04-23T19:47:35.777Z",
"id": "5",
"prio": 3,
"references": [],
"title": "server side auth"
},
{
"assignedTo": {
"name": "lesion"
@@ -19,19 +30,6 @@
"references": [],
"title": "export page",
"type": "bug"
}
],
"in-progress": [
{
"assignedTo": {
"name": "lesion"
},
"category": "feature",
"creation_time": "2019-04-23T19:46:46.332Z",
"id": "3",
"prio": 0,
"references": [],
"title": "export lista"
},
{
"assignedTo": {
@@ -43,21 +41,31 @@
"prio": 1,
"references": [],
"title": "get comments / media from mastodon"
}
],
"testing": [
},
{
"assignedTo": {
"name": "lesion"
},
"category": "feature",
"creation_time": "2019-04-23T19:47:35.777Z",
"id": "5",
"prio": 3,
"creation_time": "2019-04-23T19:46:46.332Z",
"id": "3",
"prio": 0,
"references": [],
"title": "server side auth"
"title": "export lista"
}
],
"in-progress": [
{
"assignedTo": {
"name": "lesion"
},
"creation_time": "2019-04-30T12:31:20.056Z",
"id": "15",
"references": [],
"title": "test deploy"
}
],
"testing": [],
"todo": [
{
"assignedTo": {
@@ -174,6 +182,15 @@
"references": [],
"title": "documentare sorgenti",
"type": "bug"
},
{
"assignedTo": {
"name": "lesion"
},
"creation_time": "2019-04-30T12:46:42.208Z",
"id": "16",
"references": [],
"title": "riesco a rimuovere bootstrap-vue e usare solo element ?"
}
]
}

58
config.js Normal file
View File

@@ -0,0 +1,58 @@
/**
* GANCIO CONFIGURATION
*/
const env = process.env.NODE_ENV || 'development'
console.log(__dirname + '/db.sqlite')
/**
* Database configuration
* `development` configuration is enabled running `yarn dev`
* while `production` with `yarn start`
* ref: http://docs.sequelizejs.com/class/lib/sequelize.js~Sequelize.html#instance-constructor-constructor
*/
const DB_CONF = {
development: {
storage: __dirname + '/db.sqlite',
dialect: 'sqlite',
logging: false
},
production: {
storage: __dirname + '/db.sqlite',
dialect: 'sqlite',
logging: false
// username: 'docker',
// password: 'docker',
// database: 'gancio',
// host: 'db',
// dialect: 'postgres',
// logging: false
}
}
/**
* Main Gancio configuration
*/
const GANCIO_CONF = {
locale: 'it',
title: 'GANCIO',
description: 'A calendar for radical communities',
baseurl: '',
db: DB_CONF[env],
admin_email: process.env.ADMIN_EMAIL,
smtp: {
host: process.env.SMTP_HOST,
secure: true,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS
}
},
secret: 'notsosecret'
}
module.exports = GANCIO_CONF

View File

@@ -57,6 +57,7 @@ module.exports = {
** Axios module configuration
*/
axios: {
baseURL: '',
prefix: '/api',
credentials: true
// See https://github.com/nuxt-community/axios-module#options
@@ -70,11 +71,11 @@ module.exports = {
logout: { url: '/auth/logout', method: 'post' },
user: { url: '/auth/user', method: 'get', propertyName: false }
},
// tokenRequired: true,
// tokenType: 'bearer',
}
}
},
/*
** Build configuration
*/

View File

@@ -1,5 +1,5 @@
const { Op } = require('sequelize')
const config = require('./config')
const config = require('../../config')
const User = require('./models/user')
const Auth = {

View File

@@ -1,27 +0,0 @@
/* backend configuration */
const env = process.env.NODE_ENV || 'development'
const db = require('./config/config.json')[env]
module.exports = {
locale: process.env.LOCALE || 'it',
title: process.env.TITLE || 'GANCIO',
description: process.env.DESCRIPTION || 'A calendar for radical communities',
baseurl: process.env.BASE_URL || 'http://localhost:3000',
apiurl:
env === 'production'
? process.env.BASE_URL + '/api'
: 'http://localhost:3000/api',
db,
admin: process.env.ADMIN_EMAIL,
smtp: {
host: process.env.SMTP_HOST,
secure: true,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS
}
},
secret: process.env.SECRET || 'notsosecret'
}

View File

@@ -1,5 +1,5 @@
const { User, Event, Comment, Tag } = require('../model')
const config = require('../config')
const config = require('../../../config')
const Mastodon = require('mastodon-api')
// const Sequelize = require('sequelize')
// const Op = Sequelize.Op
@@ -12,11 +12,9 @@ moment.locale('it')
const botController = {
bot: null,
async initialize () {
console.log('initialize bot')
const settings = await settingsController.settings()
if (!settings.mastodon_auth) return
const mastodon_auth = settings.mastodon_auth
console.log('instance ', `https://${mastodon_auth.instance}/api/v1/`)
botController.bot = new Mastodon({
access_token: mastodon_auth.access_token,
api_url: `https://${mastodon_auth.instance}/api/v1`
@@ -45,7 +43,6 @@ const botController = {
// botController.bots.push({ email: user.email, bot })
},
async post (mastodon_auth, event) {
console.log('dentro post!')
const { access_token, instance } = mastodon_auth
const bot = new Mastodon({ access_token, api_url: `https://${instance}/api/v1/` })
const status = `${event.title} @ ${event.place.name} ${moment(event.start_datetime).format('ddd, D MMMM HH:mm')} -
@@ -67,7 +64,6 @@ ${event.description.length > 200 ? event.description.substr(0, 200) + '...' : ev
if (!replyid) return
const event = await Event.findOne({ where: { activitypub_id: replyid } })
if (!event) {
console.error('associated event not found !')
// check for comment..
// const comment = await Comment.findOne( {where: { }})
return
@@ -79,7 +75,6 @@ ${event.description.length > 200 ? event.description.substr(0, 200) + '...' : ev
author: msg.data.accounts[0].username
})
event.addComment(comment)
console.log(event)
// const comment = await Comment.findOne( { where: {activitypub_id: msg.data.in_reply_to}} )
// console.log('dentro message ', data)

View File

@@ -1,6 +1,6 @@
const { Event, Comment, Tag, Place } = require('../model')
const { Op } = require('sequelize')
const config = require('../config')
const config = require('../../../config')
const moment = require('moment')
const ics = require('ics')

View File

@@ -6,7 +6,7 @@ const Mastodon = require('mastodon-api')
const { Op } = require('sequelize')
const jsonwebtoken = require('jsonwebtoken')
const User = require('../models/user')
const config = require('../config')
const config = require('../../../config')
const mail = require('../mail')
const { Event, Tag, Place } = require('../models/event')
const settingsController = require('./settings')

View File

@@ -1,5 +1,5 @@
const Sequelize = require('sequelize')
const conf = require('./config.js')
const conf = require('../../config.js')
const db = new Sequelize(conf.db)
db.sync()
module.exports = db

View File

@@ -5,7 +5,7 @@ const eventController = require('./controller/event')
const exportController = require('./controller/export')
const userController = require('./controller/user')
const settingsController = require('./controller/settings')
const config = require('./config')
const config = require('../../config')
const botController = require('./controller/bot')
const jwt = require('express-jwt')({secret: config.secret})

View File

@@ -1,8 +1,8 @@
const Email = require('email-templates')
const path = require('path')
const config = require('./config')
const config = require('../../config')
const moment = require('moment')
moment.locale('it')
moment.locale(config.locale)
const mail = {
send (addresses, template, locals) {

View File

@@ -1,37 +1,29 @@
'use strict';
const fs = require('fs')
const path = require('path')
const Sequelize = require('sequelize')
const basename = path.basename(__filename)
const config = require('../../../config')
const db = {}
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {};
let sequelize;
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
sequelize = new Sequelize(config.database, config.username, config.password, config);
}
const sequelize = new Sequelize(config.db)
fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js')
})
.forEach(file => {
const model = sequelize['import'](path.join(__dirname, file));
const model = sequelize['import'](path.join(__dirname, file))
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
db[modelName].associate(db)
}
});
})
db.sequelize = sequelize;
db.Sequelize = Sequelize;
db.sequelize = sequelize
db.Sequelize = Sequelize
module.exports = db;

View File

@@ -20,7 +20,6 @@ async function sendNotification (notification, event, eventNotification) {
// instance publish
if (settings.mastodon_auth.instance && settings.mastodon_auth.access_token) {
const b = bot.post(settings.mastodon_auth, event).then(b => {
console.log('ho postato admin post cose', b.data.id)
event.activitypub_id = b.data.id
return event.save()
})