diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2017-01-15 19:53:11 +0100 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2017-01-15 19:53:11 +0100 |
commit | 4df023f2d4e4ea93d3fbc6010f0460511ba45140 (patch) | |
tree | 02f8df3be3d9a3fff943aa186daed22f0825f266 /server/controllers/api/videos.js | |
parent | 9bce75925eb972f7a49c25250e636b7b76734475 (diff) | |
download | PeerTube-4df023f2d4e4ea93d3fbc6010f0460511ba45140.tar.gz PeerTube-4df023f2d4e4ea93d3fbc6010f0460511ba45140.tar.zst PeerTube-4df023f2d4e4ea93d3fbc6010f0460511ba45140.zip |
Server: create transaction refractoring
Diffstat (limited to 'server/controllers/api/videos.js')
-rw-r--r-- | server/controllers/api/videos.js | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/server/controllers/api/videos.js b/server/controllers/api/videos.js index 9a50a29be..ebfdb32f9 100644 --- a/server/controllers/api/videos.js +++ b/server/controllers/api/videos.js | |||
@@ -20,6 +20,7 @@ const validatorsSort = validators.sort | |||
20 | const validatorsVideos = validators.videos | 20 | const validatorsVideos = validators.videos |
21 | const search = middlewares.search | 21 | const search = middlewares.search |
22 | const sort = middlewares.sort | 22 | const sort = middlewares.sort |
23 | const databaseUtils = require('../../helpers/database-utils') | ||
23 | const utils = require('../../helpers/utils') | 24 | const utils = require('../../helpers/utils') |
24 | 25 | ||
25 | const router = express.Router() | 26 | const router = express.Router() |
@@ -111,7 +112,7 @@ function addVideoRetryWrapper (req, res, next) { | |||
111 | errorMessage: 'Cannot insert the video with many retries.' | 112 | errorMessage: 'Cannot insert the video with many retries.' |
112 | } | 113 | } |
113 | 114 | ||
114 | utils.retryWrapper(addVideo, options, function (err) { | 115 | databaseUtils.retryTransactionWrapper(addVideo, options, function (err) { |
115 | if (err) return next(err) | 116 | if (err) return next(err) |
116 | 117 | ||
117 | // TODO : include Location of the new video -> 201 | 118 | // TODO : include Location of the new video -> 201 |
@@ -124,11 +125,7 @@ function addVideo (req, res, videoFile, callback) { | |||
124 | 125 | ||
125 | waterfall([ | 126 | waterfall([ |
126 | 127 | ||
127 | function startTransaction (callbackWaterfall) { | 128 | databaseUtils.startSerializableTransaction, |
128 | db.sequelize.transaction({ isolationLevel: 'SERIALIZABLE' }).asCallback(function (err, t) { | ||
129 | return callbackWaterfall(err, t) | ||
130 | }) | ||
131 | }, | ||
132 | 129 | ||
133 | function findOrCreateAuthor (t, callbackWaterfall) { | 130 | function findOrCreateAuthor (t, callbackWaterfall) { |
134 | const user = res.locals.oauth.token.User | 131 | const user = res.locals.oauth.token.User |
@@ -243,7 +240,7 @@ function updateVideoRetryWrapper (req, res, next) { | |||
243 | errorMessage: 'Cannot update the video with many retries.' | 240 | errorMessage: 'Cannot update the video with many retries.' |
244 | } | 241 | } |
245 | 242 | ||
246 | utils.retryWrapper(updateVideo, options, function (err) { | 243 | databaseUtils.retryTransactionWrapper(updateVideo, options, function (err) { |
247 | if (err) return next(err) | 244 | if (err) return next(err) |
248 | 245 | ||
249 | // TODO : include Location of the new video -> 201 | 246 | // TODO : include Location of the new video -> 201 |
@@ -258,11 +255,7 @@ function updateVideo (req, res, finalCallback) { | |||
258 | 255 | ||
259 | waterfall([ | 256 | waterfall([ |
260 | 257 | ||
261 | function startTransaction (callback) { | 258 | databaseUtils.startSerializableTransaction, |
262 | db.sequelize.transaction({ isolationLevel: 'SERIALIZABLE' }).asCallback(function (err, t) { | ||
263 | return callback(err, t) | ||
264 | }) | ||
265 | }, | ||
266 | 259 | ||
267 | function findOrCreateTags (t, callback) { | 260 | function findOrCreateTags (t, callback) { |
268 | if (videoInfosToUpdate.tags) { | 261 | if (videoInfosToUpdate.tags) { |
@@ -384,19 +377,16 @@ function listVideoAbuses (req, res, next) { | |||
384 | } | 377 | } |
385 | 378 | ||
386 | function reportVideoAbuseRetryWrapper (req, res, next) { | 379 | function reportVideoAbuseRetryWrapper (req, res, next) { |
387 | utils.transactionRetryer( | 380 | const options = { |
388 | function (callback) { | 381 | arguments: [ req, res ], |
389 | return reportVideoAbuse(req, res, callback) | 382 | errorMessage: 'Cannot report abuse to the video with many retries.' |
390 | }, | 383 | } |
391 | function (err) { | ||
392 | if (err) { | ||
393 | logger.error('Cannot report abuse to the video with many retries.', { error: err }) | ||
394 | return next(err) | ||
395 | } | ||
396 | 384 | ||
397 | return res.type('json').status(204).end() | 385 | databaseUtils.retryTransactionWrapper(reportVideoAbuse, options, function (err) { |
398 | } | 386 | if (err) return next(err) |
399 | ) | 387 | |
388 | return res.type('json').status(204).end() | ||
389 | }) | ||
400 | } | 390 | } |
401 | 391 | ||
402 | function reportVideoAbuse (req, res, finalCallback) { | 392 | function reportVideoAbuse (req, res, finalCallback) { |