Mise à jour des 'models'
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
const { DataTypes, Model } = require("sequelize");
|
const { DataTypes } = require("sequelize");
|
||||||
const sequelize = require("../util/database");
|
const sequelize = require("../util/database");
|
||||||
const slugify = require("slugify");
|
const slugify = require("slugify");
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
const { DataTypes, Model } = require("sequelize");
|
const { DataTypes } = require("sequelize");
|
||||||
const sequelize = require("../util/database");
|
const sequelize = require("../util/database");
|
||||||
|
|
||||||
const Comment = sequelize.define("Comment", {
|
const Comment = sequelize.define("Comment", {
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
const { DataTypes, Model } = require("sequelize");
|
const { DataTypes } = require("sequelize");
|
||||||
const sequelize = require("../util/database");
|
const sequelize = require("../util/database");
|
||||||
|
|
||||||
const Tag = sequelize.define("Tag", {
|
const Tag = sequelize.define("Tag", {
|
||||||
|
|||||||
+1
-8
@@ -1,15 +1,8 @@
|
|||||||
const { DataTypes, Model } = require("sequelize");
|
const { DataTypes, Model } = require("sequelize");
|
||||||
|
|
||||||
const sequelize = require("../util/database");
|
const sequelize = require("../util/database");
|
||||||
const bcrypt = require("bcryptjs");
|
const bcrypt = require("bcryptjs");
|
||||||
|
|
||||||
/**
|
|
||||||
* "email": "jake@jake.jake",
|
|
||||||
"token": "jwt.token.here",
|
|
||||||
"username": "jake",
|
|
||||||
"bio": "I work at statefarm",
|
|
||||||
"image": null
|
|
||||||
*/
|
|
||||||
|
|
||||||
const User = sequelize.define("User", {
|
const User = sequelize.define("User", {
|
||||||
id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true, allowNull: false },
|
id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true, allowNull: false },
|
||||||
email: { type: DataTypes.STRING, allowNull: false, unique: true },
|
email: { type: DataTypes.STRING, allowNull: false, unique: true },
|
||||||
|
|||||||
@@ -15,15 +15,6 @@ const { errorHandler } = require("./middlewares/errorHandler");
|
|||||||
|
|
||||||
var isProduction = appEnv === 'production';
|
var isProduction = appEnv === 'production';
|
||||||
|
|
||||||
/*
|
|
||||||
var db = require("./models");
|
|
||||||
*/
|
|
||||||
// Import Models
|
|
||||||
const User = require("./models/User");
|
|
||||||
const Article = require("./models/Article");
|
|
||||||
const Tag = require("./models/Tag");
|
|
||||||
const Comment = require("./models/Comment");
|
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
// Body parser
|
// Body parser
|
||||||
@@ -64,6 +55,29 @@ app.use((req, res, next) => {
|
|||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
var db = require("./models");
|
||||||
|
*/
|
||||||
|
// Import Models
|
||||||
|
const User = require("./models/User");
|
||||||
|
const Article = require("./models/Article");
|
||||||
|
const Tag = require("./models/Tag");
|
||||||
|
const Comment = require("./models/Comment");
|
||||||
|
|
||||||
|
// Relations
|
||||||
|
User.belongsToMany(User, { as: "followers", through: "Followers", foreignKey: "userId", timestamps: false });
|
||||||
|
User.belongsToMany(User, { as: "following", through: "Followers", foreignKey: "followerId", timestamps: false });
|
||||||
|
User.hasMany(Article, { foreignKey: "authorId", onDelete: "CASCADE" });
|
||||||
|
Article.belongsTo(User, { as: "author", foreignKey: "authorId" });
|
||||||
|
User.hasMany(Comment, { foreignKey: "authorId", onDelete: "CASCADE" });
|
||||||
|
Comment.belongsTo(User, { as: "author", foreignKey: "authorId" });
|
||||||
|
Article.hasMany(Comment, { foreignKey: "articleId", onDelete: "CASCADE" });
|
||||||
|
Comment.belongsTo(Article, { foreignKey: "articleId" });
|
||||||
|
User.belongsToMany(Article, { as: "favorites", through: "Favorites", timestamps: false });
|
||||||
|
Article.belongsToMany(User, { through: "Favorites", foreignKey: "articleId", timestamps: false });
|
||||||
|
Article.belongsToMany(Tag, { through: "TagLists", as: "tagLists", foreignKey: "articleId", timestamps: false, onDelete: "CASCADE" });
|
||||||
|
Tag.belongsToMany(Article, { through: "ArticleTags", uniqueKey: false, timestamps: false });
|
||||||
|
|
||||||
|
|
||||||
// Route files
|
// Route files
|
||||||
const users = require("./routes/api/users");
|
const users = require("./routes/api/users");
|
||||||
@@ -84,58 +98,6 @@ app.use(tags);
|
|||||||
app.use(errorHandler);
|
app.use(errorHandler);
|
||||||
//console.log(`User: ${User}`);
|
//console.log(`User: ${User}`);
|
||||||
|
|
||||||
|
|
||||||
// Relations
|
|
||||||
User.belongsToMany(User, {
|
|
||||||
as: "followers",
|
|
||||||
through: "Followers",
|
|
||||||
foreignKey: "userId",
|
|
||||||
timestamps: false,
|
|
||||||
});
|
|
||||||
User.belongsToMany(User, {
|
|
||||||
as: "following",
|
|
||||||
through: "Followers",
|
|
||||||
foreignKey: "followerId",
|
|
||||||
timestamps: false,
|
|
||||||
});
|
|
||||||
User.hasMany(Article, {
|
|
||||||
foreignKey: "authorId",
|
|
||||||
onDelete: "CASCADE",
|
|
||||||
});
|
|
||||||
Article.belongsTo(User, { as: "author", foreignKey: "authorId" });
|
|
||||||
User.hasMany(Comment, {
|
|
||||||
foreignKey: "authorId",
|
|
||||||
onDelete: "CASCADE",
|
|
||||||
});
|
|
||||||
Comment.belongsTo(User, { as: "author", foreignKey: "authorId" });
|
|
||||||
Article.hasMany(Comment, {
|
|
||||||
foreignKey: "articleId",
|
|
||||||
onDelete: "CASCADE",
|
|
||||||
});
|
|
||||||
Comment.belongsTo(Article, { foreignKey: "articleId" });
|
|
||||||
User.belongsToMany(Article, {
|
|
||||||
as: "favorites",
|
|
||||||
through: "Favorites",
|
|
||||||
timestamps: false,
|
|
||||||
});
|
|
||||||
Article.belongsToMany(User, {
|
|
||||||
through: "Favorites",
|
|
||||||
foreignKey: "articleId",
|
|
||||||
timestamps: false,
|
|
||||||
});
|
|
||||||
Article.belongsToMany(Tag, {
|
|
||||||
through: "TagLists",
|
|
||||||
as: "tagLists",
|
|
||||||
foreignKey: "articleId",
|
|
||||||
timestamps: false,
|
|
||||||
onDelete: "CASCADE",
|
|
||||||
});
|
|
||||||
Tag.belongsToMany(Article, {
|
|
||||||
through: "ArticleTags",
|
|
||||||
uniqueKey: false,
|
|
||||||
timestamps: false,
|
|
||||||
})
|
|
||||||
|
|
||||||
//Article.sync();
|
//Article.sync();
|
||||||
/*
|
/*
|
||||||
const sync = async () => await sequelize.sync({ force: true });
|
const sync = async () => await sequelize.sync({ force: true });
|
||||||
|
|||||||
Reference in New Issue
Block a user