Price history log #87

Merged
RabbIT09-n merged 4 commits from price-history-log into master 2020-01-31 22:53:19 +01:00
5 changed files with 46 additions and 7 deletions
Showing only changes of commit 42eddb3aa5 - Show all commits

View File

@@ -1,6 +1,7 @@
const moment = require("moment");
const { bulkUpsertRealEstates } = require("../../helpers/db/realEstate");
const { bulkUpsertPriceHistory } = require("../../helpers/db/priceHistory");
class PostgresSaver {
connect() {
@@ -11,7 +12,17 @@ class PostgresSaver {
async save(results) {
const savedRecords = await bulkUpsertRealEstates(results);
//Extruding data for price history table
const resultPrices = savedRecords.map(realEstate => {
return {
realEstateId: realEstate.dataValues.id,
price: realEstate.dataValues.price
};
});
const savedPrices = await bulkUpsertPriceHistory(resultPrices);
//
console.log("savedPrices", savedPrices);
//
if (Array.isArray(savedRecords)) {
const newRealEstates = [];
const existingRealEstates = [];

View File

@@ -0,0 +1,19 @@
"use strict";
const db = require("../../models/index");
const sequelize = require("sequelize");
const bulkUpsertPriceHistory = async priceHistoryData => {
try {
const order = [["realEstateId", "desc"]];
return await db.PriceHistory.bulkCreate(priceHistoryData, {
order
});
} catch (e) {
console.log("Error bulk upserting priceHistory : ", e);
}
};
module.exports = {
bulkUpsertPriceHistory
};

View File

@@ -63,7 +63,9 @@ const bulkUpsertRealEstates = async realEstateData => {
"numberOfViewsAgency"
];
const order = [["updatedAt", "desc"]];
//
//console.log("realEstateData:", realEstateData);
//
return await db.RealEstate.bulkCreate(realEstateData, {
updateOnDuplicate: fieldsToUpdateIfDuplicate,
returning: true,

View File

@@ -12,14 +12,18 @@ module.exports = {
realEstateId: {
type: Sequelize.BIGINT,
allowNull: false,
unique: "uniquePriceRealEstate",
references: {
model: "RealEstate",
model: "RealEstates",
key: "id"
},
onUpdate: "CASCADE",
onDelete: "SET NULL"
},
price: Sequelize.REAL,
price: {
type: Sequelize.REAL,
unique: "uniquePriceRealEstate"
},
createdAt: {
type: Sequelize.DATE,
defaultValue: Sequelize.literal("NOW()")

View File

@@ -11,15 +11,18 @@ module.exports = (sequalize, DataTypes) => {
realEstateId: {
type: DataTypes.BIGINT,
allowNull: false,
unique: "uniquePriceRealEstate",
references: {
model: "RealEstate",
model: "RealEstates",
key: "id"
},
onUpdate: "CASCADE",
onDelete: "SET NULL"
},
price: DataTypes.REAL
price: {
type: DataTypes.REAL,
unique: "uniquePriceRealEstate"
}
});
PriceHistory.associate = models => {