From 7989105b40285b302f3ed14ca560e29bb68e6e07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Wed, 1 Mar 2017 20:26:20 +0100 Subject: [PATCH 01/76] Adds src/server/etc/config.json back --- .gitignore | 1 - src/server/etc/config.json.js | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 src/server/etc/config.json.js diff --git a/.gitignore b/.gitignore index 52f2fc1..8a4ac53 100644 --- a/.gitignore +++ b/.gitignore @@ -102,6 +102,5 @@ workspace.xml # End of https://www.gitignore.io/api/linux,windows,node .idea/ -src/server/etc/ src/server/database/migrations/ src/server/database/seeders/ diff --git a/src/server/etc/config.json.js b/src/server/etc/config.json.js new file mode 100644 index 0000000..8bf674c --- /dev/null +++ b/src/server/etc/config.json.js @@ -0,0 +1,3 @@ +/** + * Created by jacob on 01.03.17. + */ From ff6254e73e7e6c6eb06a0362e3bc302cb326deb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Wed, 1 Mar 2017 20:30:52 +0100 Subject: [PATCH 02/76] Fixes config.json and .gitignore --- .gitignore | 2 -- src/server/etc/config.json.js | 3 --- 2 files changed, 5 deletions(-) delete mode 100644 src/server/etc/config.json.js diff --git a/.gitignore b/.gitignore index 8a4ac53..4c5334a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -src/server/etc/config.json -src/server/config.json *bundle.js npm-debug.log diff --git a/src/server/etc/config.json.js b/src/server/etc/config.json.js deleted file mode 100644 index 8bf674c..0000000 --- a/src/server/etc/config.json.js +++ /dev/null @@ -1,3 +0,0 @@ -/** - * Created by jacob on 01.03.17. - */ From 21d0d4b1eff35ca5ae5ca5f226e44a7268e3d88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Wed, 1 Mar 2017 20:32:56 +0100 Subject: [PATCH 03/76] Testing git update-index --assume-unchanged --- src/test/init.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/init.js b/src/test/init.js index 29c1881..14d21c3 100644 --- a/src/test/init.js +++ b/src/test/init.js @@ -31,3 +31,5 @@ mocha.run(function (failures) { process.exit(failures) // exit with non-zero status if there were failures }) }) + +console.log("Test change to enable commit") From 8a8f4eb25ec5c1168a74c186a4d356b39e4ce833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Wed, 1 Mar 2017 20:44:38 +0100 Subject: [PATCH 04/76] Reverts commit hack --- src/test/init.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/init.js b/src/test/init.js index 14d21c3..29c1881 100644 --- a/src/test/init.js +++ b/src/test/init.js @@ -31,5 +31,3 @@ mocha.run(function (failures) { process.exit(failures) // exit with non-zero status if there were failures }) }) - -console.log("Test change to enable commit") From 449eb4b9865caf2348e926508b83fb651ea4cbfe Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Thu, 2 Mar 2017 16:29:11 +0100 Subject: [PATCH 05/76] Added files from earlier branch --- src/client/client.js | 7 ++- src/client/components/ChatApp.js | 20 +++++- src/client/components/ChatBox.js | 37 ++++++++--- src/client/components/ChatField.js | 7 ++- src/client/components/FeedBackMenu.js | 53 +++++++++++++++- src/client/components/FeedbackBox.js | 54 ++++++++++++++++ src/client/components/FeedbackWindow.js | 17 +++++ src/client/components/MessageList.js | 30 +++++++++ src/server/app.js | 40 ++++++++++-- src/server/database/controllers/feedback.js | 48 ++++++++++++++ src/server/database/controllers/index.js | 9 +++ src/server/database/controllers/message.js | 70 +++++++++++++++++++++ src/server/database/models/feedback.js | 31 +++++++++ src/server/database/models/index.js | 10 ++- src/server/database/models/message.js | 40 ++++++++++++ src/server/routes/index.js | 57 +++++++++++++++++ 16 files changed, 502 insertions(+), 28 deletions(-) create mode 100644 src/client/components/FeedbackBox.js create mode 100644 src/client/components/FeedbackWindow.js create mode 100644 src/client/components/MessageList.js create mode 100644 src/server/database/controllers/feedback.js create mode 100644 src/server/database/controllers/index.js create mode 100644 src/server/database/controllers/message.js create mode 100644 src/server/database/models/feedback.js create mode 100644 src/server/database/models/message.js create mode 100644 src/server/routes/index.js diff --git a/src/client/client.js b/src/client/client.js index d5e14ed..6dba447 100644 --- a/src/client/client.js +++ b/src/client/client.js @@ -3,7 +3,12 @@ import ReactDOM from 'react-dom' import ChatApp from './components/ChatApp' +import injectTapEventPlugin from 'react-tap-event-plugin'; + +injectTapEventPlugin(); if (typeof window !== 'undefined') { ReactDOM.render( - , document.getElementById('app')) + , + document.getElementById('app') + ) } diff --git a/src/client/components/ChatApp.js b/src/client/components/ChatApp.js index 626cea8..9d8397b 100644 --- a/src/client/components/ChatApp.js +++ b/src/client/components/ChatApp.js @@ -4,6 +4,7 @@ import ChatBox from './ChatBox' import ChatField from './ChatField' import Header from './Header' import Login from './Login' +import FeedbackBox from './FeedbackBox' export default class ChatApp extends Component { // At beginning there is no msg and the text-field is empty @@ -12,12 +13,15 @@ export default class ChatApp extends Component { this.state = { messages: [], text: '', - socket: io.connect() + socket: io.connect(), + feedback: [0,0] } this.sendMessage = this.sendMessage.bind(this) this.join = this.join.bind(this) this.receiveMessage = this.receiveMessage.bind(this) + this.receiveFeedback = this.receiveFeedback.bind(this) + this.sendFeedback = this.sendFeedback.bind(this) } componentDidMount () { @@ -43,6 +47,16 @@ export default class ChatApp extends Component { this.state.socket.emit('new-message', msg) } + receiveFeedback (feedback) { + console.log("Setting feedback") + this.setState({feedback: feedback}) + + } + + sendFeedback (feedback) { + this.state.socket.emiit('new-feedback', feedback) + } + render () { return (
@@ -52,7 +66,11 @@ export default class ChatApp extends Component { messages={this.state.messages} /> +
+ ) } } diff --git a/src/client/components/ChatBox.js b/src/client/components/ChatBox.js index 6f850d0..ded81c4 100644 --- a/src/client/components/ChatBox.js +++ b/src/client/components/ChatBox.js @@ -1,5 +1,21 @@ import React, { Component } from 'react' +import RaisedButton from 'material-ui/RaisedButton' + +import {deepOrange500} from 'material-ui/styles/colors' +import getMuiTheme from 'material-ui/styles/getMuiTheme' +import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider' + + +import injectTapEventPlugin from 'react-tap-event-plugin'; + + +const muiTheme = getMuiTheme({ + palette: { + accent1Color: deepOrange500, + } +}) + export default class ChatBox extends Component { constructor (props) { @@ -8,10 +24,11 @@ export default class ChatBox extends Component { this.state = { text: '' } - + this.changeHandler = this.changeHandler.bind(this) this.handleMessageSubmit = this.handleMessageSubmit.bind(this) this.cleanInput = this.cleanInput.bind(this) + } cleanInput () { @@ -41,14 +58,16 @@ export default class ChatBox extends Component { render () { return ( -
-

Ny melding

- - - -
+ +
+

Ny melding

