diff --git a/app/controllers/publishRealEstate.js b/app/controllers/publishRealEstate.js
index dc68f58..4686cd8 100644
--- a/app/controllers/publishRealEstate.js
+++ b/app/controllers/publishRealEstate.js
@@ -1,4 +1,5 @@
const { findRealEstateByAgencyId } = require("../helpers/db/realEstate");
+const { bulkUpsertKiviPhotos } = require("../helpers/db/kiviOriginalAdsPhotos");
const { currentKiviRealEstate } = require("../helpers/url");
const validate = require("validate.js");
@@ -183,7 +184,7 @@ const postPublishInputs = async (req, res) => {
const nextStepPage = req.query.nextStep || "/uspjesnaobjava";
//Request body
- console.log("Body:", req.body);
+ //console.log("Body:", req.body);
const balcony = req.body.balcony === "on";
const elevator = req.body.elevator === "on";
@@ -245,9 +246,16 @@ const postPublishInputs = async (req, res) => {
const locationLong = req.body.lng || null;
//Contact email saved in other table
const contactEmail = req.body.email || "";
-
- const imageUrls = req.body.imageUrls.split("|") || [];
- console.log(imageUrls);
+ //Image urls are stored in new table
+ const imageUrls =
+ req.body.imageUrls.split("|").filter(url => url !== "") || [];
+ const imageUrlsData = imageUrls.map(url => {
+ return {
+ kiviAdId: kiviOriginal.kiviAdId,
+ photoUrl: url
+ };
+ });
+ const savedImageUrls = await bulkUpsertKiviPhotos(imageUrlsData);
realEstate.balcony = balcony;
realEstate.elevator = elevator;
diff --git a/app/helpers/db/kiviOriginalAdsPhotos.js b/app/helpers/db/kiviOriginalAdsPhotos.js
new file mode 100644
index 0000000..5533897
--- /dev/null
+++ b/app/helpers/db/kiviOriginalAdsPhotos.js
@@ -0,0 +1,17 @@
+"use strict";
+const db = require("../../models/index");
+const sequelize = require("sequelize");
+
+const bulkUpsertKiviPhotos = async kiviPhotosData => {
+ try {
+ return await db.KiviOriginalAdsPhotos.bulkCreate(kiviPhotosData, {
+ ignoreDuplicates: true
+ });
+ } catch (e) {
+ console.log("Error bulk upserting kiviOriginalAdsPhotos : ", e);
+ }
+};
+
+module.exports = {
+ bulkUpsertKiviPhotos
+};
diff --git a/app/migrations/20200312210336-add-table-kivi-photos.js b/app/migrations/20200312210336-add-table-kivi-photos.js
new file mode 100644
index 0000000..cef01f5
--- /dev/null
+++ b/app/migrations/20200312210336-add-table-kivi-photos.js
@@ -0,0 +1,39 @@
+"use strict";
+
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ const tableFields = {
+ id: {
+ type: Sequelize.BIGINT,
+ autoIncrement: true,
+ primaryKey: true,
+ allowNull: false
+ },
+ kiviAdId: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ references: {
+ model: "KiviOriginal",
+ key: "kiviAdId"
+ }
+ },
+ photoUrl: {
+ type: Sequelize.TEXT,
+ allowNull: false
+ },
+ createdAt: {
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal("NOW()")
+ },
+ updatedAt: {
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal("NOW()")
+ }
+ };
+ return queryInterface.createTable("KiviOriginalAdsPhotos", tableFields);
+ },
+
+ down: (queryInterface, Sequelize) => {
+ return queryInterface.dropTable("KiviOriginalAdsPhotos", {});
+ }
+};
diff --git a/app/models/kiviOriginalAdsPhotos.js b/app/models/kiviOriginalAdsPhotos.js
new file mode 100644
index 0000000..8321a0e
--- /dev/null
+++ b/app/models/kiviOriginalAdsPhotos.js
@@ -0,0 +1,41 @@
+"use strict";
+
+module.exports = (sequalize, DataTypes) => {
+ const KiviOriginalAdsPhotos = sequalize.define(
+ "KiviOriginalAdsPhotos",
+ {
+ id: {
+ type: DataTypes.BIGINT,
+ autoIncrement: true,
+ primaryKey: true,
+ allowNull: false
+ },
+ kiviAdId: {
+ type: DataTypes.UUID,
+ allowNull: false,
+ references: {
+ model: "KiviOriginal",
+ key: "kiviAdId"
+ }
+ },
+ photoUrl: {
+ type: DataTypes.TEXT,
+ allowNull: false
+ }
+ },
+ {
+ freezeTableName: true
+ }
+ );
+
+ KiviOriginalAdsPhotos.associate = models => {
+ KiviOriginalAdsPhotos.hasMany(models.KiviOriginal, {
+ foreignKey: "kiviAdId",
+ sourceKey: "kiviAdId",
+ targetKey: "kiviAdId",
+ as: "kiviOriginal"
+ });
+ };
+
+ return KiviOriginalAdsPhotos;
+};
diff --git a/app/views/publishPhotos.ejs b/app/views/publishPhotos.ejs
index 2c02ca1..3b28e75 100644
--- a/app/views/publishPhotos.ejs
+++ b/app/views/publishPhotos.ejs
@@ -8,8 +8,5 @@
-