diff --git a/app/controllers/deleteRealEstate.js b/app/controllers/deleteRealEstate.js
index dc840ec..2d37c70 100644
--- a/app/controllers/deleteRealEstate.js
+++ b/app/controllers/deleteRealEstate.js
@@ -1,21 +1,32 @@
-const { currentSearchRequest } = require("../helpers/url");
+const { currentKiviRealEstate } = require("../helpers/url");
+const { findRealEstateByAgencyId } = require("../helpers/db/realEstate");
const getDeletePublishedAd = async (req, res) => {
const title = "Uspješno ste izbrisali svoj oglas iz baze.";
- const searchRequest = await currentSearchRequest(req);
+ const kiviOriginal = await currentKiviRealEstate(req);
- if (!searchRequest || !searchRequest.dataValues) {
+ if (!kiviOriginal || !kiviOriginal.kiviAdId) {
+ res.render("notFound", { title: " " });
+ return;
+ }
+ const realEstate = await findRealEstateByAgencyId(kiviOriginal.kiviAdId);
+
+ if (!realEstate || !realEstate.dataValues) {
res.render("notFound", { title: " " });
return;
}
- searchRequest.subscribed = false;
- searchRequest.deletedEmail = searchRequest.email;
- searchRequest.email = "";
- await searchRequest.save();
+ realEstate.deleted = true;
+ realEstate.deletedAt = Date.now();
- res.render("unsubscribe", { nextStep: "/vrstanekretnine", title });
+ kiviOriginal.email = "";
+
+ await realEstate.save();
+
+ await kiviOriginal.save();
+
+ res.render("deleteRealEstate", { nextStep: "/", title });
};
module.exports = {
diff --git a/app/helpers/db/realEstate.js b/app/helpers/db/realEstate.js
index 17392ef..d7ab15e 100644
--- a/app/helpers/db/realEstate.js
+++ b/app/helpers/db/realEstate.js
@@ -350,6 +350,13 @@ const findRealEstatesForSearchRequest = async (searchRequest, maxResults) => {
}
};
}
+ //Query only for real estated that are not deleted
+ query.deleted = {
+ [Op.eq]: false
+ };
+ queryIncludeIncomplete.deleted = {
+ [Op.eq]: false
+ };
const order = [["updatedAt", "desc"]];
diff --git a/app/migrations/20200319093739-add-columns-deleted-to-realestates.js b/app/migrations/20200319093739-add-columns-deleted-to-realestates.js
new file mode 100644
index 0000000..7c59dd2
--- /dev/null
+++ b/app/migrations/20200319093739-add-columns-deleted-to-realestates.js
@@ -0,0 +1,22 @@
+"use strict";
+
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return Promise.all([
+ queryInterface.addColumn("RealEstates", "deleted", {
+ type: Sequelize.BOOLEAN,
+ defaultValue: false
+ }),
+ queryInterface.addColumn("RealEstates", "deletedAt", {
+ type: Sequelize.DATE
+ })
+ ]);
+ },
+
+ down: (queryInterface, Sequelize) => {
+ return Promise.all([
+ queryInterface.removeColumn("RealEstates", "deleted"),
+ queryInterface.removeColumn("RealEstates", "deletedAt")
+ ]);
+ }
+};
diff --git a/app/models/realEstate.js b/app/models/realEstate.js
index 0cb9374..4387f13 100644
--- a/app/models/realEstate.js
+++ b/app/models/realEstate.js
@@ -85,7 +85,9 @@ module.exports = (sequelize, DataTypes) => {
utilityConnection: DataTypes.BOOLEAN,
distanceToRiver: DataTypes.INTEGER,
numberOfViewsAgency: DataTypes.INTEGER,
- numberOfViewsKivi: DataTypes.INTEGER
+ numberOfViewsKivi: DataTypes.INTEGER,
+ deleted: DataTypes.BOOLEAN,
+ deletedAt: DataTypes.DATE
});
return RealEstate;
diff --git a/app/services/searchMatchService.js b/app/services/searchMatchService.js
index f39d21d..54baa60 100644
--- a/app/services/searchMatchService.js
+++ b/app/services/searchMatchService.js
@@ -9,11 +9,16 @@ const { MAX_REAL_ESTATES_IN_FIRST_EMAIL } = require("../config/appConfig");
const { EMAIL_FREQUENCY } = require("../common/enums");
const matchRealEstates = async realEstates => {
- if (Array.isArray(realEstates)) {
+ //Filter deleted real estates
+ const filteredRealEstates = realEstates.filter(
+ realEstate => realEstate.deleted === false
+ );
+
+ if (Array.isArray(filteredRealEstates)) {
const asyncMatchActions = [];
const matches = {};
const matchingRecords = [];
- for (const realEstate of realEstates) {
+ for (const realEstate of filteredRealEstates) {
const searchRequestsPromise = findSearchRequestsForRealEstate(realEstate);
asyncMatchActions.push(searchRequestsPromise);
diff --git a/app/views/deleteRealEstate.ejs b/app/views/deleteRealEstate.ejs
new file mode 100644
index 0000000..1dae6d3
--- /dev/null
+++ b/app/views/deleteRealEstate.ejs
@@ -0,0 +1,12 @@
+
+
+