+ + +
+
) } } diff --git a/src/client/components/ChatField.js b/src/client/components/ChatField.js index 3286821..79a42b3 100644 --- a/src/client/components/ChatField.js +++ b/src/client/components/ChatField.js @@ -1,5 +1,5 @@ import React, { Component } from 'react' -import Message from './Message' +import MessageList from './MessageList' export default class ChatField extends Component { @@ -18,6 +18,7 @@ export default class ChatField extends Component { } render () { + /* console.log('In render in chatField') console.log('messages: ', this.state.messages) @@ -31,10 +32,10 @@ export default class ChatField extends Component { text={message.text} /> ) }) - + */ return (
- { messages } +
) } diff --git a/src/client/components/FeedBackMenu.js b/src/client/components/FeedBackMenu.js index d1b6b7c..697a697 100644 --- a/src/client/components/FeedBackMenu.js +++ b/src/client/components/FeedBackMenu.js @@ -1,3 +1,50 @@ -/** - * Created by doraoline on 12.02.17. - */ +import React, { Component } from 'react' + +import RaisedButton from 'material-ui/RaisedButton' + +import {deepOrange500} from 'material-ui/styles/colors' +import getMuiTheme from 'material-ui/styles/getMuiTheme' +import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider' + +import injectTapEventPlugin from 'react-tap-event-plugin' + +const style = { + margin: 12 +} + +const muiTheme = getMuiTheme({ + palette: { + accent1Color: deepOrange500 + } +}) + +export default class FeedbackMenu extends Component { + + constructor (props) { + super(props) + + this.slowClick = this.slowClick.bind(this) + this.fastClick = this.fastClick.bind(this) + } + + slowClick () { + const feedback = {'type': 'slow'} + this.props.onClick(feedback) + } + + fastClick () { + const feedback = {'type': 'fast'} + this.props.onClick(feedback) + } + + render () { + return ( + +
+ + +
+
+ ) + } +} diff --git a/src/client/components/FeedbackBox.js b/src/client/components/FeedbackBox.js new file mode 100644 index 0000000..4dff570 --- /dev/null +++ b/src/client/components/FeedbackBox.js @@ -0,0 +1,54 @@ +import React, { Component } from 'react' + +import FeedbackMenu from './FeedbackMenu' +import FeedbackWindow from './FeedbackWindow' + +export default class FeedbackBox extends Component { + + constructor (props) { + super(props) + this.state = { + // [slow, fast] + feedback: props.feedback + } + + this.onClick = this.onClick.bind(this) + this.updateFeedback = this.updateFeedback.bind(this) + } + + // Receiving updated feedback values + updateFeedback (feedback) { + console.log('In updateFeedback') + console.log('Slow in updateFeedback: ', feedback[0]) + + console.log('Fast in updateFeedback: ', feedback[1]) + + this.state.feedback = feedback + } + + onClick (feedback) { + console.log('In onClick') + const feedbackList = this.state.feedback + console.log('This.feedbackList: ', feedbackList) + if (feedback.type === 'slow') { + console.log('Slower please') + feedbackList[0] = feedbackList[0] + 1 + } else if (feedback.type === 'fast') { + console.log('Faster please') + feedbackList[1] = feedbackList[1] + 1 + } else { + console.log('No valid type for buttonClick') + } + this.setState({feedback: feedbackList}) + this.props.sendFeedback(feedback) + } + + render () { + return ( +
+ + +
+ ) + } +} diff --git a/src/client/components/FeedbackWindow.js b/src/client/components/FeedbackWindow.js new file mode 100644 index 0000000..5b47409 --- /dev/null +++ b/src/client/components/FeedbackWindow.js @@ -0,0 +1,17 @@ +import React, { Component } from 'react' + +export default class FeedbackWindow extends Component { + + constructor (props) { + super(props) + } + + render () { + return ( +
+

Antall som synes det går for tregt: {this.props.slow}

+

Antall som synes det går for fort: {this.props.fast}

+
+ ) + } +} diff --git a/src/client/components/MessageList.js b/src/client/components/MessageList.js new file mode 100644 index 0000000..36a46fb --- /dev/null +++ b/src/client/components/MessageList.js @@ -0,0 +1,30 @@ +import React, { Component } from 'react' +import Message from './Message' + +export default class MessageList extends Component { + + constructor (props) { + super(props) + } + + render () { + + var list = this.props.messages.map((message, i) => { + console.log('Looping trought messages in messageList') + + return ( + + ) + }) + + return ( +
    + {list} +
+ ); + } + +} \ No newline at end of file diff --git a/src/server/app.js b/src/server/app.js index 99b6f32..6b21f12 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -65,7 +65,7 @@ app.use(passport.initialize()) app.use(passport.session()) // /////////////////////////////////////////////////// -// Main App +// Routing // /////////////////////////////////////////////////// // URL-specifications @@ -104,10 +104,40 @@ server.listen(app.get('port'), (err) => { console.log('Node app is running on port', app.get('port')) }) +// /////////////////////////////////////////////////// +// Setup for database +// /////////////////////////////////////////////////// + +// TODO: Flytt til annen fil, eller gjør som del av user login/creation. Må bare kjøres før user objektet skal brukes. + +const db = require('./database/models/index') + +const user = db['User'] +const message = db['Message'] +const feedback = db['Feedback'] + +const userController = require('./database/controllers').user +const messageController = require('./database/controllers').message +const feedbackCOntroller = require('./database/controllers').feedback + +user.sync({force: true}).then(function () { + return user.create({ + name: 'Pekka Foreleser' + }) +}) + // Create a connection // var socket = io.connect('http://localhost::8000') var io = require('socket.io')(server) +// When a new user connects +io.sockets.on('connect', function (socket) { + console.log('New client have connected in app') + // TODO: get x last messages in chat and send + // TODO: get status of feedback and send + // socket.emit('connect', "You are connected") +}) + // Listen for connections io.sockets.on('connection', function (socket) { // Reports when it finds a connection @@ -136,10 +166,10 @@ io.sockets.on('connection', function (socket) { }) }) -app.use('/', express.static(path.resolve(__dirname, '../client/'))) -app.use(express.static(path.resolve(__dirname, '../static'))) -app.use('/components', express.static(path.resolve(__dirname, '../client/components'))) -app.use('/css', express.static(path.resolve(__dirname, '../static/css'))) +// To get static files +app.use('/', express.static(path.join(__dirname, '../static'))) +app.use('/css', express.static(path.join(__dirname, '../static/css'))) +app.use('/icons', express.static(path.join(__dirname, '../static/icons'))) // SETUP FOR DATABASE // TODO: Flytt til annen fil, eller gjør som del av user login/creation. Må bare kjøres før user objektet skal brukes. diff --git a/src/server/database/controllers/feedback.js b/src/server/database/controllers/feedback.js new file mode 100644 index 0000000..93d984c --- /dev/null +++ b/src/server/database/controllers/feedback.js @@ -0,0 +1,48 @@ +const Feedback = require('../models/index').Feedback + +// Controller for Feedback model + +module.exports = { + + // Create a new Feedback using model.create() + + create (req, res) { + Feedback.create(req.body) + .then(function (newFeedback) { + res.status(200).json(newFeedback) + }) + .catch(function (error) { + res.status(500).json(error) + }) + }, + + // Edit an existing Feedback details using model.update() + update (req, res) { + Feedback.update(req.body, { + where: { + id: req.params.id + } + }) + .then(function (updatedRecords) { + res.status(200).json(updatedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) + }, + + // Delete an existing Feedback by the unique ID using model.destroy() + delete (req, res) { + Feedback.destroy({ + where: { + id: req.params.id + } + }) + .then(function (deletedRecords) { + res.status(200).json(deletedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) + } +} diff --git a/src/server/database/controllers/index.js b/src/server/database/controllers/index.js new file mode 100644 index 0000000..b391ea2 --- /dev/null +++ b/src/server/database/controllers/index.js @@ -0,0 +1,9 @@ +const user = require('../models/user') +const feedback = require('../models/feedback') +const message = require('../models/message') + +module.exports = { + user, + feedback, + message +} diff --git a/src/server/database/controllers/message.js b/src/server/database/controllers/message.js new file mode 100644 index 0000000..9cc04d7 --- /dev/null +++ b/src/server/database/controllers/message.js @@ -0,0 +1,70 @@ +const Message = require('../models/index').Message +// Controller for Message model + +module.exports = { + + // Create a new Message using model.create() + + create (req, res) { + return Message.create({ + time: new Date().now(), + text: req.body.text + console.log("Creating new message-object") + }) + .then(function (newMessage) { + res.status(200).json(newMessage) + }) + .catch(function (error) { + res.status(500).json(error) + }) + }, + + // Edit an existing Message details using model.update() + update (req, res) { + return Message.update(req.body, { + where: { + id: req.params.id + } + }) + .then(function (updatedRecords) { + res.status(200).json(updatedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) + }, + + // Delete an existing Message by the unique ID using model.destroy() + delete (req, res) { + return Message.destroy({ + where: { + id: req.params.id + } + }) + .then(function (deletedRecords) { + res.status(200).json(deletedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) + }, + + retrieve (req, res) { + return Message + .findById(req.params.messageId, { + include: [{ + model: Message, + as: 'message' + }] + }) + .then(message => { + if (!message) { + return res.status(404).send({ + message: 'Message Not Found' + }) + } + return res.status(200).send(message) + }) + .catch(error => res.status(400).send(error)) + } +} diff --git a/src/server/database/models/feedback.js b/src/server/database/models/feedback.js new file mode 100644 index 0000000..d5715c7 --- /dev/null +++ b/src/server/database/models/feedback.js @@ -0,0 +1,31 @@ +'use strict' + +// Feedback model + +module.exports = function (sequelize, DataTypes) { + // Definition of Feedback attributes + + var Feedback = sequelize.define('Feedback', { + tooFast: DataTypes.INTEGER, + tooSlow: DataTypes.INTEGER + }, { + + // Definition of methods related to the feedback object + // class-wide methods + classMethods: { + + // Associations to other models + associate: function (models) { + // associations can be defined here + }, + + getterMethods: { + + }, + + setterMethods: { + } + } + }) + return Feedback +} diff --git a/src/server/database/models/index.js b/src/server/database/models/index.js index f1d6c89..c56702d 100644 --- a/src/server/database/models/index.js +++ b/src/server/database/models/index.js @@ -1,12 +1,10 @@ 'use strict' -/* - -SETUP FOR SEQUELIZE CONNECTION - -exports db object with all relevant references to models +// /////////////////////////////////////////////////// +// Setup for Sequalize connection +// /////////////////////////////////////////////////// - */ +// exports db object with all relevant references to models const fs = require('fs') const path = require('path') diff --git a/src/server/database/models/message.js b/src/server/database/models/message.js new file mode 100644 index 0000000..62f8217 --- /dev/null +++ b/src/server/database/models/message.js @@ -0,0 +1,40 @@ +'use strict' + +// Message model + +module.exports = function (sequelize, DataTypes) { + // Definition of Message attributes + + var Message = sequelize.define('Message', { + time: { + type: DataTypes.DATE, + defaultValue: new Date() + }, + text: { + type: DataTypes.String, + allowNull: false + } + + // votesUp: DataTypes.INTEGER, + // votesDown: DataTypes.INTEGER, + }, { + + // Definition of methods related to the message object + // class-wide methods + classMethods: { + + // Associations to other models + associate: function (models) { + // associations can be defined here + }, + + getterMethods: { + + }, + + setterMethods: { + } + } + }) + return Message +} diff --git a/src/server/routes/index.js b/src/server/routes/index.js new file mode 100644 index 0000000..cd8dc6a --- /dev/null +++ b/src/server/routes/index.js @@ -0,0 +1,57 @@ + // URL-specifications + +const path = require('path') +const passport = require('passport') + +const userController = require('./controllers').user +const messageController = require('./controllers').message +const feedbackCOntroller = require('./controllers').feedback + +module.exports = (app) => { + // Go to index.html + app.get('/', (req, res) => { res.sendFile(path.resolve(__dirname, '../client/index.html')) }) + app.get('/user', (req, res) => { + if (req.user) { + res.json({user: req.user}) + } else { + res.status(404) + } + }) + + app.get('/connect', (req, res) => { + if (req.user) { + let userinfo = req.user.data + db['User'].findOrCreate({ + where: {name: userinfo.name, sub: userinfo.sub, email: userinfo.email, email_verified: userinfo.email_verified} + }) + .spread(function (user, created) { + console.log(user) + }) + .catch((err) => { + console.error(err) + }) + } else { + res.status(403) + } + }) + + app.get('/login', passport.authenticate('passport-openid-connect', {'successReturnToOrRedirect': '/'})) + app.get('/callback', passport.authenticate('passport-openid-connect', {'callback': true, 'successReturnToOrRedirect': '/'})) + + /** + app.post('/api/todos', todosController.create) + app.get('/api/todos', todosController.list) + app.get('/api/todos/:todoId', todosController.retrieve) + app.put('/api/todos/:todoId', todosController.update) + app.delete('/api/todos/:todoId', todosController.destroy) + + app.post('/api/todos/:todoId/items', todoItemsController.create) + app.put('/api/todos/:todoId/items/:todoItemId', todoItemsController.update) + app.delete( + '/api/todos/:todoId/items/:todoItemId', todoItemsController.destroy + ) + app.all('/api/todos/:todoId/items', (req, res) => res.status(405).send({ + message: 'Method Not Allowed' + })) + **/ +} From dd0cd355f5c116cbded1120ae587818a17129cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Thu, 2 Mar 2017 22:24:46 +0100 Subject: [PATCH 06/76] Fixes database tests and docker-compose.test to work with mocha and istanbul, in addition to drone changes --- .drone.yml | 20 ++++++++++- docker-compose.test.yml | 34 ++++++++++++++++++ docker-compose.yml | 2 +- package.json | 8 ++++- src/server/app.js | 15 +++++--- src/server/database/models/index.js | 18 +++++----- src/test/init.js | 33 ------------------ src/test/server/database_test.js | 53 ++++++++++++----------------- wait-for-postgres.sh | 2 +- 9 files changed, 103 insertions(+), 82 deletions(-) create mode 100644 docker-compose.test.yml delete mode 100644 src/test/init.js diff --git a/.drone.yml b/.drone.yml index 6936437..2cda095 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,10 +4,15 @@ pipeline: when: event: [push,pull_request] branches: [master, react-start] + environment: + DATABASE_URL: postgres://postgres:viestintacentos@postgres:5432/viestintadb_dev + NODE_ENV: test commands: - npm install --silent - npm install standard -g - - npm run test + - sleep 10 + - npm start + deploy: image: plugins/ssh when: @@ -18,3 +23,16 @@ pipeline: commands: - bash /scripts/deploy-viestinta-prod.sh +services: + postgres: + image: postgres:9.6 + container_name: viestinta_postgres + ports: + - "5432:5432" + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: viestintacentos + POSTGRES_DB: viestintadb_dev + + + diff --git a/docker-compose.test.yml b/docker-compose.test.yml new file mode 100644 index 0000000..39bc318 --- /dev/null +++ b/docker-compose.test.yml @@ -0,0 +1,34 @@ +version: '3' + +services: + postgres: + image: postgres:9.6 + container_name: viestinta_postgres + ports: + - "5432:5432" + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: viestintacentos + POSTGRES_DB: viestintadb_dev + tty: true + stdin_open: true + + nodejs: + build: . + image: node:viestinta + container_name: viestinta_node + depends_on: + - postgres + command: ["./wait-for-postgres.sh", "--", "npm" , "test"] + links: + - postgres + ports: + - "8000:8000" + volumes: + - .:/srv/app/ + - /arv/app/node_modules + environment: + DATABASE_URL: postgres://postgres:viestintacentos@postgres:5432/viestintadb_dev + NODE_ENV: test + tty: true + stdin_open: true diff --git a/docker-compose.yml b/docker-compose.yml index 5fe61c8..02d3ffb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,7 +16,7 @@ services: nodejs: build: . - image: nodetest:viestinta + image: node:viestinta container_name: viestinta_node depends_on: - postgres diff --git a/package.json b/package.json index 95482d1..3e4f58f 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test-server": "node src/server/app.js && node src/tests/init.js", + "test": "node src/server/app.js && nyc --reporter=lcov --reporter=text-lcov mocha src/test/server/**.js", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" @@ -43,18 +43,23 @@ "cookie-parser": "^1.4.3", "express": "^4.14.1", "express-session": "^1.15.0", + "fs": "0.0.1-security", + "istanbul": "^0.4.5", "latest-version": "^3.0.0", "loadash": "0.0.1", + "mocha": "^3.2.0", "morgan": "^1.7.0", "nconf": "^0.8.4", "passport": "^0.3.2", "passport-dataporten": "^1.1.3", "passport-openid-connect": "^0.1.0", + "path": "^0.12.7", "pg": "^6.1.2", "react": "^15.4.2", "react-dom": "^15.4.2", "sequelize": "^3.30.2", "sequelize-cli": "^2.5.1", + "socket.io-client": "^1.7.3", "webpack": "^2.2.1", "webpack-dev-server": "^2.3.0" }, @@ -72,6 +77,7 @@ "eslint-plugin-standard": "^2.0.1", "http": "0.0.0", "mocha": "^3.2.0", + "nyc": "^10.1.2", "react-addons-test-utils": "^15.4.2", "should": "^11.2.0", "socket.io": "^1.7.2", diff --git a/src/server/app.js b/src/server/app.js index 99b6f32..c0cb31e 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -23,6 +23,7 @@ const PDStrategy = require('passport-openid-connect').Strategy // Initial Server Setup // /////////////////////////////////////////////////// + nconf.argv() .env('__') .file({ file: path.resolve(__dirname, './etc/config.json') }) @@ -99,10 +100,12 @@ app.get('/connect', (req, res) => { app.get('/login', passport.authenticate('passport-openid-connect', {'successReturnToOrRedirect': '/'})) app.get('/callback', passport.authenticate('passport-openid-connect', {'callback': true, 'successReturnToOrRedirect': '/'})) -server.listen(app.get('port'), (err) => { - if (err) throw err - console.log('Node app is running on port', app.get('port')) -}) +if (process.env.NODE_ENV !== "test"){ + server.listen(app.get('port'), (err) => { + if (err) throw err + console.log('Node app is running on port', app.get('port')) + }) +} // Create a connection // var socket = io.connect('http://localhost::8000') @@ -144,11 +147,13 @@ app.use('/css', express.static(path.resolve(__dirname, '../static/css'))) // SETUP FOR DATABASE // TODO: Flytt til annen fil, eller gjør som del av user login/creation. Må bare kjøres før user objektet skal brukes. + const db = require('./database/models/index') + const user = db['User'] user.sync({force: true}).then(function () { return user.create({ name: 'Pekka Foreleser' }) -}) +}) \ No newline at end of file diff --git a/src/server/database/models/index.js b/src/server/database/models/index.js index f1d6c89..0446f56 100644 --- a/src/server/database/models/index.js +++ b/src/server/database/models/index.js @@ -17,9 +17,15 @@ const env = process.env.NODE_ENV || 'development' const config = require(path.join(__dirname, '/../config/config.js'))[env] let db = {} -var sequelize = new Sequelize(process.env['DATABASE_URL']) +if (process.env['DATABASE_URL']) { + var options = {} + if (process.env.NODE_ENV == "test"){ + options = {logging: false} + } + var sequelize = new Sequelize(process.env['DATABASE_URL'], options) +} -/* if (config.use_env_variable) { +/*else if (config.use_env_variable) { var sequelize = new Sequelize(process.env[config.use_env_variable]) } else { var sequelize = new Sequelize(config.database, config.username, config.password, config) @@ -52,12 +58,6 @@ sequelize .catch(function (err) { console.log('Unable to connect to the database:', err) }) -/* -function logExceptOnTest(string) { - if (process.env.NODE_ENV !== 'test') { - console.log(string); - } -} -*/ + module.exports = db diff --git a/src/test/init.js b/src/test/init.js deleted file mode 100644 index 29c1881..0000000 --- a/src/test/init.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Created by jacob on 22.02.17. - */ - -console.log('Running tests...') -process.env.NODE_ENV = 'test' -// const app = require('../server/app') - -const Mocha = require('mocha') -const fs = require('fs') -const path = require('path') - -// Instantiate a Mocha instance. -const mocha = new Mocha() - -const testDir = path.resolve(__dirname, './server') - -// Add each .js file to the mocha instance -fs.readdirSync(testDir).filter(function (file) { - // Only keep the .js files - return file.substr(-3) === '.js' -}).forEach(function (file) { - mocha.addFile( - path.join(testDir, file) - ) -}) - -// Run the tests. -mocha.run(function (failures) { - process.on('exit', function () { - process.exit(failures) // exit with non-zero status if there were failures - }) -}) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index aaacb77..0bac560 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -2,12 +2,10 @@ * Created by jacob on 20.02.17. */ // Hack for pg issues -var pg = require('pg') -delete pg.native - -var User = require('./models/').User -var assert = require('assert') -var db = require('./models/index') +const path = require('path') +const User = require('../../server/database/models/').User +const assert = require('assert') +const db = require('../../server/database/models/index') // Extra test frameworks: // var should = require('should'); @@ -23,30 +21,29 @@ var testNameGenerator = function (N) { } // Unique firstName and lastName for each test -var firstName1 = testNameGenerator(10) -var lastName1 = testNameGenerator(10) -var firstName2 = testNameGenerator(10) -var lastName2 = testNameGenerator(10) -var firstName3 = testNameGenerator(10) -var lastName3 = testNameGenerator(10) +var name1 = testNameGenerator(10) +var name2 = testNameGenerator(10) +var name3 = testNameGenerator(10) + + // Builds the User object with the corresponding name. Does not save the User objects to the database. -var testUser1 = User.build({firstName: firstName1, lastName: lastName1}) -var testUser2 = User.build({firstName: firstName2, lastName: lastName2}) -var testUser3 = User.build({firstName: firstName3, lastName: lastName3}) +var testUser1 = User.build({name: name1}) +var testUser2 = User.build({name: name2}) +var testUser3 = User.build({name: name3}) // Creates a tuple array for the test -var testArray = [ [testUser1, firstName1 + ' ' + lastName1], - [testUser2, firstName2 + ' ' + lastName2], - [testUser3, firstName3 + ' ' + lastName3] +var testArray = [ [testUser1, name1], + [testUser2, name2], + [testUser3, name3] ] // Test for local user creation describe('Test suite: User build', function () { testArray.forEach(function (arrElement, callback) { - describe('Build test for name: ' + arrElement[0].firstName + ' ' + arrElement[0].lastName, function () { + describe('Build test for name: ' + arrElement[0].name, function () { it('Name to local User object is identical to name generated', function (done) { - assert.equal(arrElement[0].firstName + ' ' + arrElement[0].lastName, arrElement[1]) + assert.equal(arrElement[0].name, arrElement[1]) done() }) }) @@ -56,31 +53,25 @@ describe('Test suite: User build', function () { // Get the User object from the database // Creates a tuple array for the test var test2Array = [ - [firstName1, lastName1], - [firstName2, lastName2], - [firstName3, lastName3] + name1, name2, name3 ] // Test for database user creation describe('Test suite: User create', function () { // For each element in test2Array test2Array.forEach(function (arrElement, callback) { - describe('Database test for name: ' + arrElement[0] + ' ' + arrElement[1], function () { + describe('Database test for name: ' + arrElement, function () { it('Name to User object in database is identical to name generated', function (done) { // Access database and create the user if it doesn't exist db['User'] .findOrCreate({ - where: {firstName: arrElement[0], lastName: arrElement[1]}, - attributes: ['id', 'firstName', 'lastName'] + where: {name:arrElement}, + attributes: ['name'] }) // Then compare that user's variables to the variables given .spread(function (user, created) { - assert.equal( - arrElement[0] + ' ' + arrElement[1], - user.firstName + ' ' + user.lastName - ) - + assert.equal(arrElement, user.name) // Delete the user from the database user.destroy() done() diff --git a/wait-for-postgres.sh b/wait-for-postgres.sh index 1fb9452..dd6aee1 100755 --- a/wait-for-postgres.sh +++ b/wait-for-postgres.sh @@ -6,6 +6,6 @@ set -e host="$1" shift cmd="$@" -sleep 7 +sleep 2 >&2 echo "Postgres is up - executing command" exec $cmd \ No newline at end of file From b6c98608bf9d1a83d4c37172879b4f01eba0225b Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Thu, 2 Mar 2017 22:53:53 +0100 Subject: [PATCH 07/76] Changed where socketscalls is done. --- package.json | 2 + src/client/components/ChatApp.js | 56 ++++--------------- src/client/components/ChatBox.js | 13 ++++- src/client/components/ChatField.js | 42 -------------- src/client/components/FeedbackBox.js | 13 ++++- .../{FeedBackMenu.js => FeedbackMenu.js} | 11 ++++ src/client/components/FeedbackWindow.js | 35 +++++++++++- src/client/components/MessageList.js | 21 ++++++- src/server/app.js | 34 ++++++----- src/server/database.js | 21 +++++++ src/server/database/controllers/feedback.js | 12 ++++ src/server/database/controllers/message.js | 33 +++++------ src/server/database/models/feedback.js | 11 +++- src/server/database/models/message.js | 48 +++++++++------- src/server/socket.js | 1 + src/test/client/{test.js => socket_test.js} | 0 webpack.config.js | 2 +- 17 files changed, 205 insertions(+), 150 deletions(-) delete mode 100644 src/client/components/ChatField.js rename src/client/components/{FeedBackMenu.js => FeedbackMenu.js} (83%) create mode 100644 src/server/database.js create mode 100644 src/server/socket.js rename src/test/client/{test.js => socket_test.js} (100%) diff --git a/package.json b/package.json index 95482d1..cd7236f 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "passport-dataporten": "^1.1.3", "passport-openid-connect": "^0.1.0", "pg": "^6.1.2", + "pg-hstore": "^2.3.2", "react": "^15.4.2", "react-dom": "^15.4.2", "sequelize": "^3.30.2", @@ -71,6 +72,7 @@ "eslint-plugin-promise": "^3.4.0", "eslint-plugin-standard": "^2.0.1", "http": "0.0.0", + "material-ui": "^0.17.0", "mocha": "^3.2.0", "react-addons-test-utils": "^15.4.2", "should": "^11.2.0", diff --git a/src/client/components/ChatApp.js b/src/client/components/ChatApp.js index 9d8397b..01da251 100644 --- a/src/client/components/ChatApp.js +++ b/src/client/components/ChatApp.js @@ -1,7 +1,8 @@ import React, { Component } from 'react' +import socket from '../../server/socket' import ChatBox from './ChatBox' -import ChatField from './ChatField' +import MessageList from './MessageList' import Header from './Header' import Login from './Login' import FeedbackBox from './FeedbackBox' @@ -10,51 +11,15 @@ export default class ChatApp extends Component { // At beginning there is no msg and the text-field is empty constructor (props) { super(props) - this.state = { - messages: [], - text: '', - socket: io.connect(), - feedback: [0,0] - } - - this.sendMessage = this.sendMessage.bind(this) - this.join = this.join.bind(this) - this.receiveMessage = this.receiveMessage.bind(this) - this.receiveFeedback = this.receiveFeedback.bind(this) - this.sendFeedback = this.sendFeedback.bind(this) } componentDidMount () { - this.state.socket.on('join', this.join) - this.state.socket.on('send-message', this.sendMessage) - this.state.socket.on('receive-message', this.receiveMessage) + socket.on('join', this.join) } join () { console.log('join') - this.state.socket.emit('join', 'Hello world from client') - } - - receiveMessage (msg) { - console.log('receiveMessage: ', msg.text) - this.state.messages.push(msg) - this.setState({ messages: this.state.messages }) - } - - // When a message is submitted - sendMessage (msg) { - console.log('sendMessage: ', msg.text) - this.state.socket.emit('new-message', msg) - } - - receiveFeedback (feedback) { - console.log("Setting feedback") - this.setState({feedback: feedback}) - - } - - sendFeedback (feedback) { - this.state.socket.emiit('new-feedback', feedback) + socket.emit('join', 'Hello world from client') } render () { @@ -62,13 +27,12 @@ export default class ChatApp extends Component {
- - - + // List of messages + + // Inputfield for user + + // Sidebar with feedback-options +
) diff --git a/src/client/components/ChatBox.js b/src/client/components/ChatBox.js index ded81c4..bb02c1b 100644 --- a/src/client/components/ChatBox.js +++ b/src/client/components/ChatBox.js @@ -1,4 +1,5 @@ import React, { Component } from 'react' +import socket from '../../server/socket' import RaisedButton from 'material-ui/RaisedButton' @@ -16,6 +17,7 @@ const muiTheme = getMuiTheme({ } }) +// Text input field export default class ChatBox extends Component { constructor (props) { @@ -26,16 +28,21 @@ export default class ChatBox extends Component { } this.changeHandler = this.changeHandler.bind(this) - this.handleMessageSubmit = this.handleMessageSubmit.bind(this) + this.SendMessage = this.sendMessage.bind(this) this.cleanInput = this.cleanInput.bind(this) } + + componentDidMount () { + socket.on('send-message', this.sendMessage) + } + cleanInput () { this.setState({text: ''}) } - handleMessageSubmit (e) { + sendMessage () { e.preventDefault() console.log('In handle send') // Setting msg.text to written input @@ -48,7 +55,7 @@ export default class ChatBox extends Component { console.log('Empty message field: ', this.state.text) - this.props.sendMessage(msg) + socket.emit('receive-message', msg) } // Listen and update field dynamically when something is written changeHandler (e) { diff --git a/src/client/components/ChatField.js b/src/client/components/ChatField.js deleted file mode 100644 index 79a42b3..0000000 --- a/src/client/components/ChatField.js +++ /dev/null @@ -1,42 +0,0 @@ -import React, { Component } from 'react' -import MessageList from './MessageList' - -export default class ChatField extends Component { - - constructor (props) { - super(props) - // Starting with empty message-list - this.state = { - messages: props.messages - } - - this.updateField = this.updateField.bind(this) - } - - updateField (msg) { - this.setState({messages: msg}) - } - - render () { - /* - console.log('In render in chatField') - console.log('messages: ', this.state.messages) - - // Loop trought the messages in the state and create a Message component - const messages = this.state.messages.map((message, i) => { - console.log('Looping trought messages') - - return ( - - ) - }) - */ - return ( -
- -
- ) - } -} diff --git a/src/client/components/FeedbackBox.js b/src/client/components/FeedbackBox.js index 4dff570..2ddd922 100644 --- a/src/client/components/FeedbackBox.js +++ b/src/client/components/FeedbackBox.js @@ -1,4 +1,5 @@ import React, { Component } from 'react' +import socket from '../../server/socket' import FeedbackMenu from './FeedbackMenu' import FeedbackWindow from './FeedbackWindow' @@ -9,7 +10,7 @@ export default class FeedbackBox extends Component { super(props) this.state = { // [slow, fast] - feedback: props.feedback + feedback: [0,0] } this.onClick = this.onClick.bind(this) @@ -26,6 +27,10 @@ export default class FeedbackBox extends Component { this.state.feedback = feedback } + updateFeedbackInterval () { + console.log('In updateFeedbackInterval') + } + onClick (feedback) { console.log('In onClick') const feedbackList = this.state.feedback @@ -47,7 +52,11 @@ export default class FeedbackBox extends Component { return (
- +
) } diff --git a/src/client/components/FeedBackMenu.js b/src/client/components/FeedbackMenu.js similarity index 83% rename from src/client/components/FeedBackMenu.js rename to src/client/components/FeedbackMenu.js index 697a697..f6af666 100644 --- a/src/client/components/FeedBackMenu.js +++ b/src/client/components/FeedbackMenu.js @@ -1,4 +1,5 @@ import React, { Component } from 'react' +import socket from '../../server/socket' import RaisedButton from 'material-ui/RaisedButton' @@ -27,6 +28,16 @@ export default class FeedbackMenu extends Component { this.fastClick = this.fastClick.bind(this) } + componentDidMount () { + socket.on('join', this.join) + socket.on('sendFeedback', this.receiveMessage) + } + + sendFeedback (feedback) { + socket.emiit('new-feedback', feedback) + } + + slowClick () { const feedback = {'type': 'slow'} this.props.onClick(feedback) diff --git a/src/client/components/FeedbackWindow.js b/src/client/components/FeedbackWindow.js index 5b47409..76a6037 100644 --- a/src/client/components/FeedbackWindow.js +++ b/src/client/components/FeedbackWindow.js @@ -1,16 +1,47 @@ import React, { Component } from 'react' +import socket from '../../server/socket' + export default class FeedbackWindow extends Component { constructor (props) { super(props) + this.state = { + minsElapsed: 0, + feedback: [0,0] + } + } + + tick () { + this.setState({ + minsElapsed: this.state.minsElapsed + 1 + }) + if (this.state.minsElapsed == 5) { + this.state.updateFeedbackInterval() + } } + componentDidMount() { + // Increase every min + this.interval = setInterval(this.tick, 6000) + socket.on('receive-feedback', this.receiveFeedback) + } + + receiveFeedback (feedback) { + console.log("Setting feedback") + this.setState({feedback: feedback}) + } + + updateFeedbackInterval () { + + } + + render () { return (
-

Antall som synes det går for tregt: {this.props.slow}

-

Antall som synes det går for fort: {this.props.fast}

+

Antall som synes det går for tregt: {this.state.feedback[0]}

+

Antall som synes det går for fort: {this.state.feedback[1]}

) } diff --git a/src/client/components/MessageList.js b/src/client/components/MessageList.js index 36a46fb..665fa1a 100644 --- a/src/client/components/MessageList.js +++ b/src/client/components/MessageList.js @@ -1,15 +1,34 @@ import React, { Component } from 'react' +import socket from '../../server/socket' import Message from './Message' export default class MessageList extends Component { constructor (props) { super(props) + this.state = { + messages: [] + } + + this.receiveMessage = this.receiveMessage.bind(this) + } + + componentDidMount() { + socket.on('receive-message', this.receiveMessage) } + receiveMessage (msg) { + console.log('receiveMessage: ', msg.text) + // Copies the list + var messages = this.state.messages.slice() + // Adds the message + messages.push(msg) + this.setState({ messages: messages }) + } + render () { - var list = this.props.messages.map((message, i) => { + var list = this.state.messages.map((message, i) => { console.log('Looping trought messages in messageList') return ( diff --git a/src/server/app.js b/src/server/app.js index 6b21f12..8486802 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -118,7 +118,7 @@ const feedback = db['Feedback'] const userController = require('./database/controllers').user const messageController = require('./database/controllers').message -const feedbackCOntroller = require('./database/controllers').feedback +const feedbackController = require('./database/controllers').feedback user.sync({force: true}).then(function () { return user.create({ @@ -157,12 +157,28 @@ io.sockets.on('connection', function (socket) { // When a new message is sendt from somebody socket.on('new-message', function (msg) { + messageController.create({ + // Save user + text: msg.text + }) console.log('Message in new-message in app.js: ' + msg.text) io.sockets.emit('receive-message', msg) }) - socket.on('test', function () { - console.log('Mounted') + socket.on('new-feedback', function (feedback) { + // TODO: save in database + feedbackController.create({ + value: feedback + }) + console.log('Received feedback in io.socket.on: ', feedback) + io.sockets.emit('receive-feedback', feedback) + }) + + // Called every x minuts + socket.on('updateFeedbackInterval', function () { + // Get feedback from database for past x minuts + + io.sockets.emit('updateFeedbackInterval') }) }) @@ -171,14 +187,4 @@ app.use('/', express.static(path.join(__dirname, '../static'))) app.use('/css', express.static(path.join(__dirname, '../static/css'))) app.use('/icons', express.static(path.join(__dirname, '../static/icons'))) -// SETUP FOR DATABASE -// TODO: Flytt til annen fil, eller gjør som del av user login/creation. Må bare kjøres før user objektet skal brukes. - -const db = require('./database/models/index') - -const user = db['User'] -user.sync({force: true}).then(function () { - return user.create({ - name: 'Pekka Foreleser' - }) -}) +module.exports = io \ No newline at end of file diff --git a/src/server/database.js b/src/server/database.js new file mode 100644 index 0000000..ee9fd39 --- /dev/null +++ b/src/server/database.js @@ -0,0 +1,21 @@ +// /////////////////////////////////////////////////// +// Setup for database +// /////////////////////////////////////////////////// + +// TODO: Flytt til annen fil, eller gjør som del av user login/creation. Må bare kjøres før user objektet skal brukes. + +const db = require('./database/models/index') + +const user = db['User'] +const message = db['Message'] +const feedback = db['Feedback'] + +const userController = require('./database/controllers').user +const messageController = require('./database/controllers').message +const feedbackController = require('./database/controllers').feedback + +user.sync({force: true}).then(function () { + return user.create({ + name: 'Pekka Foreleser' + }) +}) \ No newline at end of file diff --git a/src/server/database/controllers/feedback.js b/src/server/database/controllers/feedback.js index 93d984c..dbbcbda 100644 --- a/src/server/database/controllers/feedback.js +++ b/src/server/database/controllers/feedback.js @@ -31,6 +31,18 @@ module.exports = { }) }, + // For last 5 min + calculate (req, res) { + return Feedback + .findAll({ + // TODO: just use createdAt? + time: { + $lt: new Date() + $gt: new Date(new Date - 5 * 60000) + } + }) + } + // Delete an existing Feedback by the unique ID using model.destroy() delete (req, res) { Feedback.destroy({ diff --git a/src/server/database/controllers/message.js b/src/server/database/controllers/message.js index 9cc04d7..b10f9ba 100644 --- a/src/server/database/controllers/message.js +++ b/src/server/database/controllers/message.js @@ -1,10 +1,10 @@ const Message = require('../models/index').Message + // Controller for Message model module.exports = { - // Create a new Message using model.create() - + // Create a new Message using model.create() create (req, res) { return Message.create({ time: new Date().now(), @@ -19,36 +19,37 @@ module.exports = { }) }, - // Edit an existing Message details using model.update() + // Edit an existing Message details using model.update() update (req, res) { return Message.update(req.body, { where: { id: req.params.id } }) - .then(function (updatedRecords) { - res.status(200).json(updatedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) + .then(function (updatedRecords) { + res.status(200).json(updatedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) }, - // Delete an existing Message by the unique ID using model.destroy() + // Delete an existing Message by the unique ID using model.destroy() delete (req, res) { return Message.destroy({ where: { id: req.params.id } }) - .then(function (deletedRecords) { - res.status(200).json(deletedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) + .then(function (deletedRecords) { + res.status(200).json(deletedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) }, + // Retrive an existing Message by the unique ID retrieve (req, res) { return Message .findById(req.params.messageId, { diff --git a/src/server/database/models/feedback.js b/src/server/database/models/feedback.js index d5715c7..e3d2ec2 100644 --- a/src/server/database/models/feedback.js +++ b/src/server/database/models/feedback.js @@ -6,8 +6,14 @@ module.exports = function (sequelize, DataTypes) { // Definition of Feedback attributes var Feedback = sequelize.define('Feedback', { - tooFast: DataTypes.INTEGER, - tooSlow: DataTypes.INTEGER + time: { + type: DataTypes.DATE, + defaultValue: new Date() + }, + value: { + type: DataTypes.INTEGER, + defaultValue: 0 + } }, { // Definition of methods related to the feedback object @@ -20,6 +26,7 @@ module.exports = function (sequelize, DataTypes) { }, getterMethods: { + }, diff --git a/src/server/database/models/message.js b/src/server/database/models/message.js index 62f8217..f1b3694 100644 --- a/src/server/database/models/message.js +++ b/src/server/database/models/message.js @@ -3,36 +3,42 @@ // Message model module.exports = function (sequelize, DataTypes) { - // Definition of Message attributes + // Definition of Message attributes var Message = sequelize.define('Message', { time: { type: DataTypes.DATE, defaultValue: new Date() }, text: { - type: DataTypes.String, - allowNull: false - } - - // votesUp: DataTypes.INTEGER, - // votesDown: DataTypes.INTEGER, + type: DataTypes.STRING, + allowNull: false, + validate: { + min: { + args: [3], + msg: 'The message must be at least 3 charaters long' + } + } + }, + //user: { + //} + votesUp: { + type: DataTypes.INTEGER, + defaultValue: 0 + }, + votesDown: { + type: DataTypes.INTEGER, + defaultValue: 0 + }, }, { - - // Definition of methods related to the message object - // class-wide methods classMethods: { - - // Associations to other models - associate: function (models) { - // associations can be defined here - }, - - getterMethods: { - - }, - - setterMethods: { + assosiate: function(models) { + Message.belongsTo(models.User, { + onDelete: 'CASCADE', + foreignKey: { + allowNull: false + } + }) } } }) diff --git a/src/server/socket.js b/src/server/socket.js new file mode 100644 index 0000000..d0d32a7 --- /dev/null +++ b/src/server/socket.js @@ -0,0 +1 @@ +export default io.connect() diff --git a/src/test/client/test.js b/src/test/client/socket_test.js similarity index 100% rename from src/test/client/test.js rename to src/test/client/socket_test.js diff --git a/webpack.config.js b/webpack.config.js index e962b88..65ed5f1 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -4,7 +4,7 @@ module.exports = { entry: './src/client/client.js', output: { - filename: './src/client/bundle.js' // path: path.resolve(__dirname, 'dist') + filename: './src/static/bundle.js' // path: path.resolve(__dirname, 'dist') }, devServer: { From 0ab21b1a708abdb936ee7a4b6a6c5dab5f14f5cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 3 Mar 2017 09:26:28 +0100 Subject: [PATCH 08/76] Adds secretless config.json --- src/server/etc/config.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/server/etc/config.json diff --git a/src/server/etc/config.json b/src/server/etc/config.json new file mode 100644 index 0000000..9a87b52 --- /dev/null +++ b/src/server/etc/config.json @@ -0,0 +1,13 @@ + +{ + "http": { + "port": 8000 + }, + "dataporten": { + "issuerHost": "https://auth.dataporten.no/", + "client_id": "", + "client_secret": "", + "redirect_uri": "http://localhost:8000/callback", + "scope": "groups longterm openid userid email profile userid-feide" + } +} \ No newline at end of file From e3713c33ffd1ad3f806d46892e5aef0069a7e97a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 3 Mar 2017 09:39:09 +0100 Subject: [PATCH 09/76] Adds config.json to gitignore without removing the file by running git update-index --- .gitignore | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 4c5334a..cdf950c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,3 @@ -*bundle.js -npm-debug.log - - ### Linux ### *~ @@ -95,10 +91,14 @@ $RECYCLE.BIN/ *.lnk #Pycharm settingsfile -.idea/* +.idea/ workspace.xml # End of https://www.gitignore.io/api/linux,windows,node -.idea/ +*config.json +*bundle.js +npm-debug.log src/server/database/migrations/ src/server/database/seeders/ + + From a7418fb0cfb6dfd5329f2b8db10ffc01b4118136 Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Fri, 3 Mar 2017 10:13:16 +0100 Subject: [PATCH 10/76] Creating objects --- src/client/components/ChatApp.js | 3 -- src/client/components/ChatBox.js | 14 ++++------ src/client/components/FeedbackMenu.js | 32 +++++++++++++-------- src/client/components/FeedbackWindow.js | 32 ++++++++++++++++----- src/server/app.js | 37 +++++++++++++------------ src/server/database/models/feedback.js | 13 ++++----- 6 files changed, 78 insertions(+), 53 deletions(-) diff --git a/src/client/components/ChatApp.js b/src/client/components/ChatApp.js index 01da251..74c1e84 100644 --- a/src/client/components/ChatApp.js +++ b/src/client/components/ChatApp.js @@ -27,11 +27,8 @@ export default class ChatApp extends Component {
- // List of messages - // Inputfield for user - // Sidebar with feedback-options
diff --git a/src/client/components/ChatBox.js b/src/client/components/ChatBox.js index bb02c1b..b7dfea4 100644 --- a/src/client/components/ChatBox.js +++ b/src/client/components/ChatBox.js @@ -28,7 +28,7 @@ export default class ChatBox extends Component { } this.changeHandler = this.changeHandler.bind(this) - this.SendMessage = this.sendMessage.bind(this) + this.sendMessage = this.sendMessage.bind(this) this.cleanInput = this.cleanInput.bind(this) } @@ -43,8 +43,7 @@ export default class ChatBox extends Component { } sendMessage () { - e.preventDefault() - console.log('In handle send') + console.log('[ChatBox] sendMessage') // Setting msg.text to written input var msg = { text: this.state.text @@ -53,14 +52,13 @@ export default class ChatBox extends Component { // Emtpy input field this.setState({text: ''}) - console.log('Empty message field: ', this.state.text) - - socket.emit('receive-message', msg) + socket.emit('new-message', msg) + console.log("[ChatBox] After sending message") } // Listen and update field dynamically when something is written changeHandler (e) { this.setState({ text: e.target.value }) - console.log('Changing state') + console.log('[ChatBox] changeHandler') } render () { @@ -72,7 +70,7 @@ export default class ChatBox extends Component { onChange={this.changeHandler} value={this.state.text} /> - + ) diff --git a/src/client/components/FeedbackMenu.js b/src/client/components/FeedbackMenu.js index f6af666..b5f12b7 100644 --- a/src/client/components/FeedbackMenu.js +++ b/src/client/components/FeedbackMenu.js @@ -23,37 +23,47 @@ export default class FeedbackMenu extends Component { constructor (props) { super(props) + this.state = { + disabled: false + } this.slowClick = this.slowClick.bind(this) this.fastClick = this.fastClick.bind(this) + this.activateButtons = this.activateButtons.bind(this) } componentDidMount () { - socket.on('join', this.join) - socket.on('sendFeedback', this.receiveMessage) + // Activate button every x min + this.interval = setInterval(activateButtons(), 100) } - sendFeedback (feedback) { - socket.emiit('new-feedback', feedback) + activateButtons () { + this.setState({ + disabled: false + }) } - slowClick () { - const feedback = {'type': 'slow'} - this.props.onClick(feedback) + socket.emit('new-feedback', -1) + this.setState({ + disabled: true + }) + } fastClick () { - const feedback = {'type': 'fast'} - this.props.onClick(feedback) + socket.emit('new-feedback', 1) + this.setState({ + disabled: true + }) } render () { return (
- - + +
) diff --git a/src/client/components/FeedbackWindow.js b/src/client/components/FeedbackWindow.js index 76a6037..5f1a4e5 100644 --- a/src/client/components/FeedbackWindow.js +++ b/src/client/components/FeedbackWindow.js @@ -6,30 +6,48 @@ export default class FeedbackWindow extends Component { constructor (props) { super(props) + this.state = { - minsElapsed: 0, + //minsElapsed: 0, feedback: [0,0] } + + this.tick = this.tick.bind(this) + this.receiveFeedback = this.receiveFeedback.bind(this) + this.updateFeedbackInterval = this.updateFeedbackInterval.bind(this) } tick () { + console.log("[FeedbackWindow] In tick") + /* + var minsElapsed = this.state.minsElapsed + 1 this.setState({ - minsElapsed: this.state.minsElapsed + 1 + minsElapsed: minsElapsed }) - if (this.state.minsElapsed == 5) { - this.state.updateFeedbackInterval() - } + //if (this.state.minsElapsed == 5) { + // this.state.updateFeedbackInterval() + //} + */ + } componentDidMount() { // Increase every min - this.interval = setInterval(this.tick, 6000) + this.interval = setInterval(this.tick, 60000) socket.on('receive-feedback', this.receiveFeedback) } receiveFeedback (feedback) { console.log("Setting feedback") - this.setState({feedback: feedback}) + var feedbackList = this.state.feedback + if (feedback === -1) { + feedbackList[0] = feedbackList[0] - 1 + } else { + feedbackList[1] = feedbackList[1] + 1 + } + this.setState({ + feedback: feedbackList + }) } updateFeedbackInterval () { diff --git a/src/server/app.js b/src/server/app.js index 8486802..22b0911 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -113,8 +113,8 @@ server.listen(app.get('port'), (err) => { const db = require('./database/models/index') const user = db['User'] -const message = db['Message'] -const feedback = db['Feedback'] +const messageObj = db['Message'] +const feedbackObj = db['Feedback'] const userController = require('./database/controllers').user const messageController = require('./database/controllers').message @@ -132,7 +132,8 @@ var io = require('socket.io')(server) // When a new user connects io.sockets.on('connect', function (socket) { - console.log('New client have connected in app') + console.log('[app] connect') + // TODO: get x last messages in chat and send // TODO: get status of feedback and send // socket.emit('connect', "You are connected") @@ -141,36 +142,40 @@ io.sockets.on('connect', function (socket) { // Listen for connections io.sockets.on('connection', function (socket) { // Reports when it finds a connection - console.log('Client connected') + console.log('[app] connection') // Wait for a message from the client for 'join' socket.on('join', function (data) { - console.log('New client have joined') + console.log('[app] join') socket.emit('messages', 'Hello from server') }) // Wait for a message from the client for 'join' socket.on('leave', function (data) { - console.log('Client have left') + console.log('[app] left') socket.emit('messages', 'Goodbye from server') }) // When a new message is sendt from somebody socket.on('new-message', function (msg) { - messageController.create({ - // Save user - text: msg.text + console.log('[app] new-message: ' + msg) + messageObj.sync({force: true}).then(function () { + return messageObj.create({ + text: msg.text + }) }) - console.log('Message in new-message in app.js: ' + msg.text) io.sockets.emit('receive-message', msg) }) + // When somebody gives feedback socket.on('new-feedback', function (feedback) { - // TODO: save in database - feedbackController.create({ - value: feedback + console.log('[app] new-feedback: ' + feedback) + feedbackObj.sync({force: true}).then(function () { + return feedbackObj.create({ + value: feedback + }) }) - console.log('Received feedback in io.socket.on: ', feedback) + io.sockets.emit('receive-feedback', feedback) }) @@ -185,6 +190,4 @@ io.sockets.on('connection', function (socket) { // To get static files app.use('/', express.static(path.join(__dirname, '../static'))) app.use('/css', express.static(path.join(__dirname, '../static/css'))) -app.use('/icons', express.static(path.join(__dirname, '../static/icons'))) - -module.exports = io \ No newline at end of file +app.use('/icons', express.static(path.join(__dirname, '../static/icons'))) \ No newline at end of file diff --git a/src/server/database/models/feedback.js b/src/server/database/models/feedback.js index e3d2ec2..adb6030 100644 --- a/src/server/database/models/feedback.js +++ b/src/server/database/models/feedback.js @@ -23,15 +23,14 @@ module.exports = function (sequelize, DataTypes) { // Associations to other models associate: function (models) { // associations can be defined here + Feedback.belongsTo(models.User, { + onDelete: 'CASCADE', + foreignKey: { + allowNull: false + } + }) }, - getterMethods: { - - - }, - - setterMethods: { - } } }) return Feedback From 3ca968293ffd8802f650014616641764146cfe7d Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Fri, 3 Mar 2017 10:36:27 +0100 Subject: [PATCH 11/76] Created 'images' folder, added images --- src/static/images/logo.png | Bin 0 -> 34470 bytes src/static/images/thumb.png | Bin 0 -> 25282 bytes src/static/images/viestinta_illustration.png | Bin 0 -> 403711 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/static/images/logo.png create mode 100644 src/static/images/thumb.png create mode 100644 src/static/images/viestinta_illustration.png diff --git a/src/static/images/logo.png b/src/static/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9d0619df40795dc0d73fceb992e733468e5d9342 GIT binary patch literal 34470 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 D4jL8e literal 0 HcmV?d00001 diff --git a/src/static/images/viestinta_illustration.png b/src/static/images/viestinta_illustration.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a7bfc92417ed044dcf04583218f39a797b603d GIT binary patch literal 403711 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 z
+ + + From f3b522fe8fb8e6982c306b526ca6d8f0d5cac667 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Fri, 3 Mar 2017 10:39:23 +0100 Subject: [PATCH 13/76] Font, size and bg --- src/static/css/style.css | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/static/css/style.css b/src/static/css/style.css index 39cfb49..73a6a48 100644 --- a/src/static/css/style.css +++ b/src/static/css/style.css @@ -1,3 +1,14 @@ +html { + font-family: 'Roboto', sans-serif; +} + +body { + font-size: 13px; + line-height: 20px; + + background: #2DAAE4; +} + #chat-app { position: absolute; margin: auto; From 74300fcb4514419a803fd9f6f1ba6f89ea5f3189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 3 Mar 2017 11:19:55 +0100 Subject: [PATCH 14/76] Updates dependecies and changes nyc Istanbul command to check for 95% coverage --- package.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 3e4f58f..e9175e1 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test": "node src/server/app.js && nyc --reporter=lcov --reporter=text-lcov mocha src/test/server/**.js", + "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" @@ -50,6 +50,7 @@ "mocha": "^3.2.0", "morgan": "^1.7.0", "nconf": "^0.8.4", + "nyc": "^10.1.2", "passport": "^0.3.2", "passport-dataporten": "^1.1.3", "passport-openid-connect": "^0.1.0", @@ -70,6 +71,7 @@ "babel-preset-react": "^6.23.0", "chai": "^3.5.0", "check-dependencies": "^1.0.1", + "coveralls": "^2.11.16", "enzyme": "^2.7.1", "eslint": "^3.15.0", "eslint-config-standard": "^6.2.1", @@ -89,7 +91,14 @@ "presets": [ "es2015", "react" - ] + ], + "env": { + "test": { + "plugins": [ + "istanbul" + ] + } + } }, "standard": { "globals": [ From 00559ec66c6388d619af2170425bcae2a0c00040 Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Fri, 3 Mar 2017 13:59:40 +0100 Subject: [PATCH 15/76] Interval activation of feedbackbuttons is working --- src/client/components/FeedbackMenu.js | 4 ++-- src/server/database/models/feedback.js | 2 +- src/server/database/models/message.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/client/components/FeedbackMenu.js b/src/client/components/FeedbackMenu.js index b5f12b7..ca7bdae 100644 --- a/src/client/components/FeedbackMenu.js +++ b/src/client/components/FeedbackMenu.js @@ -34,10 +34,11 @@ export default class FeedbackMenu extends Component { componentDidMount () { // Activate button every x min - this.interval = setInterval(activateButtons(), 100) + this.interval = setInterval(this.activateButtons, 5 * 6000) } activateButtons () { + console.log('[FeedbackMenu] activateButtons') this.setState({ disabled: false }) @@ -48,7 +49,6 @@ export default class FeedbackMenu extends Component { this.setState({ disabled: true }) - } fastClick () { diff --git a/src/server/database/models/feedback.js b/src/server/database/models/feedback.js index adb6030..a4ac449 100644 --- a/src/server/database/models/feedback.js +++ b/src/server/database/models/feedback.js @@ -26,7 +26,7 @@ module.exports = function (sequelize, DataTypes) { Feedback.belongsTo(models.User, { onDelete: 'CASCADE', foreignKey: { - allowNull: false + allowNull: true } }) }, diff --git a/src/server/database/models/message.js b/src/server/database/models/message.js index f1b3694..2e000bd 100644 --- a/src/server/database/models/message.js +++ b/src/server/database/models/message.js @@ -36,7 +36,7 @@ module.exports = function (sequelize, DataTypes) { Message.belongsTo(models.User, { onDelete: 'CASCADE', foreignKey: { - allowNull: false + allowNull: true } }) } From 2cfc7450f50d8717ddadc72338f6ef0788a30247 Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Fri, 3 Mar 2017 17:16:59 +0100 Subject: [PATCH 16/76] Can count number of pos/neg feedbacks --- .sequelizesrc | 10 +- config/config.json | 23 +++++ models/index.js | 36 +++++++ package.json | 2 +- src/client/components/FeedbackWindow.js | 7 +- src/server/app.js | 41 +++++--- src/server/database.js | 18 ---- src/server/database/config/config.js | 1 + src/server/database/controllers/feedback.js | 60 ----------- src/server/database/controllers/feedbacks.js | 99 +++++++++++++++++++ src/server/database/controllers/index.js | 12 +-- .../controllers/{message.js => messages.js} | 17 ++-- src/server/database/models/feedback.js | 17 ++++ src/server/database/models/index.js | 4 +- 14 files changed, 229 insertions(+), 118 deletions(-) create mode 100644 config/config.json create mode 100644 models/index.js delete mode 100644 src/server/database/controllers/feedback.js create mode 100644 src/server/database/controllers/feedbacks.js rename src/server/database/controllers/{message.js => messages.js} (83%) diff --git a/.sequelizesrc b/.sequelizesrc index dcf4114..067b363 100644 --- a/.sequelizesrc +++ b/.sequelizesrc @@ -1,8 +1,8 @@ var path = require('path'); module.exports = { - 'config': path.resolve('./', 'config/config.js'), - 'migrations-path': path.resolve('./', 'server/migrations'), - 'seeders-path': path.resolve('./', 'server/seeders'), - 'models-path': path.resolve('./', 'server/models') -}; + 'config': path.resolve('./', 'src/server/database/config/config.js'), + 'migrations-path': path.resolve('./', 'src/server/database/migrations'), + 'seeders-path': path.resolve('./', 'src/server/database/seeders'), + 'models-path': path.resolve('./', 'src/server/database/models') +}; \ No newline at end of file diff --git a/config/config.json b/config/config.json new file mode 100644 index 0000000..0f858c6 --- /dev/null +++ b/config/config.json @@ -0,0 +1,23 @@ +{ + "development": { + "username": "root", + "password": null, + "database": "database_development", + "host": "127.0.0.1", + "dialect": "mysql" + }, + "test": { + "username": "root", + "password": null, + "database": "database_test", + "host": "127.0.0.1", + "dialect": "mysql" + }, + "production": { + "username": "root", + "password": null, + "database": "database_production", + "host": "127.0.0.1", + "dialect": "mysql" + } +} diff --git a/models/index.js b/models/index.js new file mode 100644 index 0000000..7540dba --- /dev/null +++ b/models/index.js @@ -0,0 +1,36 @@ +'use strict'; + +var fs = require('fs'); +var path = require('path'); +var Sequelize = require('sequelize'); +var basename = path.basename(module.filename); +var env = process.env.NODE_ENV || 'development'; +var config = require(__dirname + '/../config/config.json')[env]; +var db = {}; + +if (config.use_env_variable) { + var sequelize = new Sequelize(process.env[config.use_env_variable]); +} else { + var sequelize = new Sequelize(config.database, config.username, config.password, config); +} + +fs + .readdirSync(__dirname) + .filter(function(file) { + return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js'); + }) + .forEach(function(file) { + var model = sequelize['import'](path.join(__dirname, file)); + db[model.name] = model; + }); + +Object.keys(db).forEach(function(modelName) { + if (db[modelName].associate) { + db[modelName].associate(db); + } +}); + +db.sequelize = sequelize; +db.Sequelize = Sequelize; + +module.exports = db; diff --git a/package.json b/package.json index cd7236f..b370240 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "react": "^15.4.2", "react-dom": "^15.4.2", "sequelize": "^3.30.2", - "sequelize-cli": "^2.5.1", + "sequelize-cli": "^2.1.0", "webpack": "^2.2.1", "webpack-dev-server": "^2.3.0" }, diff --git a/src/client/components/FeedbackWindow.js b/src/client/components/FeedbackWindow.js index 5f1a4e5..f52e4cc 100644 --- a/src/client/components/FeedbackWindow.js +++ b/src/client/components/FeedbackWindow.js @@ -50,8 +50,11 @@ export default class FeedbackWindow extends Component { }) } - updateFeedbackInterval () { - + updateFeedbackInterval (feedbacks) { + console.log('[FeedbackWindow] updateFeedbackInterval') + this.setState({ + feedback: feedbacks + }) } diff --git a/src/server/app.js b/src/server/app.js index 22b0911..2d64b0e 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -113,19 +113,31 @@ server.listen(app.get('port'), (err) => { const db = require('./database/models/index') const user = db['User'] -const messageObj = db['Message'] -const feedbackObj = db['Feedback'] +//const messageObj = db['Message'] +//const feedbackObj = db['Feedback'] -const userController = require('./database/controllers').user -const messageController = require('./database/controllers').message -const feedbackController = require('./database/controllers').feedback +const users = require('./database/controllers').users +const messagesController = require('./database/controllers').messages +const feedbacksController = require('./database/controllers').feedbacks user.sync({force: true}).then(function () { return user.create({ name: 'Pekka Foreleser' }) }) +/* +messageObj.sync({force: true}).then(function () { + return messageObj.create({ + text: "Just testing" + }) +}) +feedbackObj.sync({force: true}).then(function () { + return feedbackObj.create({ + value: 0 + }) +}) +*/ // Create a connection // var socket = io.connect('http://localhost::8000') var io = require('socket.io')(server) @@ -136,7 +148,9 @@ io.sockets.on('connect', function (socket) { // TODO: get x last messages in chat and send // TODO: get status of feedback and send - // socket.emit('connect', "You are connected") + var feedback = feedbacksController.getLastInterval() + console.log('[app] connect: updateFeedbackInterval: ', feedback) + socket.emit('updateFeedbackInterval', feedback) }) // Listen for connections @@ -159,23 +173,18 @@ io.sockets.on('connection', function (socket) { // When a new message is sendt from somebody socket.on('new-message', function (msg) { console.log('[app] new-message: ' + msg) - messageObj.sync({force: true}).then(function () { - return messageObj.create({ - text: msg.text - }) - }) + messagesController.create(msg) + io.sockets.emit('receive-message', msg) }) // When somebody gives feedback socket.on('new-feedback', function (feedback) { console.log('[app] new-feedback: ' + feedback) - feedbackObj.sync({force: true}).then(function () { - return feedbackObj.create({ - value: feedback - }) + feedbacksController.create({ + value: feedback }) - + console.log('[app] new-feedback: after') io.sockets.emit('receive-feedback', feedback) }) diff --git a/src/server/database.js b/src/server/database.js index ee9fd39..8143f84 100644 --- a/src/server/database.js +++ b/src/server/database.js @@ -1,21 +1,3 @@ // /////////////////////////////////////////////////// // Setup for database // /////////////////////////////////////////////////// - -// TODO: Flytt til annen fil, eller gjør som del av user login/creation. Må bare kjøres før user objektet skal brukes. - -const db = require('./database/models/index') - -const user = db['User'] -const message = db['Message'] -const feedback = db['Feedback'] - -const userController = require('./database/controllers').user -const messageController = require('./database/controllers').message -const feedbackController = require('./database/controllers').feedback - -user.sync({force: true}).then(function () { - return user.create({ - name: 'Pekka Foreleser' - }) -}) \ No newline at end of file diff --git a/src/server/database/config/config.js b/src/server/database/config/config.js index f0c378e..fbff1a9 100644 --- a/src/server/database/config/config.js +++ b/src/server/database/config/config.js @@ -1,4 +1,5 @@ +console.log("In config for sequelize") module.exports = { development: { 'username': 'postgres', diff --git a/src/server/database/controllers/feedback.js b/src/server/database/controllers/feedback.js deleted file mode 100644 index dbbcbda..0000000 --- a/src/server/database/controllers/feedback.js +++ /dev/null @@ -1,60 +0,0 @@ -const Feedback = require('../models/index').Feedback - -// Controller for Feedback model - -module.exports = { - - // Create a new Feedback using model.create() - - create (req, res) { - Feedback.create(req.body) - .then(function (newFeedback) { - res.status(200).json(newFeedback) - }) - .catch(function (error) { - res.status(500).json(error) - }) - }, - - // Edit an existing Feedback details using model.update() - update (req, res) { - Feedback.update(req.body, { - where: { - id: req.params.id - } - }) - .then(function (updatedRecords) { - res.status(200).json(updatedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) - }, - - // For last 5 min - calculate (req, res) { - return Feedback - .findAll({ - // TODO: just use createdAt? - time: { - $lt: new Date() - $gt: new Date(new Date - 5 * 60000) - } - }) - } - - // Delete an existing Feedback by the unique ID using model.destroy() - delete (req, res) { - Feedback.destroy({ - where: { - id: req.params.id - } - }) - .then(function (deletedRecords) { - res.status(200).json(deletedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) - } -} diff --git a/src/server/database/controllers/feedbacks.js b/src/server/database/controllers/feedbacks.js new file mode 100644 index 0000000..64d9ed6 --- /dev/null +++ b/src/server/database/controllers/feedbacks.js @@ -0,0 +1,99 @@ +const Feedback = require('../models/index').Feedback + +// Controller for Feedback model + +const MIN = 60000 +module.exports = { + + // Create a new Feedback using model.create() + create (req, res) { + Feedback.create(req.body) + .then(function (newFeedback) { + res.status(200).json(newFeedback) + }) + .catch(function (error) { + res.status(500).json(error) + }) + }, + + // Edit an existing Feedback details using model.update() + update (req, res) { + Feedback.update(req.body, { + where: { + id: req.params.id + } + }) + .then(function (updatedRecords) { + res.status(200).json(updatedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) + }, + + // For last 5 min + getLastInterval (req, res) { + return list = [ + [ + Feedback.count({ + where: { + // TODO: just use createdAt? + /*time: { + // Set to 5 * MIN + $between: [new Date(), new Date(new Date - 5 * 1000)] + }, + */ + value: -1 + } + + }).then(function (result) { + console.log('[feedbacks] getLastInterval neg:', result) + }) + ], + [ + pos = Feedback.count({ + where: { + // TODO: just use createdAt? + time: { + // Set to 5 * MIN + $between: [new Date(), new Date(new Date - 5 * 1000)] + }, + value: 1 + } + + }).then(function (result) { + console.log('[feedbacks] getLastInterval pos:', result) + }) + ] + ] + console.log('[feedbacks] getLastInterval pos:', list) + }, + + getAllLecture (req, res) { + return Feedback.findAll({ + where: { + // TODO: just use createdAt? + time: { + $between: [new Date(), new Date(new Date - 120 * MIN)] + } + } + }).then(function (result) { + console.log(result.count) + }) + }, + + // Delete an existing Feedback by the unique ID using model.destroy() + delete (req, res) { + Feedback.destroy({ + where: { + id: req.params.id + } + }) + .then(function (deletedRecords) { + res.status(200).json(deletedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) + } +} diff --git a/src/server/database/controllers/index.js b/src/server/database/controllers/index.js index b391ea2..857d56f 100644 --- a/src/server/database/controllers/index.js +++ b/src/server/database/controllers/index.js @@ -1,9 +1,9 @@ -const user = require('../models/user') -const feedback = require('../models/feedback') -const message = require('../models/message') +const users = require('./users') +const feedbacks = require('./feedbacks') +const messages = require('./messages') module.exports = { - user, - feedback, - message + users, + feedbacks, + messages } diff --git a/src/server/database/controllers/message.js b/src/server/database/controllers/messages.js similarity index 83% rename from src/server/database/controllers/message.js rename to src/server/database/controllers/messages.js index b10f9ba..1f5384e 100644 --- a/src/server/database/controllers/message.js +++ b/src/server/database/controllers/messages.js @@ -1,7 +1,7 @@ -const Message = require('../models/index').Message - // Controller for Message model +var Message = require('../models/index').Message + module.exports = { // Create a new Message using model.create() @@ -9,14 +9,13 @@ module.exports = { return Message.create({ time: new Date().now(), text: req.body.text - console.log("Creating new message-object") }) - .then(function (newMessage) { - res.status(200).json(newMessage) - }) - .catch(function (error) { - res.status(500).json(error) - }) + .then(function (newMessage) { + res.status(200).json(newMessage) + }) + .catch(function (error) { + res.status(500).json(error) + }) }, // Edit an existing Message details using model.update() diff --git a/src/server/database/models/feedback.js b/src/server/database/models/feedback.js index a4ac449..f5870e1 100644 --- a/src/server/database/models/feedback.js +++ b/src/server/database/models/feedback.js @@ -31,7 +31,24 @@ module.exports = function (sequelize, DataTypes) { }) }, + }, + /* + getterMethods: { + getLastInterval: function() { + return Feedback.findAll({ + where: { + // TODO: just use createdAt? + time: { + // Set to 5 * 60000 + $between: [new Date(), new Date(newDate - 5 * 1000)] + } + } + }).then(function (result) { + console.log(result.count) + }) + } } + */ }) return Feedback } diff --git a/src/server/database/models/index.js b/src/server/database/models/index.js index c56702d..d972162 100644 --- a/src/server/database/models/index.js +++ b/src/server/database/models/index.js @@ -17,12 +17,14 @@ let db = {} var sequelize = new Sequelize(process.env['DATABASE_URL']) -/* if (config.use_env_variable) { +/*if (config.use_env_variable) { var sequelize = new Sequelize(process.env[config.use_env_variable]) } else { var sequelize = new Sequelize(config.database, config.username, config.password, config) } */ + + fs .readdirSync(__dirname) .filter(function (file) { From 306f4b3a1f18c20511b0587b924e39496c324e1c Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Fri, 3 Mar 2017 17:40:27 +0100 Subject: [PATCH 17/76] Removed res from functions since it was undefined --- src/server/database/controllers/feedbacks.js | 35 ++++++-------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/src/server/database/controllers/feedbacks.js b/src/server/database/controllers/feedbacks.js index 64d9ed6..833ec9d 100644 --- a/src/server/database/controllers/feedbacks.js +++ b/src/server/database/controllers/feedbacks.js @@ -6,33 +6,25 @@ const MIN = 60000 module.exports = { // Create a new Feedback using model.create() - create (req, res) { - Feedback.create(req.body) - .then(function (newFeedback) { - res.status(200).json(newFeedback) - }) - .catch(function (error) { - res.status(500).json(error) + create (req) { + console.log('[feedbacks] create req: ', req.value) + return Feedback.create({ + value: req.value }) }, // Edit an existing Feedback details using model.update() - update (req, res) { + update (req) { Feedback.update(req.body, { where: { id: req.params.id } }) - .then(function (updatedRecords) { - res.status(200).json(updatedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) + }, // For last 5 min - getLastInterval (req, res) { + getLastInterval (req) { return list = [ [ Feedback.count({ @@ -66,10 +58,9 @@ module.exports = { }) ] ] - console.log('[feedbacks] getLastInterval pos:', list) }, - getAllLecture (req, res) { + getAllLecture (req) { return Feedback.findAll({ where: { // TODO: just use createdAt? @@ -83,17 +74,11 @@ module.exports = { }, // Delete an existing Feedback by the unique ID using model.destroy() - delete (req, res) { + delete (req) { Feedback.destroy({ where: { id: req.params.id } }) - .then(function (deletedRecords) { - res.status(200).json(deletedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) } -} +} \ No newline at end of file From 99602d941ac31c2708e8662ac02f6e587fb7c716 Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Fri, 3 Mar 2017 18:58:08 +0100 Subject: [PATCH 18/76] Just get promise objects back, can't get value --- src/server/app.js | 4 +- src/server/database/controllers/feedbacks.js | 47 ++++++-------------- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/src/server/app.js b/src/server/app.js index 2d64b0e..49370a5 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -148,8 +148,8 @@ io.sockets.on('connect', function (socket) { // TODO: get x last messages in chat and send // TODO: get status of feedback and send - var feedback = feedbacksController.getLastInterval() - console.log('[app] connect: updateFeedbackInterval: ', feedback) + var feedback = feedbacksController.getLastInterval().then(function (result) { return result}) + console.log('[app] connect: updateFeedbackInterval: ', feedback) socket.emit('updateFeedbackInterval', feedback) }) diff --git a/src/server/database/controllers/feedbacks.js b/src/server/database/controllers/feedbacks.js index 833ec9d..babbbbf 100644 --- a/src/server/database/controllers/feedbacks.js +++ b/src/server/database/controllers/feedbacks.js @@ -25,39 +25,20 @@ module.exports = { // For last 5 min getLastInterval (req) { - return list = [ - [ - Feedback.count({ - where: { - // TODO: just use createdAt? - /*time: { - // Set to 5 * MIN - $between: [new Date(), new Date(new Date - 5 * 1000)] - }, - */ - value: -1 - } - - }).then(function (result) { - console.log('[feedbacks] getLastInterval neg:', result) - }) - ], - [ - pos = Feedback.count({ - where: { - // TODO: just use createdAt? - time: { - // Set to 5 * MIN - $between: [new Date(), new Date(new Date - 5 * 1000)] - }, - value: 1 - } - - }).then(function (result) { - console.log('[feedbacks] getLastInterval pos:', result) - }) - ] - ] + return Feedback.count({ + where: { + // TODO: just use createdAt? + /*time: { + // Set to 5 * MIN + $between: [new Date(), new Date(new Date - 5 * 1000)] + }, + */ + value: -1 + } + }).then(function (result) { + console.log('[feedbacks] getLastInterval neg:', result) + return result + }) }, getAllLecture (req) { From 6466b74fe41b59112b5c1066464820d73f811a0c Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 14:37:15 +0100 Subject: [PATCH 19/76] testing other database port --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 2cda095..25ab529 100644 --- a/.drone.yml +++ b/.drone.yml @@ -5,7 +5,7 @@ pipeline: event: [push,pull_request] branches: [master, react-start] environment: - DATABASE_URL: postgres://postgres:viestintacentos@postgres:5432/viestintadb_dev + DATABASE_URL: 127.0.0.1:5432 NODE_ENV: test commands: - npm install --silent From 15a065c5fc29da577730e8f0467e7876ad6d3f14 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 14:43:51 +0100 Subject: [PATCH 20/76] Trying database url again --- .drone.yml | 2 +- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 25ab529..bd17c27 100644 --- a/.drone.yml +++ b/.drone.yml @@ -5,7 +5,7 @@ pipeline: event: [push,pull_request] branches: [master, react-start] environment: - DATABASE_URL: 127.0.0.1:5432 + DATABASE_URL: postgres://postgres:viestintacentos@127.0.0.1:5432 NODE_ENV: test commands: - npm install --silent diff --git a/.drone.yml.sig b/.drone.yml.sig index e3510e9..62355c0 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogbm9kZTo3LjUuMAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFtwdXNoLHB1bGxfcmVxdWVzdF0KICAgICAgYnJhbmNoZXM6IFttYXN0ZXIsIHJlYWN0LXN0YXJ0XQogICAgY29tbWFuZHM6CiAgICAgIC0gbnBtIGluc3RhbGwgLS1zaWxlbnQKICAgICAgLSBucG0gaW5zdGFsbCBzdGFuZGFyZCAtZwogICAgICAtIG5wbSBydW4gdGVzdAogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgo.HUOmcN4jh1vwJ1PEpLPzqjFyuhaL9yEoN-PJfMz4M14 \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogbm9kZTo3LjUuMAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFtwdXNoLHB1bGxfcmVxdWVzdF0KICAgICAgYnJhbmNoZXM6IFttYXN0ZXIsIHJlYWN0LXN0YXJ0XQogICAgZW52aXJvbm1lbnQ6CiAgICAgIERBVEFCQVNFX1VSTDogcG9zdGdyZXM6Ly9wb3N0Z3Jlczp2aWVzdGludGFjZW50b3NAMTI3LjAuMC4xOjU0MzIKICAgICAgTk9ERV9FTlY6IHRlc3QKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBzbGVlcCAxMAogICAgICAtIG5wbSBzdGFydAoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo.BxhaZFJ2hSNABtvWhMZvw42TsYixCwHcAr-ytDRSaWw \ No newline at end of file From 2801f73927646d70e30136f120c17f944881ed70 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 14:50:33 +0100 Subject: [PATCH 21/76] selected other image --- .drone.yml | 2 +- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index bd17c27..f442840 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,6 @@ pipeline: test: - image: node:7.5.0 + image: viestinta/node:viestinta-test when: event: [push,pull_request] branches: [master, react-start] diff --git a/.drone.yml.sig b/.drone.yml.sig index 62355c0..798fb4a 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogbm9kZTo3LjUuMAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFtwdXNoLHB1bGxfcmVxdWVzdF0KICAgICAgYnJhbmNoZXM6IFttYXN0ZXIsIHJlYWN0LXN0YXJ0XQogICAgZW52aXJvbm1lbnQ6CiAgICAgIERBVEFCQVNFX1VSTDogcG9zdGdyZXM6Ly9wb3N0Z3Jlczp2aWVzdGludGFjZW50b3NAMTI3LjAuMC4xOjU0MzIKICAgICAgTk9ERV9FTlY6IHRlc3QKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBzbGVlcCAxMAogICAgICAtIG5wbSBzdGFydAoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo.BxhaZFJ2hSNABtvWhMZvw42TsYixCwHcAr-ytDRSaWw \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gc2xlZXAgMTAKICAgICAgLSBucG0gc3RhcnQKCiAgZGVwbG95OgogICAgaW1hZ2U6IHBsdWdpbnMvc3NoCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IHByb2R1Y3Rpb24KICAgIGhvc3Q6IHN0b2trZXJzLm5vCiAgICBwb3J0OiAyMjAxNAogICAgY29tbWFuZHM6CiAgICAgIC0gYmFzaCAvc2NyaXB0cy9kZXBsb3ktdmllc3RpbnRhLXByb2Quc2gKCnNlcnZpY2VzOgogICAgcG9zdGdyZXM6CiAgICAgIGltYWdlOiBwb3N0Z3Jlczo5LjYKICAgICAgY29udGFpbmVyX25hbWU6IHZpZXN0aW50YV9wb3N0Z3JlcwogICAgICBwb3J0czoKICAgICAgICAtICI1NDMyOjU0MzIiCiAgICAgIGVudmlyb25tZW50OgogICAgICAgIFBPU1RHUkVTX1VTRVI6IHBvc3RncmVzCiAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHZpZXN0aW50YWNlbnRvcwogICAgICAgIFBPU1RHUkVTX0RCOiB2aWVzdGludGFkYl9kZXYKCgoK.i9qnuoSjuQaPCNcF2-hV0l0EWnqBT9k_gykHnTFabfE \ No newline at end of file From 79581ce58543c42130894ba46a3e9584fa6d842d Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 14:56:40 +0100 Subject: [PATCH 22/76] trying to actually test --- .drone.yml | 2 +- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index f442840..8ae156e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,7 +11,7 @@ pipeline: - npm install --silent - npm install standard -g - sleep 10 - - npm start + - npm test-server deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index 798fb4a..cf031d6 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gc2xlZXAgMTAKICAgICAgLSBucG0gc3RhcnQKCiAgZGVwbG95OgogICAgaW1hZ2U6IHBsdWdpbnMvc3NoCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IHByb2R1Y3Rpb24KICAgIGhvc3Q6IHN0b2trZXJzLm5vCiAgICBwb3J0OiAyMjAxNAogICAgY29tbWFuZHM6CiAgICAgIC0gYmFzaCAvc2NyaXB0cy9kZXBsb3ktdmllc3RpbnRhLXByb2Quc2gKCnNlcnZpY2VzOgogICAgcG9zdGdyZXM6CiAgICAgIGltYWdlOiBwb3N0Z3Jlczo5LjYKICAgICAgY29udGFpbmVyX25hbWU6IHZpZXN0aW50YV9wb3N0Z3JlcwogICAgICBwb3J0czoKICAgICAgICAtICI1NDMyOjU0MzIiCiAgICAgIGVudmlyb25tZW50OgogICAgICAgIFBPU1RHUkVTX1VTRVI6IHBvc3RncmVzCiAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHZpZXN0aW50YWNlbnRvcwogICAgICAgIFBPU1RHUkVTX0RCOiB2aWVzdGludGFkYl9kZXYKCgoK.i9qnuoSjuQaPCNcF2-hV0l0EWnqBT9k_gykHnTFabfE \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gc2xlZXAgMTAKICAgICAgLSBucG0gdGVzdC1zZXJ2ZXIKCiAgZGVwbG95OgogICAgaW1hZ2U6IHBsdWdpbnMvc3NoCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IHByb2R1Y3Rpb24KICAgIGhvc3Q6IHN0b2trZXJzLm5vCiAgICBwb3J0OiAyMjAxNAogICAgY29tbWFuZHM6CiAgICAgIC0gYmFzaCAvc2NyaXB0cy9kZXBsb3ktdmllc3RpbnRhLXByb2Quc2gKCnNlcnZpY2VzOgogICAgcG9zdGdyZXM6CiAgICAgIGltYWdlOiBwb3N0Z3Jlczo5LjYKICAgICAgY29udGFpbmVyX25hbWU6IHZpZXN0aW50YV9wb3N0Z3JlcwogICAgICBwb3J0czoKICAgICAgICAtICI1NDMyOjU0MzIiCiAgICAgIGVudmlyb25tZW50OgogICAgICAgIFBPU1RHUkVTX1VTRVI6IHBvc3RncmVzCiAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHZpZXN0aW50YWNlbnRvcwogICAgICAgIFBPU1RHUkVTX0RCOiB2aWVzdGludGFkYl9kZXYKCgoK.93xBs1q7k4MplzAj4mO_K9ZMPA5yA9wZ-Nrr0fQJxtA \ No newline at end of file From 112781abe31c2a3706cf811c4cce3d30a07012c8 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 15:01:28 +0100 Subject: [PATCH 23/76] npm run test-server --- .drone.yml | 2 +- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 8ae156e..c28e198 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,7 +11,7 @@ pipeline: - npm install --silent - npm install standard -g - sleep 10 - - npm test-server + - npm run test-server deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index cf031d6..b28dd14 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gc2xlZXAgMTAKICAgICAgLSBucG0gdGVzdC1zZXJ2ZXIKCiAgZGVwbG95OgogICAgaW1hZ2U6IHBsdWdpbnMvc3NoCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IHByb2R1Y3Rpb24KICAgIGhvc3Q6IHN0b2trZXJzLm5vCiAgICBwb3J0OiAyMjAxNAogICAgY29tbWFuZHM6CiAgICAgIC0gYmFzaCAvc2NyaXB0cy9kZXBsb3ktdmllc3RpbnRhLXByb2Quc2gKCnNlcnZpY2VzOgogICAgcG9zdGdyZXM6CiAgICAgIGltYWdlOiBwb3N0Z3Jlczo5LjYKICAgICAgY29udGFpbmVyX25hbWU6IHZpZXN0aW50YV9wb3N0Z3JlcwogICAgICBwb3J0czoKICAgICAgICAtICI1NDMyOjU0MzIiCiAgICAgIGVudmlyb25tZW50OgogICAgICAgIFBPU1RHUkVTX1VTRVI6IHBvc3RncmVzCiAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHZpZXN0aW50YWNlbnRvcwogICAgICAgIFBPU1RHUkVTX0RCOiB2aWVzdGludGFkYl9kZXYKCgoK.93xBs1q7k4MplzAj4mO_K9ZMPA5yA9wZ-Nrr0fQJxtA \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gc2xlZXAgMTAKICAgICAgLSBucG0gcnVuIHRlc3Qtc2VydmVyCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgoKCg.uNYamU9rraz3sXnJtzW8jyAktkQ6mNiaBBDLuZeXlHQ \ No newline at end of file From 19d41214bc82adefa2d94b9fa710f31986841714 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 15:05:07 +0100 Subject: [PATCH 24/76] npm run test --- .drone.yml | 2 +- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index c28e198..65520bd 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,7 +11,7 @@ pipeline: - npm install --silent - npm install standard -g - sleep 10 - - npm run test-server + - npm run test deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index b28dd14..05ba5b8 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gc2xlZXAgMTAKICAgICAgLSBucG0gcnVuIHRlc3Qtc2VydmVyCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgoKCg.uNYamU9rraz3sXnJtzW8jyAktkQ6mNiaBBDLuZeXlHQ \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gc2xlZXAgMTAKICAgICAgLSBucG0gcnVuIHRlc3QKCiAgZGVwbG95OgogICAgaW1hZ2U6IHBsdWdpbnMvc3NoCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IHByb2R1Y3Rpb24KICAgIGhvc3Q6IHN0b2trZXJzLm5vCiAgICBwb3J0OiAyMjAxNAogICAgY29tbWFuZHM6CiAgICAgIC0gYmFzaCAvc2NyaXB0cy9kZXBsb3ktdmllc3RpbnRhLXByb2Quc2gKCnNlcnZpY2VzOgogICAgcG9zdGdyZXM6CiAgICAgIGltYWdlOiBwb3N0Z3Jlczo5LjYKICAgICAgY29udGFpbmVyX25hbWU6IHZpZXN0aW50YV9wb3N0Z3JlcwogICAgICBwb3J0czoKICAgICAgICAtICI1NDMyOjU0MzIiCiAgICAgIGVudmlyb25tZW50OgogICAgICAgIFBPU1RHUkVTX1VTRVI6IHBvc3RncmVzCiAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHZpZXN0aW50YWNlbnRvcwogICAgICAgIFBPU1RHUkVTX0RCOiB2aWVzdGludGFkYl9kZXYKCgoK.NFFL7gnGU_dsGcjXC_SrYSgI0QMM6HSBrrTN2hjxbqU \ No newline at end of file From 0b60a5fcdfd9be46a6e5079cca47eb437435de85 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 15:43:31 +0100 Subject: [PATCH 25/76] adding coveralls --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index e9175e1..4a48967 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js", + "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && instanbul-coveralls", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" @@ -78,6 +78,8 @@ "eslint-plugin-promise": "^3.4.0", "eslint-plugin-standard": "^2.0.1", "http": "0.0.0", + "istanbul": "^0.4.5", + "istanbul-coveralls": "^1.0.3", "mocha": "^3.2.0", "nyc": "^10.1.2", "react-addons-test-utils": "^15.4.2", From ecc0ba5b600c4507d631edbbc9cc6e69de03d1ec Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 15:54:18 +0100 Subject: [PATCH 26/76] adding coveralls repo token and instaslling istanbul-coveralls --- .drone.yml | 3 ++- .drone.yml.sig | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 65520bd..91453fe 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,10 +7,11 @@ pipeline: environment: DATABASE_URL: postgres://postgres:viestintacentos@127.0.0.1:5432 NODE_ENV: test + COVERALLS_REPO_TOKEN: $$COVERALLS_TOKEN commands: - npm install --silent - npm install standard -g - - sleep 10 + - npm install istanbul-coveralls - npm run test deploy: diff --git a/.drone.yml.sig b/.drone.yml.sig index 05ba5b8..75a9632 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gc2xlZXAgMTAKICAgICAgLSBucG0gcnVuIHRlc3QKCiAgZGVwbG95OgogICAgaW1hZ2U6IHBsdWdpbnMvc3NoCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IHByb2R1Y3Rpb24KICAgIGhvc3Q6IHN0b2trZXJzLm5vCiAgICBwb3J0OiAyMjAxNAogICAgY29tbWFuZHM6CiAgICAgIC0gYmFzaCAvc2NyaXB0cy9kZXBsb3ktdmllc3RpbnRhLXByb2Quc2gKCnNlcnZpY2VzOgogICAgcG9zdGdyZXM6CiAgICAgIGltYWdlOiBwb3N0Z3Jlczo5LjYKICAgICAgY29udGFpbmVyX25hbWU6IHZpZXN0aW50YV9wb3N0Z3JlcwogICAgICBwb3J0czoKICAgICAgICAtICI1NDMyOjU0MzIiCiAgICAgIGVudmlyb25tZW50OgogICAgICAgIFBPU1RHUkVTX1VTRVI6IHBvc3RncmVzCiAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHZpZXN0aW50YWNlbnRvcwogICAgICAgIFBPU1RHUkVTX0RCOiB2aWVzdGludGFkYl9kZXYKCgoK.NFFL7gnGU_dsGcjXC_SrYSgI0QMM6HSBrrTN2hjxbqU \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgY29tbWFuZHM6CiAgICAgIC0gbnBtIGluc3RhbGwgLS1zaWxlbnQKICAgICAgLSBucG0gaW5zdGFsbCBzdGFuZGFyZCAtZwogICAgICAtIG5wbSBpbnN0YWxsIGlzdGFuYnVsLWNvdmVyYWxscwogICAgICAtIG5wbSBydW4gdGVzdAoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo._CVFLKf2zrCaI4k9OfhLc-MwZ8yW2Sc_Ixqcq9moJMw \ No newline at end of file From e96f387281e1ac4f11db023d13d7f6c0f5192b76 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:00:39 +0100 Subject: [PATCH 27/76] fixing typo in npm test command --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4a48967..2f8a687 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && instanbul-coveralls", + "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && istanbul-coveralls", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" From dcafa6a17397a83e52b6e916eaad0b2ab45fc7d8 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:07:14 +0100 Subject: [PATCH 28/76] Trying to fix coveralls --- .drone.yml | 2 ++ .drone.yml.sig | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 91453fe..c7f2a07 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,6 +13,8 @@ pipeline: - npm install standard -g - npm install istanbul-coveralls - npm run test + - cat ./coverage/lcov.info + - istanbul-coveralls deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index 75a9632..0405035 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgY29tbWFuZHM6CiAgICAgIC0gbnBtIGluc3RhbGwgLS1zaWxlbnQKICAgICAgLSBucG0gaW5zdGFsbCBzdGFuZGFyZCAtZwogICAgICAtIG5wbSBpbnN0YWxsIGlzdGFuYnVsLWNvdmVyYWxscwogICAgICAtIG5wbSBydW4gdGVzdAoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo._CVFLKf2zrCaI4k9OfhLc-MwZ8yW2Sc_Ixqcq9moJMw \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgY29tbWFuZHM6CiAgICAgIC0gbnBtIGluc3RhbGwgLS1zaWxlbnQKICAgICAgLSBucG0gaW5zdGFsbCBzdGFuZGFyZCAtZwogICAgICAtIG5wbSBpbnN0YWxsIGlzdGFuYnVsLWNvdmVyYWxscwogICAgICAtIG5wbSBydW4gdGVzdAogICAgICAtIGNhdCAuL2NvdmVyYWdlL2xjb3YuaW5mbwogICAgICAtIGlzdGFuYnVsLWNvdmVyYWxscwoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo.VOf2TrQiBYfLT9Hu7wOE40LbNSYRcj1uzXWfAIrr8k0 \ No newline at end of file diff --git a/package.json b/package.json index 2f8a687..a476efb 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && istanbul-coveralls", + "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" From 2d04a17434925e86416214627d7f7c56c3c0deba Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:17:04 +0100 Subject: [PATCH 29/76] Adding nyc report --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a476efb..9d4a3ae 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js", + "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && nyc report --reporter=text-lcov > ./coverage/lcov.info", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" From d5a15052f5e290d4d48896de93f59a158d1f6041 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:20:19 +0100 Subject: [PATCH 30/76] Removing extra istanbul coveralls command --- .drone.yml | 2 -- .drone.yml.sig | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index c7f2a07..91453fe 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,8 +13,6 @@ pipeline: - npm install standard -g - npm install istanbul-coveralls - npm run test - - cat ./coverage/lcov.info - - istanbul-coveralls deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index 0405035..75a9632 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgY29tbWFuZHM6CiAgICAgIC0gbnBtIGluc3RhbGwgLS1zaWxlbnQKICAgICAgLSBucG0gaW5zdGFsbCBzdGFuZGFyZCAtZwogICAgICAtIG5wbSBpbnN0YWxsIGlzdGFuYnVsLWNvdmVyYWxscwogICAgICAtIG5wbSBydW4gdGVzdAogICAgICAtIGNhdCAuL2NvdmVyYWdlL2xjb3YuaW5mbwogICAgICAtIGlzdGFuYnVsLWNvdmVyYWxscwoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo.VOf2TrQiBYfLT9Hu7wOE40LbNSYRcj1uzXWfAIrr8k0 \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgY29tbWFuZHM6CiAgICAgIC0gbnBtIGluc3RhbGwgLS1zaWxlbnQKICAgICAgLSBucG0gaW5zdGFsbCBzdGFuZGFyZCAtZwogICAgICAtIG5wbSBpbnN0YWxsIGlzdGFuYnVsLWNvdmVyYWxscwogICAgICAtIG5wbSBydW4gdGVzdAoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo._CVFLKf2zrCaI4k9OfhLc-MwZ8yW2Sc_Ixqcq9moJMw \ No newline at end of file From badc9a621f704c68d3c33fd04a60342e96147579 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:28:49 +0100 Subject: [PATCH 31/76] Trying to add coveralls again --- .coveralls.yml | 1 + .drone.yml | 1 + .drone.yml.sig | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .coveralls.yml diff --git a/.coveralls.yml b/.coveralls.yml new file mode 100644 index 0000000..39ab309 --- /dev/null +++ b/.coveralls.yml @@ -0,0 +1 @@ +repo_token: qF3DdYRXqumL4CrEvhNamuCpl27JFhM0t \ No newline at end of file diff --git a/.drone.yml b/.drone.yml index 91453fe..1a824d4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,6 +8,7 @@ pipeline: DATABASE_URL: postgres://postgres:viestintacentos@127.0.0.1:5432 NODE_ENV: test COVERALLS_REPO_TOKEN: $$COVERALLS_TOKEN + COVERALLS_TOKEN: $$COVERALLS_TOKEN commands: - npm install --silent - npm install standard -g diff --git a/.drone.yml.sig b/.drone.yml.sig index 75a9632..73ea784 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgY29tbWFuZHM6CiAgICAgIC0gbnBtIGluc3RhbGwgLS1zaWxlbnQKICAgICAgLSBucG0gaW5zdGFsbCBzdGFuZGFyZCAtZwogICAgICAtIG5wbSBpbnN0YWxsIGlzdGFuYnVsLWNvdmVyYWxscwogICAgICAtIG5wbSBydW4gdGVzdAoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo._CVFLKf2zrCaI4k9OfhLc-MwZ8yW2Sc_Ixqcq9moJMw \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gbnBtIGluc3RhbGwgaXN0YW5idWwtY292ZXJhbGxzCiAgICAgIC0gbnBtIHJ1biB0ZXN0CgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgoKCg.jF_TK1gloSUxKj3LJbfXoUSXEw3_rYPqOvV1ySC3GbY \ No newline at end of file From d5ba554f5e2fdaf7630c4e6a00fdbe1c175e1589 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:38:57 +0100 Subject: [PATCH 32/76] test --- .coveralls.yml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .coveralls.yml diff --git a/.coveralls.yml b/.coveralls.yml deleted file mode 100644 index 39ab309..0000000 --- a/.coveralls.yml +++ /dev/null @@ -1 +0,0 @@ -repo_token: qF3DdYRXqumL4CrEvhNamuCpl27JFhM0t \ No newline at end of file From 9c993e7b15d9406a99976d05c73132f135f13f43 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:40:13 +0100 Subject: [PATCH 33/76] Adding coveralls to npm test.... --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9d4a3ae..e9c5cdb 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && nyc report --reporter=text-lcov > ./coverage/lcov.info", + "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && nyc report --reporter=text-lcov > ./coverage/lcov.info && coveralls", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" From d28e1b0656d0cf6bd75aaf3f7328297270ec1d6f Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:44:30 +0100 Subject: [PATCH 34/76] ... --- .drone.yml | 3 ++- .drone.yml.sig | 2 +- package.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 1a824d4..04707fe 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,8 +12,9 @@ pipeline: commands: - npm install --silent - npm install standard -g - - npm install istanbul-coveralls + - npm install coveralls -g - npm run test + - cat ./coverage/lcov.info | coveralls deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index 73ea784..10265d4 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gbnBtIGluc3RhbGwgaXN0YW5idWwtY292ZXJhbGxzCiAgICAgIC0gbnBtIHJ1biB0ZXN0CgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgoKCg.jF_TK1gloSUxKj3LJbfXoUSXEw3_rYPqOvV1ySC3GbY \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gbnBtIGluc3RhbGwgY292ZXJhbGxzIC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY292ZXJhbGxzCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgoKCg.bjDpgZrdV0QH_YuRoj0WCv1GqYjDJwMbupJov2bBriM \ No newline at end of file diff --git a/package.json b/package.json index e9c5cdb..9d4a3ae 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && nyc report --reporter=text-lcov > ./coverage/lcov.info && coveralls", + "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && nyc report --reporter=text-lcov > ./coverage/lcov.info", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" From 5099b09d11f80bacc37ff03373a2a1a6eaa5637f Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 16:55:18 +0100 Subject: [PATCH 35/76] Trying with codecov --- .drone.yml | 6 ++++-- .drone.yml.sig | 2 +- package.json | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 04707fe..118be6f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,12 +9,14 @@ pipeline: NODE_ENV: test COVERALLS_REPO_TOKEN: $$COVERALLS_TOKEN COVERALLS_TOKEN: $$COVERALLS_TOKEN + CODECOV_TOKEN: $$CODECOV_TOKEN + commands: - npm install --silent - npm install standard -g - - npm install coveralls -g + - npm install codecov -g - npm run test - - cat ./coverage/lcov.info | coveralls + - cat ./coverage/lcov.info | codecov deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index 10265d4..08f6c03 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICBjb21tYW5kczoKICAgICAgLSBucG0gaW5zdGFsbCAtLXNpbGVudAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gbnBtIGluc3RhbGwgY292ZXJhbGxzIC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY292ZXJhbGxzCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgoKCg.bjDpgZrdV0QH_YuRoj0WCv1GqYjDJwMbupJov2bBriM \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo.hQ4_CKWgIV34H-QmBdqesH6lRSN-hlijwYEbp9WMSW4 \ No newline at end of file diff --git a/package.json b/package.json index 9d4a3ae..09d2573 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "babel-preset-es2015": "^6.22.0", "babel-preset-react": "^6.23.0", "body-parser": "^1.16.0", + "codecov": "^1.0.1", "cookie-parser": "^1.4.3", "express": "^4.14.1", "express-session": "^1.15.0", @@ -71,6 +72,7 @@ "babel-preset-react": "^6.23.0", "chai": "^3.5.0", "check-dependencies": "^1.0.1", + "codecov": "^1.0.1", "coveralls": "^2.11.16", "enzyme": "^2.7.1", "eslint": "^3.15.0", From 7d1935d424f72f939e41b6af07f532feaee7e06f Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Mon, 6 Mar 2017 18:56:44 +0100 Subject: [PATCH 36/76] Get feedback from database, can add new --- src/server/app.js | 34 +++++++++++----- src/server/database/controllers/feedbacks.js | 42 +++++++++++++++----- src/server/database/controllers/messages.js | 15 +++++++ src/server/database/models/feedback.js | 4 +- src/server/database/models/message.js | 4 +- src/server/routes/index.js | 9 ++++- 6 files changed, 83 insertions(+), 25 deletions(-) diff --git a/src/server/app.js b/src/server/app.js index 49370a5..341c654 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -113,31 +113,36 @@ server.listen(app.get('port'), (err) => { const db = require('./database/models/index') const user = db['User'] -//const messageObj = db['Message'] -//const feedbackObj = db['Feedback'] +const messageObj = db['Message'] +const feedbackObj = db['Feedback'] const users = require('./database/controllers').users const messagesController = require('./database/controllers').messages const feedbacksController = require('./database/controllers').feedbacks +// Create tables, and drop them if they allready exists (force: true) user.sync({force: true}).then(function () { return user.create({ name: 'Pekka Foreleser' }) }) -/* + messageObj.sync({force: true}).then(function () { return messageObj.create({ text: "Just testing" }) + }) -feedbackObj.sync({force: true}).then(function () { +feedbackObj.sync().then(function () { + return feedbackObj.create({ - value: 0 + value: -1 }) + + }) -*/ + // Create a connection // var socket = io.connect('http://localhost::8000') var io = require('socket.io')(server) @@ -146,11 +151,18 @@ var io = require('socket.io')(server) io.sockets.on('connect', function (socket) { console.log('[app] connect') - // TODO: get x last messages in chat and send - // TODO: get status of feedback and send - var feedback = feedbacksController.getLastInterval().then(function (result) { return result}) - console.log('[app] connect: updateFeedbackInterval: ', feedback) - socket.emit('updateFeedbackInterval', feedback) + // feedbacksController.getAll() + + // TODO: get x last messages in chat and send + // TODO: get status of feedback and send + var feedback = feedbacksController.getLastIntervalNeg().then(function(resultNeg) { + console.log("ResultNeg: ", resultNeg) + feedbacksController.getLastIntervalPos().then(function(resultPos) { + console.log("ResultPos: ", resultPos) + socket.emit('updateFeedbackInterval', [resultNeg, resultPos]) + console.log("After emit: ", [resultNeg, resultPos]) + }) + }) }) // Listen for connections diff --git a/src/server/database/controllers/feedbacks.js b/src/server/database/controllers/feedbacks.js index babbbbf..fb160dc 100644 --- a/src/server/database/controllers/feedbacks.js +++ b/src/server/database/controllers/feedbacks.js @@ -3,14 +3,19 @@ const Feedback = require('../models/index').Feedback // Controller for Feedback model const MIN = 60000 + module.exports = { // Create a new Feedback using model.create() create (req) { - console.log('[feedbacks] create req: ', req.value) + console.log('[feedbacks] create req: ', req, "param: ", req.value) + console.log("Rec.body: ", req.body) return Feedback.create({ value: req.value }) + .then(function (newFeedback) { + console.log("New feedback created with value", newFeedback.value) + }) }, // Edit an existing Feedback details using model.update() @@ -24,25 +29,44 @@ module.exports = { }, // For last 5 min - getLastInterval (req) { + getLastIntervalNeg () { return Feedback.count({ where: { // TODO: just use createdAt? - /*time: { + time: { // Set to 5 * MIN - $between: [new Date(), new Date(new Date - 5 * 1000)] + $between: [new Date(new Date - 5 * MIN), new Date()] }, - */ + value: -1 } - }).then(function (result) { - console.log('[feedbacks] getLastInterval neg:', result) - return result + }) + }, + + // For last 5 min + getLastIntervalPos () { + return Feedback.count({ + where: { + // TODO: just use createdAt? + time: { + // Set to 5 * MIN + $between: [new Date(new Date - 5 * MIN), new Date()] + }, + + value: 1 + } + }) + }, + + getAll() { + return Feedback.findAll() + .then(function (result) { + console.log(result) }) }, getAllLecture (req) { - return Feedback.findAll({ + Feedback.findAll({ where: { // TODO: just use createdAt? time: { diff --git a/src/server/database/controllers/messages.js b/src/server/database/controllers/messages.js index 1f5384e..6c95e38 100644 --- a/src/server/database/controllers/messages.js +++ b/src/server/database/controllers/messages.js @@ -48,6 +48,21 @@ module.exports = { }) }, + //Get last 10 + getLastTen (req, res) { + return Message.all({ + where: { + id: req.params.id + } + }) + .then(function (deletedRecords) { + res.status(200).json(deletedRecords) + }) + .catch(function (error) { + res.status(500).json(error) + }) + }, + // Retrive an existing Message by the unique ID retrieve (req, res) { return Message diff --git a/src/server/database/models/feedback.js b/src/server/database/models/feedback.js index f5870e1..105d0f0 100644 --- a/src/server/database/models/feedback.js +++ b/src/server/database/models/feedback.js @@ -23,12 +23,12 @@ module.exports = function (sequelize, DataTypes) { // Associations to other models associate: function (models) { // associations can be defined here - Feedback.belongsTo(models.User, { + /*Feedback.belongsTo(models.User, { onDelete: 'CASCADE', foreignKey: { allowNull: true } - }) + })*/ }, }, diff --git a/src/server/database/models/message.js b/src/server/database/models/message.js index 2e000bd..1d81d6c 100644 --- a/src/server/database/models/message.js +++ b/src/server/database/models/message.js @@ -32,6 +32,7 @@ module.exports = function (sequelize, DataTypes) { }, }, { classMethods: { + /* assosiate: function(models) { Message.belongsTo(models.User, { onDelete: 'CASCADE', @@ -39,8 +40,9 @@ module.exports = function (sequelize, DataTypes) { allowNull: true } }) - } + }*/ } }) + return Message } diff --git a/src/server/routes/index.js b/src/server/routes/index.js index cd8dc6a..16ba896 100644 --- a/src/server/routes/index.js +++ b/src/server/routes/index.js @@ -4,8 +4,8 @@ const path = require('path') const passport = require('passport') const userController = require('./controllers').user -const messageController = require('./controllers').message -const feedbackCOntroller = require('./controllers').feedback +const messagesController = require('./controllers').messages +const feedbacskCOntroller = require('./controllers').feedbacks module.exports = (app) => { // Go to index.html @@ -38,6 +38,11 @@ module.exports = (app) => { app.get('/login', passport.authenticate('passport-openid-connect', {'successReturnToOrRedirect': '/'})) app.get('/callback', passport.authenticate('passport-openid-connect', {'callback': true, 'successReturnToOrRedirect': '/'})) + + // Related to database + app.post('/', messages) + + /** app.post('/api/todos', todosController.create) app.get('/api/todos', todosController.list) From 16c637768567ce0ed701275b284b254ced0e4365 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 20:57:32 +0100 Subject: [PATCH 37/76] Adding client test and node_modules volume --- .drone.yml | 7 +++++++ .drone.yml.sig | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 118be6f..f31bb08 100644 --- a/.drone.yml +++ b/.drone.yml @@ -17,6 +17,9 @@ pipeline: - npm install codecov -g - npm run test - cat ./coverage/lcov.info | codecov + - npm run test-client + volumes: + - "/viestinta_cache/node_modules:/node_modules" deploy: image: plugins/ssh @@ -39,5 +42,9 @@ services: POSTGRES_PASSWORD: viestintacentos POSTGRES_DB: viestintadb_dev +cache: + mount: + - node_modules + diff --git a/.drone.yml.sig b/.drone.yml.sig index 08f6c03..968018e 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKCgo.hQ4_CKWgIV34H-QmBdqesH6lRSN-hlijwYEbp9WMSW4 \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgICAtIG5wbSBydW4gdGVzdC1jbGllbnQKICAgIHZvbHVtZXM6CiAgICAgIC0gIi92aWVzdGludGFfY2FjaGUvbm9kZV9tb2R1bGVzOi9ub2RlX21vZHVsZXMiCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgpjYWNoZToKICBtb3VudDoKICAgIC0gbm9kZV9tb2R1bGVzCgoKCg.rZJHxd7J2rK9lesaQxBTJYTTBdaEpL9l17MpMox6-CE \ No newline at end of file From b8867f44353b654f412405e499acc1779edc274c Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 21:02:39 +0100 Subject: [PATCH 38/76] Trying modified volume --- .drone.yml | 2 +- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index f31bb08..8d1c264 100644 --- a/.drone.yml +++ b/.drone.yml @@ -19,7 +19,7 @@ pipeline: - cat ./coverage/lcov.info | codecov - npm run test-client volumes: - - "/viestinta_cache/node_modules:/node_modules" + - "/root/viestinta_cache/node_modules:/node_modules" deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index 968018e..5a59979 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgICAtIG5wbSBydW4gdGVzdC1jbGllbnQKICAgIHZvbHVtZXM6CiAgICAgIC0gIi92aWVzdGludGFfY2FjaGUvbm9kZV9tb2R1bGVzOi9ub2RlX21vZHVsZXMiCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgpjYWNoZToKICBtb3VudDoKICAgIC0gbm9kZV9tb2R1bGVzCgoKCg.rZJHxd7J2rK9lesaQxBTJYTTBdaEpL9l17MpMox6-CE \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgICAtIG5wbSBydW4gdGVzdC1jbGllbnQKICAgIHZvbHVtZXM6CiAgICAgIC0gIi9yb290L3ZpZXN0aW50YV9jYWNoZS9ub2RlX21vZHVsZXM6L25vZGVfbW9kdWxlcyIKCiAgZGVwbG95OgogICAgaW1hZ2U6IHBsdWdpbnMvc3NoCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IHByb2R1Y3Rpb24KICAgIGhvc3Q6IHN0b2trZXJzLm5vCiAgICBwb3J0OiAyMjAxNAogICAgY29tbWFuZHM6CiAgICAgIC0gYmFzaCAvc2NyaXB0cy9kZXBsb3ktdmllc3RpbnRhLXByb2Quc2gKCnNlcnZpY2VzOgogICAgcG9zdGdyZXM6CiAgICAgIGltYWdlOiBwb3N0Z3Jlczo5LjYKICAgICAgY29udGFpbmVyX25hbWU6IHZpZXN0aW50YV9wb3N0Z3JlcwogICAgICBwb3J0czoKICAgICAgICAtICI1NDMyOjU0MzIiCiAgICAgIGVudmlyb25tZW50OgogICAgICAgIFBPU1RHUkVTX1VTRVI6IHBvc3RncmVzCiAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHZpZXN0aW50YWNlbnRvcwogICAgICAgIFBPU1RHUkVTX0RCOiB2aWVzdGludGFkYl9kZXYKCmNhY2hlOgogIG1vdW50OgogICAgLSBub2RlX21vZHVsZXMKCgoK.VYCL8tjV2GzExp-Zr7MP3stBxQJBIoLGcQamG3cVQHM \ No newline at end of file From 95f1f8088cb0d38de2e5b4d3c559429984cea36a Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 21:12:29 +0100 Subject: [PATCH 39/76] Modified module root --- .drone.yml | 2 +- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 8d1c264..f31bb08 100644 --- a/.drone.yml +++ b/.drone.yml @@ -19,7 +19,7 @@ pipeline: - cat ./coverage/lcov.info | codecov - npm run test-client volumes: - - "/root/viestinta_cache/node_modules:/node_modules" + - "/viestinta_cache/node_modules:/node_modules" deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index 5a59979..968018e 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgICAtIG5wbSBydW4gdGVzdC1jbGllbnQKICAgIHZvbHVtZXM6CiAgICAgIC0gIi9yb290L3ZpZXN0aW50YV9jYWNoZS9ub2RlX21vZHVsZXM6L25vZGVfbW9kdWxlcyIKCiAgZGVwbG95OgogICAgaW1hZ2U6IHBsdWdpbnMvc3NoCiAgICB3aGVuOgogICAgICBldmVudDogcHVzaAogICAgICBicmFuY2g6IHByb2R1Y3Rpb24KICAgIGhvc3Q6IHN0b2trZXJzLm5vCiAgICBwb3J0OiAyMjAxNAogICAgY29tbWFuZHM6CiAgICAgIC0gYmFzaCAvc2NyaXB0cy9kZXBsb3ktdmllc3RpbnRhLXByb2Quc2gKCnNlcnZpY2VzOgogICAgcG9zdGdyZXM6CiAgICAgIGltYWdlOiBwb3N0Z3Jlczo5LjYKICAgICAgY29udGFpbmVyX25hbWU6IHZpZXN0aW50YV9wb3N0Z3JlcwogICAgICBwb3J0czoKICAgICAgICAtICI1NDMyOjU0MzIiCiAgICAgIGVudmlyb25tZW50OgogICAgICAgIFBPU1RHUkVTX1VTRVI6IHBvc3RncmVzCiAgICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IHZpZXN0aW50YWNlbnRvcwogICAgICAgIFBPU1RHUkVTX0RCOiB2aWVzdGludGFkYl9kZXYKCmNhY2hlOgogIG1vdW50OgogICAgLSBub2RlX21vZHVsZXMKCgoK.VYCL8tjV2GzExp-Zr7MP3stBxQJBIoLGcQamG3cVQHM \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgICAtIG5wbSBydW4gdGVzdC1jbGllbnQKICAgIHZvbHVtZXM6CiAgICAgIC0gIi92aWVzdGludGFfY2FjaGUvbm9kZV9tb2R1bGVzOi9ub2RlX21vZHVsZXMiCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgpjYWNoZToKICBtb3VudDoKICAgIC0gbm9kZV9tb2R1bGVzCgoKCg.rZJHxd7J2rK9lesaQxBTJYTTBdaEpL9l17MpMox6-CE \ No newline at end of file From 991539677653d189c21d2983e441785cd0c2d66a Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 21:20:00 +0100 Subject: [PATCH 40/76] Trying more volumes stuff --- .drone.yml | 3 +-- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index f31bb08..688d69b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -17,9 +17,8 @@ pipeline: - npm install codecov -g - npm run test - cat ./coverage/lcov.info | codecov - - npm run test-client volumes: - - "/viestinta_cache/node_modules:/node_modules" + - "/viestinta_cache/node_modules:./node_modules" deploy: image: plugins/ssh diff --git a/.drone.yml.sig b/.drone.yml.sig index 968018e..041a183 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgICAtIG5wbSBydW4gdGVzdC1jbGllbnQKICAgIHZvbHVtZXM6CiAgICAgIC0gIi92aWVzdGludGFfY2FjaGUvbm9kZV9tb2R1bGVzOi9ub2RlX21vZHVsZXMiCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgpjYWNoZToKICBtb3VudDoKICAgIC0gbm9kZV9tb2R1bGVzCgoKCg.rZJHxd7J2rK9lesaQxBTJYTTBdaEpL9l17MpMox6-CE \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgdm9sdW1lczoKICAgICAgLSAiL3ZpZXN0aW50YV9jYWNoZS9ub2RlX21vZHVsZXM6Li9ub2RlX21vZHVsZXMiCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgpjYWNoZToKICBtb3VudDoKICAgIC0gbm9kZV9tb2R1bGVzCgoKCg.jZrnwxj6rrYSmVnEMHWxubdE3xRN2r2T6UAXzBDvCV0 \ No newline at end of file From 955a5b794b2975e35dbcab4a106893c3defef776 Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 21:28:06 +0100 Subject: [PATCH 41/76] Trying other node_modules config --- .drone.yml | 9 ++++++--- .drone.yml.sig | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 688d69b..576a577 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,13 +12,16 @@ pipeline: CODECOV_TOKEN: $$CODECOV_TOKEN commands: - - npm install --silent + - cp -a /drone/node_modules /root + - rm -rf /drone/node_modules + - npm install --depth=0 --quiet - npm install standard -g - npm install codecov -g - npm run test - cat ./coverage/lcov.info | codecov + - cp -a /root/node_modules /drone volumes: - - "/viestinta_cache/node_modules:./node_modules" + - "/drone/node_modules" deploy: image: plugins/ssh @@ -43,7 +46,7 @@ services: cache: mount: - - node_modules + - /drone/node_modules diff --git a/.drone.yml.sig b/.drone.yml.sig index 041a183..5b90a06 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIG5wbSBpbnN0YWxsIC0tc2lsZW50CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgdm9sdW1lczoKICAgICAgLSAiL3ZpZXN0aW50YV9jYWNoZS9ub2RlX21vZHVsZXM6Li9ub2RlX21vZHVsZXMiCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgpjYWNoZToKICBtb3VudDoKICAgIC0gbm9kZV9tb2R1bGVzCgoKCg.jZrnwxj6rrYSmVnEMHWxubdE3xRN2r2T6UAXzBDvCV0 \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIGNwIC1hIC9kcm9uZS9ub2RlX21vZHVsZXMgL3Jvb3QKICAgICAgLSBybSAtcmYgL2Ryb25lL25vZGVfbW9kdWxlcwogICAgICAtIG5wbSBpbnN0YWxsIC0tZGVwdGg9MCAtLXF1aWV0CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgICAtIGNwIC1hIC9yb290L25vZGVfbW9kdWxlcyAvZHJvbmUKICAgIHZvbHVtZXM6CiAgICAgIC0gIi9kcm9uZS9ub2RlX21vZHVsZXMiCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgpjYWNoZToKICBtb3VudDoKICAgIC0gL2Ryb25lL25vZGVfbW9kdWxlcwoKCgo.H_J4ldq3QVzV9nmIuI-VhHVkpoHjC4gsqFmmf2V7Zig \ No newline at end of file From dc2d2e8de0ac219f9c1e84ddcba6698476a7801c Mon Sep 17 00:00:00 2001 From: frozenlight Date: Mon, 6 Mar 2017 21:30:57 +0100 Subject: [PATCH 42/76] Trying other node_modules config.. --- .drone.yml | 1 - .drone.yml.sig | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 576a577..2d09410 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,7 +13,6 @@ pipeline: commands: - cp -a /drone/node_modules /root - - rm -rf /drone/node_modules - npm install --depth=0 --quiet - npm install standard -g - npm install codecov -g diff --git a/.drone.yml.sig b/.drone.yml.sig index 5b90a06..eacc854 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIGNwIC1hIC9kcm9uZS9ub2RlX21vZHVsZXMgL3Jvb3QKICAgICAgLSBybSAtcmYgL2Ryb25lL25vZGVfbW9kdWxlcwogICAgICAtIG5wbSBpbnN0YWxsIC0tZGVwdGg9MCAtLXF1aWV0CiAgICAgIC0gbnBtIGluc3RhbGwgc3RhbmRhcmQgLWcKICAgICAgLSBucG0gaW5zdGFsbCBjb2RlY292IC1nCiAgICAgIC0gbnBtIHJ1biB0ZXN0CiAgICAgIC0gY2F0IC4vY292ZXJhZ2UvbGNvdi5pbmZvIHwgY29kZWNvdgogICAgICAtIGNwIC1hIC9yb290L25vZGVfbW9kdWxlcyAvZHJvbmUKICAgIHZvbHVtZXM6CiAgICAgIC0gIi9kcm9uZS9ub2RlX21vZHVsZXMiCgogIGRlcGxveToKICAgIGltYWdlOiBwbHVnaW5zL3NzaAogICAgd2hlbjoKICAgICAgZXZlbnQ6IHB1c2gKICAgICAgYnJhbmNoOiBwcm9kdWN0aW9uCiAgICBob3N0OiBzdG9ra2Vycy5ubwogICAgcG9ydDogMjIwMTQKICAgIGNvbW1hbmRzOgogICAgICAtIGJhc2ggL3NjcmlwdHMvZGVwbG95LXZpZXN0aW50YS1wcm9kLnNoCgpzZXJ2aWNlczoKICAgIHBvc3RncmVzOgogICAgICBpbWFnZTogcG9zdGdyZXM6OS42CiAgICAgIGNvbnRhaW5lcl9uYW1lOiB2aWVzdGludGFfcG9zdGdyZXMKICAgICAgcG9ydHM6CiAgICAgICAgLSAiNTQzMjo1NDMyIgogICAgICBlbnZpcm9ubWVudDoKICAgICAgICBQT1NUR1JFU19VU0VSOiBwb3N0Z3JlcwogICAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiB2aWVzdGludGFjZW50b3MKICAgICAgICBQT1NUR1JFU19EQjogdmllc3RpbnRhZGJfZGV2CgpjYWNoZToKICBtb3VudDoKICAgIC0gL2Ryb25lL25vZGVfbW9kdWxlcwoKCgo.H_J4ldq3QVzV9nmIuI-VhHVkpoHjC4gsqFmmf2V7Zig \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgdGVzdDogCiAgICBpbWFnZTogdmllc3RpbnRhL25vZGU6dmllc3RpbnRhLXRlc3QKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbcHVzaCxwdWxsX3JlcXVlc3RdCiAgICAgIGJyYW5jaGVzOiBbbWFzdGVyLCByZWFjdC1zdGFydF0KICAgIGVudmlyb25tZW50OgogICAgICBEQVRBQkFTRV9VUkw6IHBvc3RncmVzOi8vcG9zdGdyZXM6dmllc3RpbnRhY2VudG9zQDEyNy4wLjAuMTo1NDMyCiAgICAgIE5PREVfRU5WOiB0ZXN0CiAgICAgIENPVkVSQUxMU19SRVBPX1RPS0VOOiAkJENPVkVSQUxMU19UT0tFTgogICAgICBDT1ZFUkFMTFNfVE9LRU46ICQkQ09WRVJBTExTX1RPS0VOCiAgICAgIENPREVDT1ZfVE9LRU46ICQkQ09ERUNPVl9UT0tFTgoKICAgIGNvbW1hbmRzOgogICAgICAtIGNwIC1hIC9kcm9uZS9ub2RlX21vZHVsZXMgL3Jvb3QKICAgICAgLSBucG0gaW5zdGFsbCAtLWRlcHRoPTAgLS1xdWlldAogICAgICAtIG5wbSBpbnN0YWxsIHN0YW5kYXJkIC1nCiAgICAgIC0gbnBtIGluc3RhbGwgY29kZWNvdiAtZwogICAgICAtIG5wbSBydW4gdGVzdAogICAgICAtIGNhdCAuL2NvdmVyYWdlL2xjb3YuaW5mbyB8IGNvZGVjb3YKICAgICAgLSBjcCAtYSAvcm9vdC9ub2RlX21vZHVsZXMgL2Ryb25lCiAgICB2b2x1bWVzOgogICAgICAtICIvZHJvbmUvbm9kZV9tb2R1bGVzIgoKICBkZXBsb3k6CiAgICBpbWFnZTogcGx1Z2lucy9zc2gKICAgIHdoZW46CiAgICAgIGV2ZW50OiBwdXNoCiAgICAgIGJyYW5jaDogcHJvZHVjdGlvbgogICAgaG9zdDogc3Rva2tlcnMubm8KICAgIHBvcnQ6IDIyMDE0CiAgICBjb21tYW5kczoKICAgICAgLSBiYXNoIC9zY3JpcHRzL2RlcGxveS12aWVzdGludGEtcHJvZC5zaAoKc2VydmljZXM6CiAgICBwb3N0Z3JlczoKICAgICAgaW1hZ2U6IHBvc3RncmVzOjkuNgogICAgICBjb250YWluZXJfbmFtZTogdmllc3RpbnRhX3Bvc3RncmVzCiAgICAgIHBvcnRzOgogICAgICAgIC0gIjU0MzI6NTQzMiIKICAgICAgZW52aXJvbm1lbnQ6CiAgICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXMKICAgICAgICBQT1NUR1JFU19QQVNTV09SRDogdmllc3RpbnRhY2VudG9zCiAgICAgICAgUE9TVEdSRVNfREI6IHZpZXN0aW50YWRiX2RldgoKY2FjaGU6CiAgbW91bnQ6CiAgICAtIC9kcm9uZS9ub2RlX21vZHVsZXMKCgoK.Rs-UC3geCk_5gYUXlbmTIsNXGdBYZIsgEVQdYj_TZn0 \ No newline at end of file From cb23a812d0d690756a302abf6e2d8b53c7bd3c87 Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Mon, 6 Mar 2017 22:27:53 +0100 Subject: [PATCH 43/76] Doesn't count correctly --- src/client/components/FeedbackWindow.js | 1 + src/server/app.js | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/client/components/FeedbackWindow.js b/src/client/components/FeedbackWindow.js index f52e4cc..624a043 100644 --- a/src/client/components/FeedbackWindow.js +++ b/src/client/components/FeedbackWindow.js @@ -55,6 +55,7 @@ export default class FeedbackWindow extends Component { this.setState({ feedback: feedbacks }) + console.log("Feedback: ", this.state.feedback) } diff --git a/src/server/app.js b/src/server/app.js index 341c654..ba10ec3 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -159,10 +159,10 @@ io.sockets.on('connect', function (socket) { console.log("ResultNeg: ", resultNeg) feedbacksController.getLastIntervalPos().then(function(resultPos) { console.log("ResultPos: ", resultPos) - socket.emit('updateFeedbackInterval', [resultNeg, resultPos]) - console.log("After emit: ", [resultNeg, resultPos]) + socket.emit('update-feedback-interval', [resultNeg, resultPos]) }) }) + console.log("[app] connect - After sending feedback in") }) // Listen for connections @@ -201,10 +201,14 @@ io.sockets.on('connection', function (socket) { }) // Called every x minuts - socket.on('updateFeedbackInterval', function () { + socket.on('update-feedback-interval', function () { // Get feedback from database for past x minuts - - io.sockets.emit('updateFeedbackInterval') + var feedback = feedbacksController.getLastIntervalNeg().then(function(resultNeg) { + feedbacksController.getLastIntervalPos().then(function(resultPos) { + io.sockets.emit('update-feedback-interval', [resultNeg, resultPos]) + }) + }) + io.sockets.emit('update-feedback-interval') }) }) From a9ae5d365fe9742b1c0c32df5d22fabc15ff97df Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 17:19:22 +0100 Subject: [PATCH 44/76] Theme handled in single file --- src/client/components/ChatApp.js | 49 +++++++++++++++++++++------ src/client/components/ChatBox.js | 31 +++++------------ src/client/components/FeedbackMenu.js | 18 ++-------- 3 files changed, 48 insertions(+), 50 deletions(-) diff --git a/src/client/components/ChatApp.js b/src/client/components/ChatApp.js index 01da251..d309520 100644 --- a/src/client/components/ChatApp.js +++ b/src/client/components/ChatApp.js @@ -1,12 +1,38 @@ import React, { Component } from 'react' import socket from '../../server/socket' +// Theme +import {deepOrange500} from 'material-ui/styles/colors' +import getMuiTheme from 'material-ui/styles/getMuiTheme' +import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider' + +// Components import ChatBox from './ChatBox' import MessageList from './MessageList' import Header from './Header' import Login from './Login' import FeedbackBox from './FeedbackBox' +const styles = { + container: { + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + paddingTop: 0, + height: 'auto', + }, + element: { + display: 'flex', + } +}; + +const muiTheme = getMuiTheme({ + palette: { + primary1Color: '#ec7c2f', // Orange + accent1Color: '#2daae4', // Blue + } +}) + export default class ChatApp extends Component { // At beginning there is no msg and the text-field is empty constructor (props) { @@ -24,17 +50,18 @@ export default class ChatApp extends Component { render () { return ( -
-
- - // List of messages - - // Inputfield for user - - // Sidebar with feedback-options - -
- + +
+
+ + // List of messages + + // Inputfield for user + + // Sidebar with feedback-options + +
+
) } } diff --git a/src/client/components/ChatBox.js b/src/client/components/ChatBox.js index bb02c1b..3bce7c2 100644 --- a/src/client/components/ChatBox.js +++ b/src/client/components/ChatBox.js @@ -3,19 +3,6 @@ import socket from '../../server/socket' import RaisedButton from 'material-ui/RaisedButton' -import {deepOrange500} from 'material-ui/styles/colors' -import getMuiTheme from 'material-ui/styles/getMuiTheme' -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider' - - -import injectTapEventPlugin from 'react-tap-event-plugin'; - - -const muiTheme = getMuiTheme({ - palette: { - accent1Color: deepOrange500, - } -}) // Text input field export default class ChatBox extends Component { @@ -65,16 +52,14 @@ export default class ChatBox extends Component { render () { return ( - -
-

Ny melding

- - -
-
+
+

Ny melding

+ + +
) } } diff --git a/src/client/components/FeedbackMenu.js b/src/client/components/FeedbackMenu.js index f6af666..624cc3e 100644 --- a/src/client/components/FeedbackMenu.js +++ b/src/client/components/FeedbackMenu.js @@ -3,22 +3,10 @@ import socket from '../../server/socket' import RaisedButton from 'material-ui/RaisedButton' -import {deepOrange500} from 'material-ui/styles/colors' -import getMuiTheme from 'material-ui/styles/getMuiTheme' -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider' - -import injectTapEventPlugin from 'react-tap-event-plugin' - const style = { margin: 12 } -const muiTheme = getMuiTheme({ - palette: { - accent1Color: deepOrange500 - } -}) - export default class FeedbackMenu extends Component { constructor (props) { @@ -50,12 +38,10 @@ export default class FeedbackMenu extends Component { render () { return ( -
- - + +
-
) } } From d6d655213d9cb3b85100c42ec029dce79c5c88fe Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 17:21:10 +0100 Subject: [PATCH 45/76] Chat field example included --- src/client/components/MessageList.js | 82 +++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 3 deletions(-) diff --git a/src/client/components/MessageList.js b/src/client/components/MessageList.js index 665fa1a..d33ace5 100644 --- a/src/client/components/MessageList.js +++ b/src/client/components/MessageList.js @@ -1,7 +1,37 @@ import React, { Component } from 'react' import socket from '../../server/socket' +import Paper from 'material-ui/Paper'; + import Message from './Message' +const styles = { + + parent: { + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + + maxWidth: 500, + maxHeight: 400, + width: 'auto', + height: 'auto', + + padding: 15, + + overflowY: 'auto', + minHeight: 0, + }, + + child: { + minHeight: 'auto', + width: '100%', + + padding: 10, + margin: 5, + textAlign: 'left', + }, +}; + export default class MessageList extends Component { constructor (props) { @@ -40,9 +70,55 @@ export default class MessageList extends Component { }) return ( -
    - {list} -
+ + +

This is some text.

+
+ +

This is some more text.

+
+ +

This is some more text. With lots of words, + to make the message really long, and this is only + to see what happens. + This is some more text. With lots of words, + to make the message really long, and this is only + to see what happens. +

+
+ +

Student:

+

This text also contains numbers 1-2-3-4.

+
+ +

Student:

+

This text also contains numbers 1-2-3-4.

+
+ +

Student:

+

This text also contains numbers 1-2-3-4.

+
+ + +
); } From 600dec94ea5992ac5635c3dbabf51751d7c467f0 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 17:22:54 +0100 Subject: [PATCH 46/76] Broader device support Background and viewport --- src/client/index.html | 5 +++++ src/static/css/style.css | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/client/index.html b/src/client/index.html index 962570d..2efec78 100644 --- a/src/client/index.html +++ b/src/client/index.html @@ -7,6 +7,11 @@ + + diff --git a/src/static/css/style.css b/src/static/css/style.css index 73a6a48..2d7fade 100644 --- a/src/static/css/style.css +++ b/src/static/css/style.css @@ -1,12 +1,22 @@ html { - font-family: 'Roboto', sans-serif; + font-family: 'Roboto', sans-serif; + min-height: 100%; } body { font-size: 13px; line-height: 20px; - background: #2DAAE4; + height: 100%; + + background-repeat: no-repeat; + /* Maximum browser support */ + background: -webkit-gradient(linear, center top, center bottom, from(#2DAAE4), to(#15729E)); + background: -webkit-linear-gradient(#2DAAE4, #15729E); + background: -moz-linear-gradient(#2DAAE4, #15729E); + background: -o-linear-gradient(#2DAAE4, #15729E); + background: -ms-linear-gradient(#2DAAE4, #15729E); + background: linear-gradient(#2DAAE4, #15729E); } #chat-app { From 9d5937dd741c1cc5789c4c5128ab8304cbbaefe6 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 17:23:54 +0100 Subject: [PATCH 47/76] =?UTF-8?q?Added=20Viestint=C3=A4=20logo=20and=20FEI?= =?UTF-8?q?DE=20icons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/static/images/feide_100px_white.png | Bin 0 -> 1545 bytes src/static/images/feide_32px.png | Bin 0 -> 1237 bytes src/static/images/logo.png | Bin 34470 -> 34293 bytes src/static/images/logo_shadow.png | Bin 0 -> 65802 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/static/images/feide_100px_white.png create mode 100644 src/static/images/feide_32px.png create mode 100644 src/static/images/logo_shadow.png diff --git a/src/static/images/feide_100px_white.png b/src/static/images/feide_100px_white.png new file mode 100644 index 0000000000000000000000000000000000000000..e64a04fba3d6625a46e30dc7af25e5fead5a7db6 GIT binary patch literal 1545 zcmZXUdpOez7{`BD?j&?v%B+%>%WN~&l*`79+%h9|Qq$aHEjAOU<8J6g7^x|Q9!f;|2Bz-P@ITv01#^k00}7our3)T2mpWq2LK@%0IUiD zK#Nw?Vm?>HC7! zMV-GvV-lZif%m9_7k9-bnS^djII;Q}1b7k3-62sY$rj(Egym&HYKPlA9Se0Y=-L%< zjryF7y^?EnumvdQpuLB-MyIvdj{BUH+*|b!Gelf8_l7WJEx@taEh%@m_(sQ!?C7!; z^ZF7n=h;ZCXA+x%z*X0WyG_0l;AfPC!2T zo(N1K)^Q=^0L>jKybygI=e9MHdM423FA_{cn@`8EpKEpO{CGu5jWq$!Wr}Ke3ACJ} zd~BT}D>B$M9c8LpM(rH54-;a;0(`dK9iRS+Kjr7~Ny=jn3WsUbn-LQ~r4+nYv|O?k zWwY}p;ExQQ3u3fb8S;Oc>zddueC&GRPCugAi$qa{WCySA zVHqfD(m$S9l#}qNj1b<_Di(v%TFIc$!GF_cWWqLB_1&32M}vg2&rfxwO%_*%n1uMHV~zZyKQ$ zVPTphEmrABUDf@%`#ZX6L!^3z%h7}FQB6GM77?ExMJWmd-Lc=Kn{{yx+FsZ`I*2GXhB-50+xFgKtedF6?x&}ZFT(fELu3iXj zK48Y5xR&S;NeI@eeoAU=;cnSEEC<6Gve%0A>zBSZ%Cj(hn(lV|%>ivMZCg9EL9hlcYiDu1 zK#%u?j_3lnSEIo%2YwYfAl_ChT}&tXRLUtAulX+bpAD)^8Aj`ScC*dobi9Xa*|T9? zH~K5s`1?aGNR?)G4;B45GN}>9t<+fQAsGCjc8}OLO9GRHR~n{Mq`qJkCUz+79=4nt z>5B|&;&=0mA7Gl!CRZvMq|G=qZ`Y8j5f#m!(rlga1FB~*D>;X4;NJveba~>L!ulK> zi&8Z{5GA~T@@`0OL$%;wb=Cv>Asz>dV-45LeZ)#n3_qtADN}wv#{G1>FFnAY9%x00 z43r3fgd@%HM>;UXPK*afg(4dR|2jKq#6mCw41km}J r;B`KT&h(EA1ei=FER=dKisDZTgq@EJ<}4i1l^g-icz1^fIC9cIwwPx#32;bRa{vHbMgRa@MgbI*LqPxl00(qQO+^RU1RV+)6;)gY-~a#wXGugsR7l5_ zR$WX}XBd9Y$0=(It#-gz0Lz~fG$kWjG9j^&AR9z5fs0|X1hysXZieh?%-yJL*+MWe zk(tcM5*a2-+zq=Bqrs8zV-SJ{Xn{>=EiK?W!Qwg49_abm#i^x~_E4Uji|;#q-}m|Y zz2|-3hms@-vB5L!YTtl&_|dv;mUA!huUG)|0iF6#X0qw1;Y3Nwhh?;0rx1aPMc}hL zT^%<(J$FTpQ}8Ehb$Z=tWAm5V{G50R1V8tz?doFZEs5vlHwj5vU2%~%KSyOa2q55H z^Vyy3gjLw^1*6b(mZc%@{MSUI-h;sJSg?Nj)y6;b06kZ~olBkOC6t@E2 zp^@e8KUVJj1xW&sRQOI&*ELOE_6|EK49w*8P(ew5T0wtW!FW|YGc_&60cL7?ysBRI z8Y(P_@Y*Ku*`1;2^R1Ufo|oc=$n*29mqQ#ryEBr2_xVT7HL`{4dRO!)g1}m5SnG@= z2vH4O*Sq8hqvjgH=ifmvccCqG_NdO>bI(|Lt!y(^UduiAL^TWjkGTtN@*7INoH28a z#Pj<1-+k}S?^Hs55GN)~&OIb1wsk)vCh5Ex3d25f<^K=tN906fDG#EsCwxrN2}y$F3kFL&TQ6TrEbf&`08d!`}qat#2j*Aw-jOaMOn zGi8S@&kK>;3^wY`t<8V`Q?~axoB-6uOpsc` z%q0MX4WD;tB%V(wo;-U8N918=IB}e$RFuhcZn^t*JQ;qyRm!s*ifGg+6=j6h>(Xnh z0j%8XXRR}F5-3~|J2kU%zaKz)T{W%O5dg+!3#FnVNl#l^C0>YeMT-i2;qCfq%Oyw> zrJ{}JEC7gH##vu90ALzA7`M`m#77lwv@yBOHd&=2tQm)f_7zQY+sRmcJ)#IXP0bTn!6 za^xNvc)8}YJK0Iwwscg{S(b*pZ{v`TJH+qLot~av(XS|eHR|-bYGboS9sv7L*W2>_ z!GL#oblo<~xt4f_1wiX{YNIUQkEc}ZA>aQ8{rKM??D_gp00000NkvXXu0mjfT*XjD literal 0 HcmV?d00001 diff --git a/src/static/images/logo.png b/src/static/images/logo.png index 9d0619df40795dc0d73fceb992e733468e5d9342..f0041e1d861e861b469997b86770d5f64f08a1f4 100644 GIT binary patch delta 31189 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 diff --git a/src/static/images/logo_shadow.png b/src/static/images/logo_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..3b40d4067c4d95e3d2322215f2f45660919dc3dd GIT binary patch literal 65802 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 literal 0 HcmV?d00001 From 5f592653a218c46eb96e57530f119019ec24bb07 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 17:24:33 +0100 Subject: [PATCH 48/76] Logo in header --- src/client/client.js | 2 ++ src/client/components/Header.js | 32 +++++++++++++++++++++++++------- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/client/client.js b/src/client/client.js index 6dba447..e3752e3 100644 --- a/src/client/client.js +++ b/src/client/client.js @@ -5,7 +5,9 @@ import ChatApp from './components/ChatApp' import injectTapEventPlugin from 'react-tap-event-plugin'; +// Needed for onTouchTap injectTapEventPlugin(); + if (typeof window !== 'undefined') { ReactDOM.render( , diff --git a/src/client/components/Header.js b/src/client/components/Header.js index a4d6fca..4e68eb9 100644 --- a/src/client/components/Header.js +++ b/src/client/components/Header.js @@ -1,11 +1,29 @@ import React from 'react' +const styles = { + + parent: { + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + + maxWidth: 500, + width: 'auto', + height: 'auto', + }, + + img: { + width: '100%', + }, +}; + export default class Header extends React.Component { - render () { - return ( -
-

Velkommen til Viestinta!

-
- ) - } + render () { + return ( +
+ Viestintä Logo +
+ ) + } } From 59fd36c426168deac64187db6d1c2434e575874a Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 17:24:53 +0100 Subject: [PATCH 49/76] Created FEIDE login button --- src/client/components/Login.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/client/components/Login.js b/src/client/components/Login.js index a865865..1feb442 100644 --- a/src/client/components/Login.js +++ b/src/client/components/Login.js @@ -1,4 +1,5 @@ -import React from 'react' +import React from 'react'; +import RaisedButton from 'material-ui/RaisedButton'; const Login = React.createClass({ getInitialState () { @@ -11,10 +12,14 @@ const Login = React.createClass({ render () { return ( -
-
- -
+
+ } + />
) } From dcabb75d1a75276dd4102d4d9afdc85df8224a03 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 18:39:31 +0100 Subject: [PATCH 50/76] Chatbox (field) with Material-UI --- src/client/components/ChatBox.js | 54 +++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/src/client/components/ChatBox.js b/src/client/components/ChatBox.js index 3bce7c2..a27a087 100644 --- a/src/client/components/ChatBox.js +++ b/src/client/components/ChatBox.js @@ -1,8 +1,31 @@ -import React, { Component } from 'react' -import socket from '../../server/socket' +import React, { Component } from 'react'; +import socket from '../../server/socket'; -import RaisedButton from 'material-ui/RaisedButton' +import Paper from 'material-ui/Paper'; +import TextField from 'material-ui/TextField'; +import RaisedButton from 'material-ui/RaisedButton'; +const styles = { + parent: { + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + + maxWidth: 500, + width: '100%', + height: 80, + + padding: 10, + }, + textField: { + width: '100%', + marginRight: 5, + }, + btn: { + + }, +}; // Text input field export default class ChatBox extends Component { @@ -52,14 +75,23 @@ export default class ChatBox extends Component { render () { return ( -
-

Ny melding

- - -
+ + + + ) } } From fd8954bdcbe943cd6648cc98b76eebddfcfa0ea7 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 18:50:06 +0100 Subject: [PATCH 51/76] Correct commenting in 'render' function --- src/client/components/ChatApp.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/components/ChatApp.js b/src/client/components/ChatApp.js index d309520..f063249 100644 --- a/src/client/components/ChatApp.js +++ b/src/client/components/ChatApp.js @@ -54,11 +54,11 @@ export default class ChatApp extends Component {
- // List of messages + {/* List of messages */} - // Inputfield for user + {/* Inputfield for user */} - // Sidebar with feedback-options + {/* Sidebar with feedback-options */}
From 74c75200d7003a1872a54a4bfa029f0f029dca81 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Tue, 7 Mar 2017 18:50:22 +0100 Subject: [PATCH 52/76] Added margin to components --- src/client/components/ChatBox.js | 1 + src/client/components/MessageList.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/client/components/ChatBox.js b/src/client/components/ChatBox.js index a27a087..83de49d 100644 --- a/src/client/components/ChatBox.js +++ b/src/client/components/ChatBox.js @@ -16,6 +16,7 @@ const styles = { width: '100%', height: 80, + marginTop: 10, padding: 10, }, textField: { diff --git a/src/client/components/MessageList.js b/src/client/components/MessageList.js index d33ace5..8753698 100644 --- a/src/client/components/MessageList.js +++ b/src/client/components/MessageList.js @@ -16,6 +16,7 @@ const styles = { width: 'auto', height: 'auto', + marginTop: 10, padding: 15, overflowY: 'auto', From 86aba870bb9bcb94f5b5210455d9ec618d2f7fe4 Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Wed, 8 Mar 2017 14:33:05 +0100 Subject: [PATCH 53/76] Feedback is updated when you join --- src/client/components/FeedbackBox.js | 8 +-- src/client/components/FeedbackWindow.js | 35 +++++----- src/server/database/controllers/feedbacks.js | 59 ++++++++--------- src/server/database/controllers/message.js | 70 ++++++++++++++++++++ 4 files changed, 119 insertions(+), 53 deletions(-) create mode 100644 src/server/database/controllers/message.js diff --git a/src/client/components/FeedbackBox.js b/src/client/components/FeedbackBox.js index 2ddd922..a59e5a9 100644 --- a/src/client/components/FeedbackBox.js +++ b/src/client/components/FeedbackBox.js @@ -10,7 +10,7 @@ export default class FeedbackBox extends Component { super(props) this.state = { // [slow, fast] - feedback: [0,0] + feedback: [0, 0] } this.onClick = this.onClick.bind(this) @@ -20,9 +20,7 @@ export default class FeedbackBox extends Component { // Receiving updated feedback values updateFeedback (feedback) { console.log('In updateFeedback') - console.log('Slow in updateFeedback: ', feedback[0]) - - console.log('Fast in updateFeedback: ', feedback[1]) + console.log('Feedback: ', feedback) this.state.feedback = feedback } @@ -52,7 +50,7 @@ export default class FeedbackBox extends Component { return (
- { + if (!message) { + return res.status(404).send({ + message: 'Message Not Found' + }) + } + return res.status(200).send(message) + }) + .catch(error => res.status(400).send(error)) + } +} From e1cb9beb660433f30b734b5cbc30ca2227d93f23 Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Wed, 8 Mar 2017 15:06:17 +0100 Subject: [PATCH 54/76] Get last messages in correct order when joining --- src/client/components/Message.js | 2 +- src/client/components/MessageList.js | 22 ++++-- src/server/app.js | 35 +++++----- src/server/database/controllers/feedbacks.js | 2 - src/server/database/controllers/message.js | 70 -------------------- src/server/database/controllers/messages.js | 43 +++--------- 6 files changed, 45 insertions(+), 129 deletions(-) delete mode 100644 src/server/database/controllers/message.js diff --git a/src/client/components/Message.js b/src/client/components/Message.js index 3847690..8f712e4 100644 --- a/src/client/components/Message.js +++ b/src/client/components/Message.js @@ -4,7 +4,7 @@ export default class Message extends React.Component { render () { return (
- { this.props.text } + ( this.props.createdAt }) - { this.props.text }
) } diff --git a/src/client/components/MessageList.js b/src/client/components/MessageList.js index 665fa1a..ffc001b 100644 --- a/src/client/components/MessageList.js +++ b/src/client/components/MessageList.js @@ -10,11 +10,13 @@ export default class MessageList extends Component { messages: [] } - this.receiveMessage = this.receiveMessage.bind(this) + this.receiveMessage = this.receiveMessage.bind(this) + this.lastTenMessages = this.lastTenMessages.bind(this) } - componentDidMount() { + componentDidMount () { socket.on('receive-message', this.receiveMessage) + socket.on('last-ten-messages', this.lastTenMessages) } receiveMessage (msg) { @@ -25,9 +27,17 @@ export default class MessageList extends Component { messages.push(msg) this.setState({ messages: messages }) } - - render () { + lastTenMessages (msgList) { + console.log('lastTenMessages: ', msgList) + + console.log('lastTenMessages reversed: ', msgList.reverse()) + this.setState({ + messages: msgList + }) + } + + render () { var list = this.state.messages.map((message, i) => { console.log('Looping trought messages in messageList') @@ -43,7 +53,7 @@ export default class MessageList extends Component {
    {list}
- ); + ) } -} \ No newline at end of file +} diff --git a/src/server/app.js b/src/server/app.js index ba10ec3..2152be4 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -129,18 +129,14 @@ user.sync({force: true}).then(function () { messageObj.sync({force: true}).then(function () { return messageObj.create({ - text: "Just testing" + text: 'Just testing' }) - }) feedbackObj.sync().then(function () { - return feedbackObj.create({ value: -1 }) - - }) // Create a connection @@ -155,14 +151,21 @@ io.sockets.on('connect', function (socket) { // TODO: get x last messages in chat and send // TODO: get status of feedback and send - var feedback = feedbacksController.getLastIntervalNeg().then(function(resultNeg) { - console.log("ResultNeg: ", resultNeg) - feedbacksController.getLastIntervalPos().then(function(resultPos) { - console.log("ResultPos: ", resultPos) + var feedback = feedbacksController.getLastIntervalNeg().then(function (resultNeg) { + console.log('ResultNeg: ', resultNeg) + feedbacksController.getLastIntervalPos().then(function (resultPos) { + console.log('ResultPos: ', resultPos) socket.emit('update-feedback-interval', [resultNeg, resultPos]) }) }) - console.log("[app] connect - After sending feedback in") + + var lastTenMessages = messagesController.getLastTen().then(function (result) { + console.log('List of messages: ', result) + console.log('List of messages reversed: ', result.reverse()) + + socket.emit('last-ten-messages', result.reverse()) + }) + console.log('[app] connect - After sending feedback in') }) // Listen for connections @@ -186,7 +189,7 @@ io.sockets.on('connection', function (socket) { socket.on('new-message', function (msg) { console.log('[app] new-message: ' + msg) messagesController.create(msg) - + io.sockets.emit('receive-message', msg) }) @@ -203,11 +206,11 @@ io.sockets.on('connection', function (socket) { // Called every x minuts socket.on('update-feedback-interval', function () { // Get feedback from database for past x minuts - var feedback = feedbacksController.getLastIntervalNeg().then(function(resultNeg) { - feedbacksController.getLastIntervalPos().then(function(resultPos) { - io.sockets.emit('update-feedback-interval', [resultNeg, resultPos]) + var feedback = feedbacksController.getLastIntervalNeg().then(function (resultNeg) { + feedbacksController.getLastIntervalPos().then(function (resultPos) { + io.sockets.emit('update-feedback-interval', [resultNeg, resultPos]) + }) }) - }) io.sockets.emit('update-feedback-interval') }) }) @@ -215,4 +218,4 @@ io.sockets.on('connection', function (socket) { // To get static files app.use('/', express.static(path.join(__dirname, '../static'))) app.use('/css', express.static(path.join(__dirname, '../static/css'))) -app.use('/icons', express.static(path.join(__dirname, '../static/icons'))) \ No newline at end of file +app.use('/icons', express.static(path.join(__dirname, '../static/icons'))) diff --git a/src/server/database/controllers/feedbacks.js b/src/server/database/controllers/feedbacks.js index 97a1375..86e732f 100644 --- a/src/server/database/controllers/feedbacks.js +++ b/src/server/database/controllers/feedbacks.js @@ -8,8 +8,6 @@ module.exports = { // Create a new Feedback using model.create() create (req) { - console.log('[feedbacks] create req: ', req, 'param: ', req.value) - console.log('Rec.body: ', req.body) return Feedback.create({ value: req.value }) diff --git a/src/server/database/controllers/message.js b/src/server/database/controllers/message.js deleted file mode 100644 index 9cc04d7..0000000 --- a/src/server/database/controllers/message.js +++ /dev/null @@ -1,70 +0,0 @@ -const Message = require('../models/index').Message -// Controller for Message model - -module.exports = { - - // Create a new Message using model.create() - - create (req, res) { - return Message.create({ - time: new Date().now(), - text: req.body.text - console.log("Creating new message-object") - }) - .then(function (newMessage) { - res.status(200).json(newMessage) - }) - .catch(function (error) { - res.status(500).json(error) - }) - }, - - // Edit an existing Message details using model.update() - update (req, res) { - return Message.update(req.body, { - where: { - id: req.params.id - } - }) - .then(function (updatedRecords) { - res.status(200).json(updatedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) - }, - - // Delete an existing Message by the unique ID using model.destroy() - delete (req, res) { - return Message.destroy({ - where: { - id: req.params.id - } - }) - .then(function (deletedRecords) { - res.status(200).json(deletedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) - }, - - retrieve (req, res) { - return Message - .findById(req.params.messageId, { - include: [{ - model: Message, - as: 'message' - }] - }) - .then(message => { - if (!message) { - return res.status(404).send({ - message: 'Message Not Found' - }) - } - return res.status(200).send(message) - }) - .catch(error => res.status(400).send(error)) - } -} diff --git a/src/server/database/controllers/messages.js b/src/server/database/controllers/messages.js index 6c95e38..fe8cdb6 100644 --- a/src/server/database/controllers/messages.js +++ b/src/server/database/controllers/messages.js @@ -5,32 +5,20 @@ var Message = require('../models/index').Message module.exports = { // Create a new Message using model.create() - create (req, res) { + create (req) { return Message.create({ - time: new Date().now(), - text: req.body.text - }) - .then(function (newMessage) { - res.status(200).json(newMessage) - }) - .catch(function (error) { - res.status(500).json(error) + time: new Date(), + text: req.text }) }, // Edit an existing Message details using model.update() - update (req, res) { + update (req) { return Message.update(req.body, { where: { id: req.params.id } }) - .then(function (updatedRecords) { - res.status(200).json(updatedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) }, // Delete an existing Message by the unique ID using model.destroy() @@ -40,30 +28,17 @@ module.exports = { id: req.params.id } }) - .then(function (deletedRecords) { - res.status(200).json(deletedRecords) - }) - .catch(function (error) { - res.status(500).json(error) - }) }, - //Get last 10 - getLastTen (req, res) { + // Get last 10 + getLastTen (req) { return Message.all({ - where: { - id: req.params.id - } - }) - .then(function (deletedRecords) { - res.status(200).json(deletedRecords) - }) - .catch(function (error) { - res.status(500).json(error) + order: '"createdAt" DESC', + limit: 2 }) }, - // Retrive an existing Message by the unique ID + // Retrive an existing Message by the unique ID retrieve (req, res) { return Message .findById(req.params.messageId, { From e9ce2f7d56193b970e6e6c0f43bc0286a9ea6691 Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Wed, 8 Mar 2017 16:51:55 +0100 Subject: [PATCH 55/76] Worked on displaying date in message --- src/client/components/FeedbackBox.js | 7 +-- src/client/components/FeedbackWindow.js | 10 ++--- src/client/components/Message.js | 2 +- src/client/components/MessageList.js | 7 ++- src/server/app.js | 29 +++---------- src/server/database/controllers/messages.js | 19 +++----- src/server/database/models/message.js | 48 ++++++++++++++------- src/server/routes/index.js | 21 +-------- 8 files changed, 57 insertions(+), 86 deletions(-) diff --git a/src/client/components/FeedbackBox.js b/src/client/components/FeedbackBox.js index a59e5a9..ce3c527 100644 --- a/src/client/components/FeedbackBox.js +++ b/src/client/components/FeedbackBox.js @@ -19,8 +19,7 @@ export default class FeedbackBox extends Component { // Receiving updated feedback values updateFeedback (feedback) { - console.log('In updateFeedback') - console.log('Feedback: ', feedback) + console.log('In updateFeedback:', feedback) this.state.feedback = feedback } @@ -31,13 +30,9 @@ export default class FeedbackBox extends Component { onClick (feedback) { console.log('In onClick') - const feedbackList = this.state.feedback - console.log('This.feedbackList: ', feedbackList) if (feedback.type === 'slow') { - console.log('Slower please') feedbackList[0] = feedbackList[0] + 1 } else if (feedback.type === 'fast') { - console.log('Faster please') feedbackList[1] = feedbackList[1] + 1 } else { console.log('No valid type for buttonClick') diff --git a/src/client/components/FeedbackWindow.js b/src/client/components/FeedbackWindow.js index 1a0832a..19a9daf 100644 --- a/src/client/components/FeedbackWindow.js +++ b/src/client/components/FeedbackWindow.js @@ -18,15 +18,14 @@ export default class FeedbackWindow extends Component { tick () { console.log('[FeedbackWindow] In tick') - /* + var minsElapsed = this.state.minsElapsed + 1 this.setState({ minsElapsed: minsElapsed }) - //if (this.state.minsElapsed == 5) { - // this.state.updateFeedbackInterval() - //} - */ + if (this.state.minsElapsed === 5) { + this.state.updateFeedbackInterval() + } } componentDidMount () { @@ -55,7 +54,6 @@ export default class FeedbackWindow extends Component { this.setState({ feedback: feedbacks }) - console.log('Feedback: ', this.state.feedback) } render () { diff --git a/src/client/components/Message.js b/src/client/components/Message.js index 8f712e4..c3b6ae3 100644 --- a/src/client/components/Message.js +++ b/src/client/components/Message.js @@ -4,7 +4,7 @@ export default class Message extends React.Component { render () { return (
- ( this.props.createdAt }) - { this.props.text } + ( {this.props.time }) - { this.props.text }
) } diff --git a/src/client/components/MessageList.js b/src/client/components/MessageList.js index ffc001b..3205d05 100644 --- a/src/client/components/MessageList.js +++ b/src/client/components/MessageList.js @@ -30,8 +30,6 @@ export default class MessageList extends Component { lastTenMessages (msgList) { console.log('lastTenMessages: ', msgList) - - console.log('lastTenMessages reversed: ', msgList.reverse()) this.setState({ messages: msgList }) @@ -41,9 +39,14 @@ export default class MessageList extends Component { var list = this.state.messages.map((message, i) => { console.log('Looping trought messages in messageList') + var time = message.time + // console.log('Date: ', date) + // var time = date.format('dd.MM.yyyy HH:mm') + // console.log('Time: ', time) return ( ) diff --git a/src/server/app.js b/src/server/app.js index 2152be4..6344b38 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -127,16 +127,11 @@ user.sync({force: true}).then(function () { }) }) -messageObj.sync({force: true}).then(function () { - return messageObj.create({ - text: 'Just testing' - }) +messageObj.sync().then(function () { }) feedbackObj.sync().then(function () { - return feedbackObj.create({ - value: -1 - }) + }) // Create a connection @@ -146,26 +141,16 @@ var io = require('socket.io')(server) // When a new user connects io.sockets.on('connect', function (socket) { console.log('[app] connect') - - // feedbacksController.getAll() - - // TODO: get x last messages in chat and send - // TODO: get status of feedback and send - var feedback = feedbacksController.getLastIntervalNeg().then(function (resultNeg) { - console.log('ResultNeg: ', resultNeg) + // Get feedback status for last x min + feedbacksController.getLastIntervalNeg().then(function (resultNeg) { feedbacksController.getLastIntervalPos().then(function (resultPos) { - console.log('ResultPos: ', resultPos) socket.emit('update-feedback-interval', [resultNeg, resultPos]) }) }) - - var lastTenMessages = messagesController.getLastTen().then(function (result) { - console.log('List of messages: ', result) - console.log('List of messages reversed: ', result.reverse()) - + // Get last 10 messages + messagesController.getLastTen().then(function (result) { socket.emit('last-ten-messages', result.reverse()) }) - console.log('[app] connect - After sending feedback in') }) // Listen for connections @@ -206,7 +191,7 @@ io.sockets.on('connection', function (socket) { // Called every x minuts socket.on('update-feedback-interval', function () { // Get feedback from database for past x minuts - var feedback = feedbacksController.getLastIntervalNeg().then(function (resultNeg) { + feedbacksController.getLastIntervalNeg().then(function (resultNeg) { feedbacksController.getLastIntervalPos().then(function (resultPos) { io.sockets.emit('update-feedback-interval', [resultNeg, resultPos]) }) diff --git a/src/server/database/controllers/messages.js b/src/server/database/controllers/messages.js index fe8cdb6..26ef5d4 100644 --- a/src/server/database/controllers/messages.js +++ b/src/server/database/controllers/messages.js @@ -22,8 +22,8 @@ module.exports = { }, // Delete an existing Message by the unique ID using model.destroy() - delete (req, res) { - return Message.destroy({ + delete (req) { + Message.destroy({ where: { id: req.params.id } @@ -33,13 +33,13 @@ module.exports = { // Get last 10 getLastTen (req) { return Message.all({ - order: '"createdAt" DESC', - limit: 2 + order: '"time" DESC', + limit: 10 }) }, // Retrive an existing Message by the unique ID - retrieve (req, res) { + retrieve (req) { return Message .findById(req.params.messageId, { include: [{ @@ -47,14 +47,5 @@ module.exports = { as: 'message' }] }) - .then(message => { - if (!message) { - return res.status(404).send({ - message: 'Message Not Found' - }) - } - return res.status(200).send(message) - }) - .catch(error => res.status(400).send(error)) } } diff --git a/src/server/database/models/message.js b/src/server/database/models/message.js index 1d81d6c..07e8b28 100644 --- a/src/server/database/models/message.js +++ b/src/server/database/models/message.js @@ -3,25 +3,39 @@ // Message model module.exports = function (sequelize, DataTypes) { - - // Definition of Message attributes + // Definition of Message attributes var Message = sequelize.define('Message', { - time: { - type: DataTypes.DATE, - defaultValue: new Date() - }, - text: { - type: DataTypes.STRING, - allowNull: false, + time: { + type: DataTypes.DATE, + defaultValue: new Date(), + get: function () { + var date = new Date(this.getDataValue('time')) + // var string = date.getDay() + '.' + date.getMonth() + '.' + date.getYear() + + var hours = date.getHours() + if (date.getHours() < 10) { + hours = '0' + date.getHours() + } + var mins = date.getMinutes() + if (date.getMinutes().len() < 10) { + mins = '0' + date.getMinutes() + } + return hours + mins + } + }, + text: { + type: DataTypes.STRING, + allowNull: false, validate: { min: { args: [3], msg: 'The message must be at least 3 charaters long' } } - }, - //user: { - //} + }, + // user: { + // } + // lecture: {} votesUp: { type: DataTypes.INTEGER, defaultValue: 0 @@ -29,7 +43,7 @@ module.exports = function (sequelize, DataTypes) { votesDown: { type: DataTypes.INTEGER, defaultValue: 0 - }, + } }, { classMethods: { /* @@ -39,8 +53,12 @@ module.exports = function (sequelize, DataTypes) { foreignKey: { allowNull: true } - }) - }*/ + }), + // Add lecture + } */ + }, + instanceMethods: { + } }) diff --git a/src/server/routes/index.js b/src/server/routes/index.js index 16ba896..e66099c 100644 --- a/src/server/routes/index.js +++ b/src/server/routes/index.js @@ -38,25 +38,6 @@ module.exports = (app) => { app.get('/login', passport.authenticate('passport-openid-connect', {'successReturnToOrRedirect': '/'})) app.get('/callback', passport.authenticate('passport-openid-connect', {'callback': true, 'successReturnToOrRedirect': '/'})) - // Related to database - app.post('/', messages) - - - /** - app.post('/api/todos', todosController.create) - app.get('/api/todos', todosController.list) - app.get('/api/todos/:todoId', todosController.retrieve) - app.put('/api/todos/:todoId', todosController.update) - app.delete('/api/todos/:todoId', todosController.destroy) - - app.post('/api/todos/:todoId/items', todoItemsController.create) - app.put('/api/todos/:todoId/items/:todoItemId', todoItemsController.update) - app.delete( - '/api/todos/:todoId/items/:todoItemId', todoItemsController.destroy - ) - app.all('/api/todos/:todoId/items', (req, res) => res.status(405).send({ - message: 'Method Not Allowed' - })) - **/ + app.post('/', messages } From 1c57867e47cac1f25cc581a923261ec1e00f100b Mon Sep 17 00:00:00 2001 From: Dora Oline Eriksrud Date: Wed, 8 Mar 2017 20:13:54 +0100 Subject: [PATCH 56/76] Added webpack command in composer-up --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5fe61c8..f44d437 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,7 +20,7 @@ services: container_name: viestinta_node depends_on: - postgres - command: ["./wait-for-postgres.sh", "--", "npm" , "start"] + command: bash -c "./wait-for-postgres.sh -- && ./node_modules/.bin/webpack && npm start" links: - postgres From 17ef8d7f04c8bd24041897b2c2c7b85e7fb5a3ea Mon Sep 17 00:00:00 2001 From: frozenlight Date: Thu, 9 Mar 2017 09:56:42 +0100 Subject: [PATCH 57/76] Changing docker startup command for node boot --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5fe61c8..4008a46 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,7 +20,7 @@ services: container_name: viestinta_node depends_on: - postgres - command: ["./wait-for-postgres.sh", "--", "npm" , "start"] + command: bash -c "npm install && ./node_modules/.bin/webpack && npm start" links: - postgres From 86208a65ad8dbeac880e77d7f5437f7fbcb1bdbe Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Thu, 9 Mar 2017 10:31:20 +0100 Subject: [PATCH 58/76] React-tap-event-plugin as pedendency --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index cd7236f..eb721f0 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "pg-hstore": "^2.3.2", "react": "^15.4.2", "react-dom": "^15.4.2", + "react-tap-event-plugin": "^2.0.1", "sequelize": "^3.30.2", "sequelize-cli": "^2.5.1", "webpack": "^2.2.1", From 971682da99de381d0d81fbe87f51fd09edeafd48 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Thu, 9 Mar 2017 11:19:18 +0100 Subject: [PATCH 59/76] Corrected module functionality --- src/client/components/ChatBox.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/components/ChatBox.js b/src/client/components/ChatBox.js index eb5368e..5a86a88 100644 --- a/src/client/components/ChatBox.js +++ b/src/client/components/ChatBox.js @@ -81,14 +81,14 @@ export default class ChatBox extends Component { multiLine={true} rows={1} rowsMax={2} + onChange={this.changeHandler} + value={this.state.text} /> ) From 971ed074a9c174764b977c908e8eeec5914ec703 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Thu, 9 Mar 2017 11:20:02 +0100 Subject: [PATCH 60/76] Message fix --- src/server/database/models/message.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/database/models/message.js b/src/server/database/models/message.js index 07e8b28..4c79be4 100644 --- a/src/server/database/models/message.js +++ b/src/server/database/models/message.js @@ -17,10 +17,10 @@ module.exports = function (sequelize, DataTypes) { hours = '0' + date.getHours() } var mins = date.getMinutes() - if (date.getMinutes().len() < 10) { + if (date.getMinutes() < 10) { mins = '0' + date.getMinutes() } - return hours + mins + return hours + ":" + mins } }, text: { From dbb052ebaf61bd35045ef89c078a070940a8c385 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Thu, 9 Mar 2017 18:26:10 +0100 Subject: [PATCH 61/76] Integrated M-UI in message presentation --- src/client/components/Message.js | 20 ++++++++++++++++---- src/client/components/MessageList.js | 4 ++-- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/client/components/Message.js b/src/client/components/Message.js index c3b6ae3..bea6ec0 100644 --- a/src/client/components/Message.js +++ b/src/client/components/Message.js @@ -1,11 +1,23 @@ -import React from 'react' +import React from 'react'; +import Paper from 'material-ui/Paper'; + +const styles = { + child: { + minHeight: 'auto', + width: '100%', + + padding: 10, + margin: 5, + textAlign: 'left', + }, +} export default class Message extends React.Component { render () { return ( -
- ( {this.props.time }) - { this.props.text } -
+ +

( {this.props.time }) - { this.props.text }

+
) } } diff --git a/src/client/components/MessageList.js b/src/client/components/MessageList.js index 0e644b5..b9fc9ab 100644 --- a/src/client/components/MessageList.js +++ b/src/client/components/MessageList.js @@ -84,9 +84,9 @@ export default class MessageList extends Component { }) return ( -
    + {list} -
+ ) } From c1b52163da2034b53df5f700f35f92a55006091d Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Thu, 9 Mar 2017 20:43:26 +0100 Subject: [PATCH 62/76] Fixed size --- src/client/components/MessageList.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/components/MessageList.js b/src/client/components/MessageList.js index b9fc9ab..2a7e57a 100644 --- a/src/client/components/MessageList.js +++ b/src/client/components/MessageList.js @@ -13,8 +13,8 @@ const styles = { maxWidth: 500, maxHeight: 400, - width: 'auto', - height: 'auto', + width: '100%', + height: '100%', marginTop: 10, padding: 15, From 44fc538553a7a39306b0dae3ec1a37ca09a65c72 Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Thu, 9 Mar 2017 20:44:33 +0100 Subject: [PATCH 63/76] Formated representation of timestamp --- src/client/components/Message.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/client/components/Message.js b/src/client/components/Message.js index bea6ec0..76c3462 100644 --- a/src/client/components/Message.js +++ b/src/client/components/Message.js @@ -1,5 +1,7 @@ import React from 'react'; import Paper from 'material-ui/Paper'; +import FlatButton from 'material-ui/FlatButton'; +import Schedule from 'material-ui/svg-icons/action/schedule'; const styles = { child: { @@ -10,13 +12,25 @@ const styles = { margin: 5, textAlign: 'left', }, + time: { + fontSize: '13px', + lineHeight: '13px', + height: '18px', + textAlign: 'left', + }, } export default class Message extends React.Component { render () { return ( -

( {this.props.time }) - { this.props.text }

+

{this.props.text}

+ {this.props.time}} + disabled={true} + icon={} + />
) } From f6ddfdc078c3297f8268747a8bcba3d179f05d3f Mon Sep 17 00:00:00 2001 From: weedle1912 Date: Thu, 9 Mar 2017 21:06:50 +0100 Subject: [PATCH 64/76] Correct naming convention for icon --- src/client/components/Message.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/components/Message.js b/src/client/components/Message.js index 76c3462..405a2b4 100644 --- a/src/client/components/Message.js +++ b/src/client/components/Message.js @@ -1,7 +1,7 @@ import React from 'react'; import Paper from 'material-ui/Paper'; import FlatButton from 'material-ui/FlatButton'; -import Schedule from 'material-ui/svg-icons/action/schedule'; +import ActionSchedule from 'material-ui/svg-icons/action/schedule'; const styles = { child: { @@ -29,7 +29,7 @@ export default class Message extends React.Component { style={styles.time} label={{this.props.time}} disabled={true} - icon={} + icon={} /> ) From 14abeaf0a8c7b8f1dfa6d27e23fa9b68b0b390a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 21:37:55 +0100 Subject: [PATCH 65/76] Fix paranthesis error in unreferenced file --- src/server/routes/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/routes/index.js b/src/server/routes/index.js index e66099c..c83d36e 100644 --- a/src/server/routes/index.js +++ b/src/server/routes/index.js @@ -39,5 +39,5 @@ module.exports = (app) => { app.get('/callback', passport.authenticate('passport-openid-connect', {'callback': true, 'successReturnToOrRedirect': '/'})) // Related to database - app.post('/', messages + app.post('/', messages) } From 8b3205be9596fa50eac8e0612768bfd90e31bd58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 21:57:56 +0100 Subject: [PATCH 66/76] Changes code coverage threshhold to 60 percent --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 13845ad..720dc61 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "grunt && sequelize db:migrate && sequelize db:seed:all && node src/server/app.js", "test-client": "node src/server/app.js && mocha --compilers js:babel-core/register ./src/client/test", - "test": "node src/server/app.js && nyc --check-coverage --lines 95 mocha src/test/server/**.js && nyc report --reporter=text-lcov > ./coverage/lcov.info", + "test": "node src/server/app.js && nyc --check-coverage --lines 60 mocha src/test/server/**.js && nyc report --reporter=text-lcov > ./coverage/lcov.info", "start": "node src/server/app.js", "lint": "standard ./server/* ./client/*", "webpack": "./node_modules/.bin/webpack" From f2063c0b300105bace31694bbd0f27ccb290c5c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 22:29:40 +0100 Subject: [PATCH 67/76] Moves message time get function to methods section to try to get Drone to approve the pull request --- src/server/database/models/message.js | 31 +++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/server/database/models/message.js b/src/server/database/models/message.js index 4c79be4..bf33d8c 100644 --- a/src/server/database/models/message.js +++ b/src/server/database/models/message.js @@ -8,20 +8,6 @@ module.exports = function (sequelize, DataTypes) { time: { type: DataTypes.DATE, defaultValue: new Date(), - get: function () { - var date = new Date(this.getDataValue('time')) - // var string = date.getDay() + '.' + date.getMonth() + '.' + date.getYear() - - var hours = date.getHours() - if (date.getHours() < 10) { - hours = '0' + date.getHours() - } - var mins = date.getMinutes() - if (date.getMinutes() < 10) { - mins = '0' + date.getMinutes() - } - return hours + ":" + mins - } }, text: { type: DataTypes.STRING, @@ -58,7 +44,24 @@ module.exports = function (sequelize, DataTypes) { } */ }, instanceMethods: { + time: { + get: function () { + var date = new Date(this.getDataValue('time')) + // var string = date.getDay() + '.' + date.getMonth() + '.' + date.getYear() + + var hours = date.getHours() + if (date.getHours() < 10) { + hours = '0' + date.getHours() + }else{ + } + var mins = date.getMinutes() + if (date.getMinutes() < 10) { + mins = '0' + date.getMinutes() + } + return hours + ":" + mins + } + } } }) From d6f7d16c7f8dc501819bd016173083717f10154f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 22:56:04 +0100 Subject: [PATCH 68/76] Updates database_test with new and better tests --- src/test/server/database_test.js | 109 +++++++++++++++---------------- 1 file changed, 53 insertions(+), 56 deletions(-) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index 0bac560..197b9ec 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -1,7 +1,3 @@ -/** - * Created by jacob on 20.02.17. - */ -// Hack for pg issues const path = require('path') const User = require('../../server/database/models/').User const assert = require('assert') @@ -10,73 +6,74 @@ const db = require('../../server/database/models/index') // Extra test frameworks: // var should = require('should'); + +/**TEST 1 USER MODEL**/ + // Defines alphabet to be used var s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' // Defines the function to generate the names to be used for the test // Returns a random String with N length and based on the alphabet s - -var testNameGenerator = function (N) { +var testStringGenerator = function (N) { return Array(N).join().split(',').map(function () { return s.charAt(Math.floor(Math.random() * s.length)) }).join('') } -// Unique firstName and lastName for each test -var name1 = testNameGenerator(10) -var name2 = testNameGenerator(10) -var name3 = testNameGenerator(10) +// Unique firstName and lastName for the test +var name = testStringGenerator(10) +// Builds the User object with the corresponding name. Does not save the User objects to the database. +var testUser = User.build({name: name1}) +describe('Test suite 1: User model', function () { -// Builds the User object with the corresponding name. Does not save the User objects to the database. -var testUser1 = User.build({name: name1}) -var testUser2 = User.build({name: name2}) -var testUser3 = User.build({name: name3}) - -// Creates a tuple array for the test -var testArray = [ [testUser1, name1], - [testUser2, name2], - [testUser3, name3] -] - -// Test for local user creation -describe('Test suite: User build', function () { - testArray.forEach(function (arrElement, callback) { - describe('Build test for name: ' + arrElement[0].name, function () { - it('Name to local User object is identical to name generated', function (done) { - assert.equal(arrElement[0].name, arrElement[1]) - done() - }) + /** + * @description Test for database user creation + */ + describe('Database test for name: ' + name, function () { + it('Name to User object in database is identical to name generated', function (done) { + // Access database and create the user if it doesn't exist + db['User'] + .findOrCreate({ + where: {name:name}, + attributes: ['name'] + }) + + // Then compare that user's variables to the variables given + .spread(function (user, created) { + assert.equal(name, user.name) + // Delete the user from the database + user.destroy() + done() + }) }) }) }) -// Get the User object from the database -// Creates a tuple array for the test -var test2Array = [ - name1, name2, name3 -] - -// Test for database user creation -describe('Test suite: User create', function () { - // For each element in test2Array - test2Array.forEach(function (arrElement, callback) { - describe('Database test for name: ' + arrElement, function () { - it('Name to User object in database is identical to name generated', function (done) { - // Access database and create the user if it doesn't exist - db['User'] - .findOrCreate({ - where: {name:arrElement}, - attributes: ['name'] - }) - - // Then compare that user's variables to the variables given - .spread(function (user, created) { - assert.equal(arrElement, user.name) - // Delete the user from the database - user.destroy() - done() - }) - }) + +/**TEST 2 MESSAGE MODEL**/ + +var testString = testStringGenerator(30) + +describe('Test suite 2: Message model', function () { + + /** + * @description Test for local message + */ + describe('Database test for message: ' + testString, function () { + it('Text in Message object in database is identical to testString', function (done) { + // Access database and create the message if it doesn't exist + db['Message'] + .findOrCreate({ + where: {text:text}, + attributes: ['text'] + }) + // Then compare that messages's variables to the variables given + + .spread(function (message, created) { + assert.equal(testString, message.text) + message.destroy() + done() + }) }) }) }) From 1b68128d7b734a4c0943ac4210a886cf79e77cb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 23:14:02 +0100 Subject: [PATCH 69/76] Adds test for message get function --- src/server/database/models/message.js | 35 +++++++++++----------- src/test/server/database_test.js | 42 +++++++++++++++++++-------- 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/src/server/database/models/message.js b/src/server/database/models/message.js index bf33d8c..197c42d 100644 --- a/src/server/database/models/message.js +++ b/src/server/database/models/message.js @@ -8,6 +8,23 @@ module.exports = function (sequelize, DataTypes) { time: { type: DataTypes.DATE, defaultValue: new Date(), + get: function () { + var date = new Date(this.getDataValue('time')) + // var string = date.getDay() + '.' + date.getMonth() + '.' + date.getYear() + + var hours = date.getHours() + if (date.getHours() < 10) { + hours = '0' + date.getHours() + }else{ + + } + var mins = date.getMinutes() + if (date.getMinutes() < 10) { + mins = '0' + date.getMinutes() + } + return hours + ":" + mins + } + }, text: { type: DataTypes.STRING, @@ -32,6 +49,7 @@ module.exports = function (sequelize, DataTypes) { } }, { classMethods: { + /* assosiate: function(models) { Message.belongsTo(models.User, { @@ -44,24 +62,7 @@ module.exports = function (sequelize, DataTypes) { } */ }, instanceMethods: { - time: { - get: function () { - var date = new Date(this.getDataValue('time')) - // var string = date.getDay() + '.' + date.getMonth() + '.' + date.getYear() - - var hours = date.getHours() - if (date.getHours() < 10) { - hours = '0' + date.getHours() - }else{ - } - var mins = date.getMinutes() - if (date.getMinutes() < 10) { - mins = '0' + date.getMinutes() - } - return hours + ":" + mins - } - } } }) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index 197b9ec..a26ba6b 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -6,30 +6,28 @@ const db = require('../../server/database/models/index') // Extra test frameworks: // var should = require('should'); - -/**TEST 1 USER MODEL**/ - -// Defines alphabet to be used +// Defines alphabets to be used var s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' +var n = '0123456789' // Defines the function to generate the names to be used for the test // Returns a random String with N length and based on the alphabet s -var testStringGenerator = function (N) { +var testStringGenerator = function (N, s) { return Array(N).join().split(',').map(function () { return s.charAt(Math.floor(Math.random() * s.length)) }).join('') } -// Unique firstName and lastName for the test -var name = testStringGenerator(10) -// Builds the User object with the corresponding name. Does not save the User objects to the database. -var testUser = User.build({name: name1}) +/**TEST 1 USER MODEL**/ + +// Unique firstName and lastName for the test +var name = testStringGenerator(10, s) describe('Test suite 1: User model', function () { /** * @description Test for database user creation */ - describe('Database test for name: ' + name, function () { + describe('Database creation for name: ' + name, function () { it('Name to User object in database is identical to name generated', function (done) { // Access database and create the user if it doesn't exist db['User'] @@ -52,14 +50,17 @@ describe('Test suite 1: User model', function () { /**TEST 2 MESSAGE MODEL**/ -var testString = testStringGenerator(30) +var testString = testStringGenerator(30, s) + +var testTime = "17:04:16" +var testDate = new Date(Date.parse('Thu, 01 Jan 1970 17:04:16 GMT')) describe('Test suite 2: Message model', function () { /** * @description Test for local message */ - describe('Database test for message: ' + testString, function () { + describe('Database creation for message: ' + testString, function () { it('Text in Message object in database is identical to testString', function (done) { // Access database and create the message if it doesn't exist db['Message'] @@ -76,5 +77,22 @@ describe('Test suite 2: Message model', function () { }) }) }) + + describe('Get formatted time from message model: ' + testTime, function () { + it('Get function returns string identical to testTime', function (done) { + db['Message'] + .findOrCreate({ + where: {time:testDate}, + attributes: ['time'] + }) + // Then compare that messages's variables to the variables given + + .spread(function (message, created) { + assert.equal(testTime, message.time.get) + message.destroy() + done() + }) + }) + }) }) From f0ebbcce35eadfa8e1e582d8fbe595118667bca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 23:19:26 +0100 Subject: [PATCH 70/76] Fixes text NOT NULL dependency in test --- src/test/server/database_test.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index a26ba6b..79c4880 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -82,7 +82,9 @@ describe('Test suite 2: Message model', function () { it('Get function returns string identical to testTime', function (done) { db['Message'] .findOrCreate({ - where: {time:testDate}, + where: { + text:testString, + time:testDate}, attributes: ['time'] }) // Then compare that messages's variables to the variables given From 49ff63242527a0187599f0e47b59f3ad2b723cff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 23:26:09 +0100 Subject: [PATCH 71/76] Fix Date formating in creation of testDate --- src/test/server/database_test.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index 79c4880..e243e4b 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -53,7 +53,10 @@ describe('Test suite 1: User model', function () { var testString = testStringGenerator(30, s) var testTime = "17:04:16" -var testDate = new Date(Date.parse('Thu, 01 Jan 1970 17:04:16 GMT')) +var testDate = new Date() +testDate.setHours(17) +testDate.setMinutes(4) +testDate.setSeconds(16) describe('Test suite 2: Message model', function () { From 2d48fb050110590f4b8b1638a8743d8df2787fec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 23:33:56 +0100 Subject: [PATCH 72/76] Fix message get syntax --- src/test/server/database_test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index e243e4b..2519862 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -93,7 +93,7 @@ describe('Test suite 2: Message model', function () { // Then compare that messages's variables to the variables given .spread(function (message, created) { - assert.equal(testTime, message.time.get) + assert.equal(testTime, message.get('time')) message.destroy() done() }) From 78db8e264013400817c7a5621158effe9d18368e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 23:38:44 +0100 Subject: [PATCH 73/76] Removes seconds from the testTime --- src/test/server/database_test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index 2519862..a8191b5 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -52,7 +52,7 @@ describe('Test suite 1: User model', function () { var testString = testStringGenerator(30, s) -var testTime = "17:04:16" +var testTime = "17:04" var testDate = new Date() testDate.setHours(17) testDate.setMinutes(4) From c87584b978787411d5127fc6899d92aea72a0a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Fri, 10 Mar 2017 23:53:32 +0100 Subject: [PATCH 74/76] Fixes undeclared variable name for test variable --- src/test/server/database_test.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index a8191b5..51d1cdf 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -56,19 +56,18 @@ var testTime = "17:04" var testDate = new Date() testDate.setHours(17) testDate.setMinutes(4) -testDate.setSeconds(16) describe('Test suite 2: Message model', function () { /** - * @description Test for local message + * @description Test for create message */ describe('Database creation for message: ' + testString, function () { it('Text in Message object in database is identical to testString', function (done) { // Access database and create the message if it doesn't exist db['Message'] .findOrCreate({ - where: {text:text}, + where: {text: testString}, attributes: ['text'] }) // Then compare that messages's variables to the variables given @@ -80,14 +79,17 @@ describe('Test suite 2: Message model', function () { }) }) }) - + /** + * @description Test for message get time + */ describe('Get formatted time from message model: ' + testTime, function () { it('Get function returns string identical to testTime', function (done) { db['Message'] .findOrCreate({ where: { text:testString, - time:testDate}, + time:testDate + }, attributes: ['time'] }) // Then compare that messages's variables to the variables given From 2f6a32c6acffbbdc2123d4462dce9265f448d81b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Sat, 11 Mar 2017 00:02:13 +0100 Subject: [PATCH 75/76] Changes testTime to test all of the code --- src/test/server/database_test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/server/database_test.js b/src/test/server/database_test.js index 51d1cdf..8e756c9 100644 --- a/src/test/server/database_test.js +++ b/src/test/server/database_test.js @@ -52,9 +52,9 @@ describe('Test suite 1: User model', function () { var testString = testStringGenerator(30, s) -var testTime = "17:04" +var testTime = "07:04" var testDate = new Date() -testDate.setHours(17) +testDate.setHours(7) testDate.setMinutes(4) describe('Test suite 2: Message model', function () { From 133c5c0a985734e5f00fc8d2f405fa2e57a11267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20T=C3=B8rring?= Date: Sat, 11 Mar 2017 09:53:18 +0100 Subject: [PATCH 76/76] Deletes unnecessary Sequelize code --- config/config.json | 23 ------------------ models/index.js | 36 ---------------------------- src/server/database/config/config.js | 26 -------------------- src/server/database/models/index.js | 12 +--------- 4 files changed, 1 insertion(+), 96 deletions(-) delete mode 100644 config/config.json delete mode 100644 models/index.js delete mode 100644 src/server/database/config/config.js diff --git a/config/config.json b/config/config.json deleted file mode 100644 index 0f858c6..0000000 --- a/config/config.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "development": { - "username": "root", - "password": null, - "database": "database_development", - "host": "127.0.0.1", - "dialect": "mysql" - }, - "test": { - "username": "root", - "password": null, - "database": "database_test", - "host": "127.0.0.1", - "dialect": "mysql" - }, - "production": { - "username": "root", - "password": null, - "database": "database_production", - "host": "127.0.0.1", - "dialect": "mysql" - } -} diff --git a/models/index.js b/models/index.js deleted file mode 100644 index 7540dba..0000000 --- a/models/index.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var fs = require('fs'); -var path = require('path'); -var Sequelize = require('sequelize'); -var basename = path.basename(module.filename); -var env = process.env.NODE_ENV || 'development'; -var config = require(__dirname + '/../config/config.json')[env]; -var db = {}; - -if (config.use_env_variable) { - var sequelize = new Sequelize(process.env[config.use_env_variable]); -} else { - var sequelize = new Sequelize(config.database, config.username, config.password, config); -} - -fs - .readdirSync(__dirname) - .filter(function(file) { - return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js'); - }) - .forEach(function(file) { - var model = sequelize['import'](path.join(__dirname, file)); - db[model.name] = model; - }); - -Object.keys(db).forEach(function(modelName) { - if (db[modelName].associate) { - db[modelName].associate(db); - } -}); - -db.sequelize = sequelize; -db.Sequelize = Sequelize; - -module.exports = db; diff --git a/src/server/database/config/config.js b/src/server/database/config/config.js deleted file mode 100644 index fbff1a9..0000000 --- a/src/server/database/config/config.js +++ /dev/null @@ -1,26 +0,0 @@ - -console.log("In config for sequelize") -module.exports = { - development: { - 'username': 'postgres', - 'password': 'viestintacentos', - 'database': 'viestintadb_dev', - 'host': '0.0.0.0', - 'dialect': 'postgres' - }, - test: { - 'username': 'postgres', - 'password': 'viestintacentos', - 'database': 'viestintadb_test', - 'host': '0.0.0.0', - 'dialect': 'postgres', - 'logging': false - }, - production: { - 'username': 'root', - 'password': null, - 'database': 'database_production', - 'host': '127.0.0.1', - 'dialect': 'postgres' - } -} diff --git a/src/server/database/models/index.js b/src/server/database/models/index.js index b3c7e50..d420ead 100644 --- a/src/server/database/models/index.js +++ b/src/server/database/models/index.js @@ -12,7 +12,7 @@ const Sequelize = require('sequelize') const basename = path.basename(module.filename) const env = process.env.NODE_ENV || 'development' -const config = require(path.join(__dirname, '/../config/config.js'))[env] + let db = {} if (process.env['DATABASE_URL']) { @@ -23,16 +23,6 @@ if (process.env['DATABASE_URL']) { var sequelize = new Sequelize(process.env['DATABASE_URL'], options) } - -/*else if (config.use_env_variable) { - - var sequelize = new Sequelize(process.env[config.use_env_variable]) -} else { - var sequelize = new Sequelize(config.database, config.username, config.password, config) -} -*/ - - fs .readdirSync(__dirname) .filter(function (file) {

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 S@toEmw|ctzxvX Date: Fri, 3 Mar 2017 10:39:02 +0100 Subject: [PATCH 12/76] Update title, tab icon and font --- src/client/index.html | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/client/index.html b/src/client/index.html index edecb3d..962570d 100644 --- a/src/client/index.html +++ b/src/client/index.html @@ -3,7 +3,9 @@ - Viestinta + Viestintä + + @@ -16,6 +18,21 @@