First commit

This commit is contained in:
Patrick McDonagh
2018-02-01 12:03:01 -06:00
commit 1faa8b37c0
9 changed files with 1229 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
.settings/*
server/node_modules/*

24
.project Normal file
View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Lumberjack-GraphQL</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>

5
server/.env Normal file
View File

@@ -0,0 +1,5 @@
DB_HOST=localhost
DB_USER=website
DB_PASSWORD=henrypump
DB_DATABASE=lumberjack
DB_TEST_DATABASE=test_lumberjack

41
server/index.js Normal file
View File

@@ -0,0 +1,41 @@
/**
*
*/
var express = require('express');
var app = express();
var morgan = require('morgan');
var bodyParser = require('body-parser');
require('dotenv').config();
app.use(express.static(__dirname + "/public"));
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
//Models
var models = require("./models");
//Sync Database
models.sequelize.sync().then(function() {
console.log('Nice! Database looks fine');
}).catch(function(err) {
console.log(err, "Something went wrong with the Database Update!");
});
// app.get('/', require('./routes').index);
// app.get('/deviceTypes', require('./routes').deviceTypes);
// app.get('/devices/:deviceId/values', require('./routes').channelValues);
// app.get('/devices', require('./routes').devices);
// app.get('/companies', require('./routes').companies);
// app.get('/alldata', require('./routes').getAllData);
// app.post('/login', require('./routes').login);
// app.get('/login', require('./routes').getLogin);
// app.get('/logout', require('./routes').logout);
app.listen(3000, function () {
console.log('Listening on port 3000!')
})

16
server/models/Device.js Normal file
View File

@@ -0,0 +1,16 @@
module.exports = function(sequelize, DataTypes) {
var Device = sequelize.define("Device", {
name: DataTypes.STRING,
deviceType: sequelize.models.DeviceType,
address: DataTypes.STRING
});
Device.associate = function(models) {
// Using additional options like CASCADE etc for demonstration
// Can also simply do Task.belongsTo(models.User);
Device.hasOne(models.DeviceType);
};
return Device;
};

View File

@@ -0,0 +1,13 @@
module.exports = function(sequelize, DataTypes) {
var DeviceType = sequelize.define("DeviceType", {
name: DataTypes.STRING
});
DeviceType.associate = function(models) {
// Using additional options like CASCADE etc for demonstration
// Can also simply do Task.belongsTo(models.User);
DeviceType.belongsTo(models.Device);
};
return DeviceType;
};

47
server/models/index.js Normal file
View File

@@ -0,0 +1,47 @@
// ./models/index.js
var fs = require('fs');
var path = require("path");
var Sequelize = require('sequelize');
var dbOptions = {
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
dialect: 'mysql'
};
var sequelize = new Sequelize(dbOptions);
var db = {};
var deviceType = sequelize.import('./DeviceType.js');
db.deviceType = deviceType;
var device = sequelize.import('./Device.js');
db.device = device;
// db.deviceType.associate(db);
// db.device.associate(db);
// fs.readdirSync(__dirname)
// .filter(function(file) {
// return (file.indexOf(".") !== 0) && (file !== "index.js");
// })
// .forEach(function(file) {
// var model = sequelize.import(path.join(__dirname, file));
// db[model.name] = model;
// });
// Object.keys(db).forEach(function(modelName) {
// if ("associate" in db[modelName]) {
// db[modelName].associate(db);
// }
// });
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;

1048
server/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

33
server/package.json Normal file
View File

@@ -0,0 +1,33 @@
{
"name": "lumberjack",
"version": "1.0.0",
"description": "Datalogger Web Server for PLC data",
"main": "index.js",
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Henry-Pump/Lumberjack-GraphQL.git"
},
"author": "Patrick McDonagh, Henry Pump",
"license": "ISC",
"bugs": {
"url": "https://github.com/Henry-Pump/Lumberjack-GraphQL/issues"
},
"homepage": "https://github.com/Henry-Pump/Lumberjack-GraphQL#readme",
"dependencies": {
"body-parser": "^1.18.2",
"dotenv": "^4.0.0",
"express": "^4.16.1",
"graphql": "^0.11.6",
"graphql-sequelize": "^5.4.2",
"morgan": "^1.9.0",
"mysql": "^2.14.1",
"mysql2": "^1.4.2",
"sequelize": "^4.13.2"
},
"devDependencies": {
"mocha": "^3.5.3"
}
}