Skip to content

Commit 0a504f4

Browse files
committed
Moved back to implicit transactions.
1 parent b9fc2db commit 0a504f4

File tree

1 file changed

+22
-25
lines changed

1 file changed

+22
-25
lines changed

src/routes/milestones/update.js

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,32 @@ const permissions = tcMiddleware.permissions;
1717
/**
1818
* Cascades endDate/completionDate changes to all milestones with a greater order than the given one.
1919
* @param {Object} updatedMilestone the milestone that was updated
20-
* @param {Object} transaction the wrapping transaction
2120
* @returns {Promise<void>} a promise
2221
*/
23-
async function updateComingMilestones(updatedMilestone, transaction) {
24-
const comingMilestones = _.sortBy(await models.Milestone.findAll({
22+
function updateComingMilestones(updatedMilestone) {
23+
return models.Milestone.findAll({
2524
where: {
2625
timelineId: updatedMilestone.timelineId,
2726
order: { $gt: updatedMilestone.order },
2827
},
29-
transaction,
30-
}), 'order');
31-
let startDate = moment.utc(updatedMilestone.completionDate
32-
? updatedMilestone.completionDate
33-
: updatedMilestone.endDate).add(1, 'days').toDate();
34-
const promises = _.map(comingMilestones, (_milestone) => {
35-
const milestone = _milestone;
36-
if (milestone.startDate.getTime() !== startDate.getTime()) {
37-
milestone.startDate = startDate;
38-
milestone.endDate = moment.utc(startDate).add(milestone.duration - 1, 'days').toDate();
39-
}
40-
startDate = moment.utc(milestone.completionDate
41-
? milestone.completionDate
42-
: milestone.endDate).add(1, 'days').toDate();
43-
return milestone.save({ transaction });
28+
}).then((affectedMilestones) => {
29+
const comingMilestones = _.sortBy(affectedMilestones, 'order');
30+
let startDate = moment.utc(updatedMilestone.completionDate
31+
? updatedMilestone.completionDate
32+
: updatedMilestone.endDate).add(1, 'days').toDate();
33+
const promises = _.map(comingMilestones, (_milestone) => {
34+
const milestone = _milestone;
35+
if (milestone.startDate.getTime() !== startDate.getTime()) {
36+
milestone.startDate = startDate;
37+
milestone.endDate = moment.utc(startDate).add(milestone.duration - 1, 'days').toDate();
38+
}
39+
startDate = moment.utc(milestone.completionDate
40+
? milestone.completionDate
41+
: milestone.endDate).add(1, 'days').toDate();
42+
return milestone.save();
43+
});
44+
return Promise.all(promises);
4445
});
45-
await Promise.all(promises);
4646
}
4747

4848
const schema = {
@@ -97,7 +97,7 @@ module.exports = [
9797
let original;
9898
let updated;
9999

100-
return models.sequelize.transaction(transaction =>
100+
return models.sequelize.transaction(() =>
101101
// Find the milestone
102102
models.Milestone.findOne({ where })
103103
.then((milestone) => {
@@ -134,7 +134,7 @@ module.exports = [
134134
}
135135

136136
// Update
137-
return milestone.update(entityToUpdate, { transaction });
137+
return milestone.update(entityToUpdate);
138138
})
139139
.then((updatedMilestone) => {
140140
// Omit deletedAt, deletedBy
@@ -151,7 +151,6 @@ module.exports = [
151151
id: { $ne: updated.id },
152152
order: updated.order,
153153
},
154-
transaction,
155154
})
156155
.then((count) => {
157156
if (count === 0) {
@@ -167,7 +166,6 @@ module.exports = [
167166
id: { $ne: updated.id },
168167
order: { $between: [original.order + 1, updated.order] },
169168
},
170-
transaction,
171169
});
172170
}
173171

@@ -179,7 +177,6 @@ module.exports = [
179177
id: { $ne: updated.id },
180178
order: { $between: [updated.order, original.order - 1] },
181179
},
182-
transaction,
183180
});
184181
});
185182
})
@@ -191,7 +188,7 @@ module.exports = [
191188
original.duration === updated.duration) {
192189
return Promise.resolve();
193190
}
194-
return updateComingMilestones(updated, transaction);
191+
return updateComingMilestones(updated);
195192
}),
196193
)
197194
.then(() => {

0 commit comments

Comments
 (0)