fix update tags of events
This commit is contained in:
@@ -497,9 +497,9 @@ const eventController = {
|
|||||||
const eventDetails = {
|
const eventDetails = {
|
||||||
title: body.title || event.title,
|
title: body.title || event.title,
|
||||||
// sanitize and linkify html
|
// sanitize and linkify html
|
||||||
description: helpers.sanitizeHTML(linkifyHtml(body.description, { target: '_blank' })) || event.description,
|
description: helpers.sanitizeHTML(linkifyHtml(body.description || '', { target: '_blank' })) || event.description,
|
||||||
multidate: body.multidate,
|
multidate: body.multidate,
|
||||||
start_datetime: body.start_datetime,
|
start_datetime: body.start_datetime || event.start_datetime,
|
||||||
end_datetime: body.end_datetime,
|
end_datetime: body.end_datetime,
|
||||||
recurrent
|
recurrent
|
||||||
}
|
}
|
||||||
@@ -517,7 +517,7 @@ const eventController = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// modify associated media only if a new file is uploaded or remote image_url is used
|
// modify associated media only if a new file is uploaded or remote image_url is used
|
||||||
if (req.file || body.image_url) {
|
if (req.file || (body.image_url && /^https?:\/\//.test(body.image_url))) {
|
||||||
if (!req.file && body.image_url) {
|
if (!req.file && body.image_url) {
|
||||||
req.file = await helpers.getImageFromURL(body.image_url)
|
req.file = await helpers.getImageFromURL(body.image_url)
|
||||||
}
|
}
|
||||||
@@ -540,10 +540,29 @@ const eventController = {
|
|||||||
eventDetails.media = [ { ...event.media[0], focalpoint } ] // [0].focalpoint = focalpoint
|
eventDetails.media = [ { ...event.media[0], focalpoint } ] // [0].focalpoint = focalpoint
|
||||||
}
|
}
|
||||||
await event.update(eventDetails)
|
await event.update(eventDetails)
|
||||||
const [place] = await Place.findOrCreate({
|
|
||||||
where: { name: body.place_name },
|
// find or create the place
|
||||||
defaults: { address: body.place_address }
|
let place
|
||||||
})
|
if (body.place_id) {
|
||||||
|
place = await Place.findByPk(body.place_id)
|
||||||
|
if (!place) {
|
||||||
|
return res.status(400).send(`Place not found`)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!body.place_name) {
|
||||||
|
return res.status(400).send(`Place not found`)
|
||||||
|
}
|
||||||
|
place = await Place.findOne({ where: Sequelize.where(Sequelize.fn('LOWER', Sequelize.col('name')), Op.eq, body.place_name.trim().toLocaleLowerCase() )})
|
||||||
|
if (!place) {
|
||||||
|
if (!body.place_address || !body.place_name) {
|
||||||
|
return res.status(400).send(`place_id or place_name and place_address required`)
|
||||||
|
}
|
||||||
|
place = await Place.create({
|
||||||
|
name: body.place_name,
|
||||||
|
address: body.place_address
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await event.setPlace(place)
|
await event.setPlace(place)
|
||||||
|
|
||||||
@@ -554,7 +573,10 @@ const eventController = {
|
|||||||
await event.setTags(tags)
|
await event.setTags(tags)
|
||||||
}
|
}
|
||||||
|
|
||||||
const newEvent = await Event.findByPk(event.id, { include: [Tag, Place] })
|
let newEvent = await Event.findByPk(event.id, { include: [Tag, Place] })
|
||||||
|
newEvent = newEvent.get()
|
||||||
|
newEvent.tags = tags.map(t => t.tag)
|
||||||
|
newEvent.place = place
|
||||||
res.json(newEvent)
|
res.json(newEvent)
|
||||||
|
|
||||||
// create recurrent instances of event if needed
|
// create recurrent instances of event if needed
|
||||||
|
|||||||
Reference in New Issue
Block a user