Skip to content

Commit f385034

Browse files
authored
Merge pull request #51 from GanXx8/types
Types
2 parents 4c69b62 + c23f2c7 commit f385034

File tree

6 files changed

+159
-2
lines changed

6 files changed

+159
-2
lines changed

controllers/engines.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class Engines {
99
})
1010
} catch (error) {
1111
next({
12-
code: 500, message: error.message
12+
code: 500, message: 'error.message'
1313
});
1414
}
1515
};

controllers/types.js

+80
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,82 @@
1+
const { where } = require('sequelize/types');
2+
const type = require('../models/type');
3+
const enginesRouter = require('../router/enginesRouter');
4+
const { types } = require('./../models')
15

6+
class Types {
7+
static getAll = async (req, res, next) => {
8+
try {
9+
let data = await types.findAll()
10+
res.status(200).json({
11+
data
12+
})
13+
} catch (error) {
14+
next({
15+
code: 500, message: error.message
16+
})
17+
};
18+
};
19+
static getDetail = async (req, res, next) => {
20+
try {
21+
let data = await types.findByPk(req.params.id)
22+
23+
if(!data) {
24+
next({code: 404, message: 'Types Not Found, try search id'})
25+
} else {
26+
res.status(200).json({
27+
data
28+
})
29+
};
30+
} catch (error) {
31+
next({
32+
code: 500, message: error.message
33+
})
34+
}
35+
};
36+
static postTypes = async (req, res, next) =>{
37+
try {
38+
let { name, foundedYear, foundedCountry } = req.body;
39+
40+
if (!name || !foundedYear || !foundedCountry) {
41+
next({
42+
code: 400, message: 'post invalid'
43+
})
44+
} else {
45+
let data = await enginesRouter.create({name, foundedYear, foundedCountry})
46+
res.status(201).json({
47+
data
48+
})
49+
}
50+
} catch (error) {
51+
next({code: 500, message: error.message})
52+
};
53+
};
54+
static patchType = async (req, res, next) => {
55+
try {
56+
let { name, foundedYear, foundedCountry } = req.body;
57+
let {id} = req.params;
58+
const data = await types.update({name, foundedYear, foundedCountry}, {
59+
where: {id}
60+
});
61+
res.status(201).json({data})
62+
} catch (error) {
63+
next({
64+
code: 500, message: error.message
65+
})
66+
}
67+
};
68+
static deleteType = async (req, res, next) => {
69+
try {
70+
let {id} = req.params;
71+
const data = await type.findByPk(id)
72+
data.destroy()
73+
res.sendStatus(204);
74+
} catch (error) {
75+
next({
76+
code: 500, message: error.message
77+
});
78+
}
79+
}
80+
}
281

82+
module.exports = Types;
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
'use strict';
2+
module.exports = {
3+
up: async (queryInterface, Sequelize) => {
4+
await queryInterface.createTable('types', {
5+
id: {
6+
allowNull: false,
7+
autoIncrement: true,
8+
primaryKey: true,
9+
type: Sequelize.INTEGER
10+
},
11+
name: {
12+
type: Sequelize.STRING(50),
13+
allowNull: false
14+
},
15+
foundedYear: {
16+
type: Sequelize.INTEGER(4),
17+
allowNull: false
18+
},
19+
foundedCountry: {
20+
type: Sequelize.STRING(50),
21+
allowNull: false
22+
},
23+
createdAt: {
24+
allowNull: false,
25+
type: Sequelize.DATE
26+
},
27+
updatedAt: {
28+
allowNull: false,
29+
type: Sequelize.DATE
30+
}
31+
});
32+
},
33+
down: async (queryInterface, Sequelize) => {
34+
await queryInterface.dropTable('types');
35+
}
36+
};

models/type.js

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
'use strict';
2+
const {
3+
Model
4+
} = require('sequelize');
5+
module.exports = (sequelize, DataTypes) => {
6+
class type extends Model {
7+
/**
8+
* Helper method for defining associations.
9+
* This method is not a part of Sequelize lifecycle.
10+
* The `models/index` file will call this method automatically.
11+
*/
12+
static associate(models) {
13+
// define association here
14+
}
15+
};
16+
type.init({
17+
name: {
18+
type: DataTypes.STRING(50),
19+
allowNull: false
20+
},
21+
foundedYear: {
22+
type: DataTypes.INTEGER(4),
23+
allowNull: false
24+
},
25+
foundedCountry: {
26+
type: DataTypes.STRING(50),
27+
allowNull: false
28+
}
29+
}, {
30+
sequelize,
31+
modelName: 'type',
32+
});
33+
return type;
34+
};

router/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ index.get("/", (req, res) => {
1313
index.use(enginesRouter);
1414
index.use(factoriesRouter);
1515
index.use(motorcyclesRouter);
16-
// index.use(typesRouter);
16+
index.use(typesRouter);
1717
index.use(usersRouter);
1818
index.use(usersmotorRouter);
1919

router/typesRouter.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const typeRouter = require('express').Router();
2+
const typeController = require('../controllers/types');
3+
const auth = require("../middlewares/auth");
4+
5+
typeRouter.get('/types', typeController.getAll)
6+
7+
module.exports = typeRouter;

0 commit comments

Comments
 (0)