-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add internal/ingest recording delete endpoint
- Loading branch information
1 parent
6fec6e5
commit 7d2682c
Showing
4 changed files
with
99 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
const { httpErrorHandler } = require('../../../common/error-handling/http') | ||
// const streamDao = require('../../streams/dao') | ||
// const streamSourceFileDao = require('../../stream-source-files/dao') | ||
// const streamSegmentDao = require('../../stream-segments/dao') | ||
// const fileFormatDao = require('../../stream-segments/dao/file-extensions') | ||
const dao = require('../../stream-source-files/dao') | ||
|
||
const Converter = require('../../../common/converter') | ||
const ArrayConverter = require('../../../common/converter/array') | ||
const arbimonService = require('../../_services/arbimon') | ||
|
||
/** | ||
* @swagger | ||
* | ||
* /streams/{id}/stream-source-file-and-segments: | ||
* delete: | ||
* summary: Deletes a stream source file and related segments | ||
* tags: | ||
* - internal | ||
* requestBody: | ||
* description: Mixed content of stream source file object and stream segments | ||
* required: true | ||
* responses: | ||
* 204: | ||
* description: Deleted | ||
* 400: | ||
* description: Invalid query parameters | ||
*/ | ||
|
||
module.exports = function (req, res) { | ||
const streamId = req.params.streamId | ||
|
||
const converter = new Converter(req.body, {}) | ||
converter.convert('stream_source_file') | ||
converter.convert('stream_segments') | ||
|
||
const sfConverter = new Converter(req.body.stream_source_file, {}) | ||
sfConverter.convert('id').toString() | ||
|
||
const segConverter = new ArrayConverter(req.body.stream_segments) | ||
segConverter.convert('id').toString() | ||
segConverter.convert('start').toMomentUtc() | ||
segConverter.convert('path').toString() | ||
|
||
return converter.validate() | ||
.then(async () => { | ||
const sfParams = await sfConverter.validate() // validate stream_source_file attributes | ||
const transformedArray = await segConverter.validate() // validate stream_segment[] attributes | ||
|
||
if (arbimonService.isEnabled && transformedArray.length) { | ||
await arbimonService.deleteRecordingsFromSegments(streamId, transformedArray) | ||
} | ||
|
||
const streamSourceFile = await dao.get(sfParams.id) | ||
await dao.remove(streamSourceFile) | ||
res.sendStatus(204) | ||
}) | ||
.catch((err) => { | ||
console.error('Failed deleting stream source file and segments', err) | ||
httpErrorHandler(req, res, 'Failed deleting stream source file and segments')(err) | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters