Skip to content
Merged
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
30 changes: 16 additions & 14 deletions database/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,11 @@ const Book = sequelize.define('book', {
image: Sequelize.STRING,
synopsis: Sequelize.STRING(2000),
goodReads_id: {
type: Sequelize.INTEGER,
type: Sequelize.BIGINT,
unique: true
},
popularity: Sequelize.DECIMAL,
vote_avg: Sequelize.DECIMAL,
vote_count: Sequelize.INTEGER,
genre_id: Sequelize.INTEGER
vote_count: Sequelize.BIGINT
});

const Genre = sequelize.define('genre', {
Expand All @@ -63,6 +61,7 @@ const User_Genre = sequelize.define('user_genre', {

const Medium_Genre = sequelize.define('medium_genre', {});

const Book_Genre = sequelize.define('book_genre', {});

const User_Media = sequelize.define('user_media', {
rating: Sequelize.INTEGER
Expand All @@ -78,7 +77,8 @@ User.belongsToMany(Genre, { through: User_Genre });
Medium.belongsToMany(Genre, { through: Medium_Genre });
Genre.belongsToMany(Medium, { through: Medium_Genre });


Book.belongsToMany(Genre, { through: Book_Genre });
Genre.belongsToMany(Book, { through: Book_Genre });

const addUser = (id_token) => {
const testuser = User.create({ id_token });
Expand All @@ -103,13 +103,17 @@ const addMedium = (mediumObj, id_token) => {
.catch(console.log);
};

const addBookFromScrape = async (bookObj) => {
try {
const scrapedBook = await Book.upsert(bookObj);
return scrapedBook;
} catch (err) {
console.log(err);
}
const addBookFromScrape = (bookObj, genre_id, name) => {
return Book.upsert(bookObj)
.then(() => {
return Genre.upsert({ genre_id, name })
})
.then(async () => {
let book = await Book.findOne({ where: { goodReads_id: bookObj.goodReads_id } });
let genre = await Genre.findOne({ where: { name } });
return genre.addBook(book.id);
})
.catch(console.log);
};

const addGenre = (genre_id) => {
Expand Down Expand Up @@ -343,5 +347,3 @@ module.exports = { addUser, addMedium, findOneUserByToken, getLastThreeMedia, ad
// Medium.findAll().then(data => {
// console.log('find all media', data[0].dataValues);
// }).catch(console.log);

// Book.sync({ force: true });
21 changes: 0 additions & 21 deletions goodReads/genres.js

This file was deleted.

52 changes: 0 additions & 52 deletions goodReads/index.js

This file was deleted.

12 changes: 11 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const bodyParser = require('body-parser');
const db = require('./database');
const cors = require('cors');
const PORT = process.env.PORT || 8081;
const { scrapeGR } = require('./goodReads');

const app = express();
// app.use(cors());
Expand Down Expand Up @@ -103,6 +102,17 @@ app.post('/db/getTopGenres', (req, res) => {
})
});

app.post('/db/addGoodReadsBook', async (req, res) => {
let { bookObj, genre_id, name } = req.body;
try {
await db.addBookFromScrape(bookObj, genre_id, name);
res.sendStatus(200);
} catch (err) {
console.log(err);
res.sendStatus(500);
}
});

app.listen(PORT, () => {
console.log(`Listening on port ${PORT}`);
});