Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
node_modules
node_modules/
7 changes: 3 additions & 4 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,16 @@ var logger = require("morgan");
const bodyParser = require("body-parser");
const tasks = require("./routes/tasks");
const cors = require("cors");
var indexRouter = require("./routes/index");
var usersRouter = require("./routes/users");


var app = express();

// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");

// app.use(cors());
// app.options("*", cors());
app.use(cors());
app.options("*", cors());
app.use(logger("dev"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
Expand Down
34 changes: 15 additions & 19 deletions bin/www
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
* Module dependencies.
*/

var app = require('../app');
var debug = require('debug')('todo-server2:server');
var http = require('http');
var app = require("../app");
var debug = require("debug")("todo-server2:server");
var http = require("http");

/**
* Get port from environment and store in Express.
*/

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
var port = normalizePort(process.env.PORT || "3001");
app.set("port", port);

/**
* Create HTTP server.
Expand All @@ -26,8 +26,8 @@ var server = http.createServer(app);
*/

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
server.on("error", onError);
server.on("listening", onListening);

/**
* Normalize a port into a number, string, or false.
Expand All @@ -54,22 +54,20 @@ function normalizePort(val) {
*/

function onError(error) {
if (error.syscall !== 'listen') {
if (error.syscall !== "listen") {
throw error;
}

var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
var bind = typeof port === "string" ? "Pipe " + port : "Port " + port;

// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
case "EACCES":
console.error(bind + " requires elevated privileges");
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
case "EADDRINUSE":
console.error(bind + " is already in use");
process.exit(1);
break;
default:
Expand All @@ -83,8 +81,6 @@ function onError(error) {

function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
var bind = typeof addr === "string" ? "pipe " + addr : "port " + addr.port;
debug("Listening on " + bind);
}
24 changes: 12 additions & 12 deletions config/config.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
{
"development": {
"username": "root",
"password": null,
"database": "database_development",
"username": "sergey",
"password": "sergey",
"database": "tasks",
"host": "127.0.0.1",
"dialect": "mysql"
"dialect": "postgres"
},
"test": {
"username": "root",
"password": null,
"database": "database_test",
"username": "sergey",
"password": "sergey",
"database": "tasks",
"host": "127.0.0.1",
"dialect": "mysql"
"dialect": "postgres"
},
"production": {
"username": "root",
"password": null,
"database": "database_production",
"username": "sergey",
"password": "sergey",
"database": "tasks",
"host": "127.0.0.1",
"dialect": "mysql"
"dialect": "postgres"
}
}
11 changes: 0 additions & 11 deletions controllers/task.js

This file was deleted.

28 changes: 28 additions & 0 deletions controllers/tasksController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const models = require("../models");

class TasksController {
static all(cb) {
models.Task.findAll({ order: ["createdAt"] }).then(items => {
cb(items);
});
}
static create(data, cb) {
models.Task.create(data.task).then(item => {

cb(item);
});
}
static update(data, cb) {
models.Task.update(data, { where: { id: data.id } }).then(() => {
cb("ok");
});
}
static delete(id, cb) {
models.Task.destroy({ where: { id: id } }).then(item => {
cb(id)

});

}
}
module.exports = TasksController;
75 changes: 0 additions & 75 deletions db/db.js

This file was deleted.

32 changes: 32 additions & 0 deletions migrations/20190424083824-create-task.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"use strict";
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable("Tasks", {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
text: {
type: Sequelize.STRING
},
isCompleted: {
type: Sequelize.BOOLEAN
},
createdAt: {
allowNull: false,
defaultValue: new Date(),
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
defaultValue: new Date(),
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable("Tasks");
}
};
Empty file removed migrations/createTasks.js
Empty file.
37 changes: 37 additions & 0 deletions models/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
'use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {};

let sequelize;
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
sequelize = new Sequelize(config.database, config.username, config.password, config);
}

fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = sequelize['import'](path.join(__dirname, file));
db[model.name] = model;
});

Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;
48 changes: 15 additions & 33 deletions models/task.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,15 @@
const db = require("../db/db");

class Task {
static add(data, cb) {
const sql = `
INSERT INTO tasks1 (body) VALUES ('${data}') RETURNING *`;
db.query(sql, cb);
}
static update(data, cb) {
const sql = `UPDATE tasks SET body = '${data.text}', isCompleted = '${
data.isCompleted
}' WHERE id=${data.id} RETURNING *`;
db.query(sql, cb);
}
static all(cb) {
db.query(`SELECT * FROM tasks1 ORDER BY id`, cb);
}

static find(id, cb) {
const sql = `
SELECT FROM tasks WHERE id = ${id};
`;
db.query(sql, cb);
}

static delete(id, cb) {
if (!id) return cb(new Error("Please provide an id"));
const sql = `DELETE FROM tasks WHERE id = ${id} RETURNING *`;
db.query(sql, cb);
}
}

module.exports = Task;
"use strict";
module.exports = (sequelize, DataTypes) => {
const Task = sequelize.define(
"Task",
{
text: DataTypes.STRING,
isCompleted: DataTypes.BOOLEAN
},
{}
);
Task.associate = function(models) {
// associations can be defined here
};
return Task;
};
Loading