Fix update bug with work items and activities. Fix placement of item in AR view
This commit is contained in:
5
server/package-lock.json
generated
5
server/package-lock.json
generated
@@ -1596,6 +1596,11 @@
|
||||
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
|
||||
"dev": true
|
||||
},
|
||||
"deepmerge": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.1.0.tgz",
|
||||
"integrity": "sha512-Q89Z26KAfA3lpPGhbF6XMfYAm3jIV3avViy6KOJ2JLzFbeWHOvPQUu5aSJIWXap3gDZC2y1eF5HXEPI2wGqgvw=="
|
||||
},
|
||||
"default-require-extensions": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz",
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
"config": "^1.25.1",
|
||||
"cors": "^2.8.3",
|
||||
"credential": "^2.0.0",
|
||||
"deepmerge": "^2.1.0",
|
||||
"express": "^4.15.2",
|
||||
"gridfs-stream": "jlyonsmith/gridfs-stream",
|
||||
"handlebars": "^4.0.10",
|
||||
|
||||
@@ -111,13 +111,7 @@ export class ActivityRoutes {
|
||||
}
|
||||
|
||||
let Activity = this.db.Activity
|
||||
let activityUpdates = null
|
||||
|
||||
try {
|
||||
activityUpdates = new Activity(req.body)
|
||||
} catch (err) {
|
||||
throw createError.BadRequest("Invalid data")
|
||||
}
|
||||
let activityUpdates = req.body
|
||||
|
||||
const foundActivity = await Activity.findById(activityUpdates._id)
|
||||
|
||||
@@ -127,9 +121,13 @@ export class ActivityRoutes {
|
||||
)
|
||||
}
|
||||
|
||||
foundActivity.merge(activityUpdates)
|
||||
// Strip off all BSON types
|
||||
foundActivity = JSON.parse(JSON.stringify(foundActivity))
|
||||
|
||||
const savedActivity = await foundActivity.save()
|
||||
const mergedActivity = Activity.hydrate(
|
||||
merge(foundActivity, activityUpdates)
|
||||
)
|
||||
const savedActivity = await mergedActivity.save()
|
||||
|
||||
res.json(savedActivity.toClient())
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import passport from "passport"
|
||||
import createError from "http-errors"
|
||||
import autobind from "autobind-decorator"
|
||||
import merge from "deepmerge"
|
||||
import { catchAll } from "."
|
||||
|
||||
@autobind
|
||||
@@ -146,15 +147,8 @@ export class WorkItemRoutes {
|
||||
}
|
||||
|
||||
let WorkItem = this.db.WorkItem
|
||||
let workItemUpdates = null
|
||||
|
||||
try {
|
||||
workItemUpdates = new WorkItem(req.body)
|
||||
} catch (err) {
|
||||
throw createError.BadRequest("Invalid data")
|
||||
}
|
||||
|
||||
const foundWorkItem = await WorkItem.findById(workItemUpdates._id)
|
||||
let workItemUpdates = req.body
|
||||
let foundWorkItem = await WorkItem.findById(workItemUpdates._id)
|
||||
|
||||
if (!foundWorkItem) {
|
||||
return next(
|
||||
@@ -162,9 +156,13 @@ export class WorkItemRoutes {
|
||||
)
|
||||
}
|
||||
|
||||
foundWorkItem.merge(workItemUpdates)
|
||||
// Strip off all BSON types
|
||||
foundWorkItem = JSON.parse(JSON.stringify(foundWorkItem))
|
||||
|
||||
const savedWorkItem = await foundWorkItem.save()
|
||||
const mergedWorkItem = WorkItem.hydrate(
|
||||
merge(foundWorkItem, workItemUpdates)
|
||||
)
|
||||
const savedWorkItem = await mergedWorkItem.save()
|
||||
|
||||
res.json(savedWorkItem.toClient())
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ export const workItemSchema = new Schema(
|
||||
coordinates: [Number],
|
||||
},
|
||||
address: String,
|
||||
photos: [Schema.Types.ObjectId],
|
||||
photos: [{ type: Schema.Types.ObjectId }],
|
||||
details: String,
|
||||
ticketNumber: { type: Number, default: 0 },
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user