(issue: Issue)
| 142 | } |
| 143 | |
| 144 | async function editStream(issue: Issue) { |
| 145 | const log = createThread(issue, 'streams/edit') |
| 146 | log.start() |
| 147 | |
| 148 | const data = issue.data |
| 149 | |
| 150 | const streamUrl = data.getString('stream_url') |
| 151 | |
| 152 | if (!streamUrl) { |
| 153 | log.error('The request is missing the "Stream URL"') |
| 154 | skippedIssues.add(issue) |
| 155 | return |
| 156 | } |
| 157 | |
| 158 | const stream: Stream = streams.first((_stream: Stream) => _stream.url === streamUrl) |
| 159 | if (!stream) { |
| 160 | log.error(`The stream with the URL "${streamUrl}" is already in the playlists`) |
| 161 | skippedIssues.add(issue) |
| 162 | return |
| 163 | } |
| 164 | |
| 165 | cacheData() |
| 166 | |
| 167 | stream.updateWithIssue(data) |
| 168 | |
| 169 | stream.setGuides(apiData.guidesGroupedByStreamId.get(stream.getId())) |
| 170 | |
| 171 | const errors = new Collection<Error>() |
| 172 | errors.concat(stream.validate()) |
| 173 | if (errors.isNotEmpty()) { |
| 174 | errors.forEach((err: Error) => { |
| 175 | log.error(err.message) |
| 176 | }) |
| 177 | skippedIssues.add(issue) |
| 178 | resetData() |
| 179 | log.info('All changes have been reverted') |
| 180 | return |
| 181 | } |
| 182 | |
| 183 | log.info('The stream description has been updated') |
| 184 | |
| 185 | processedIssues.add(issue) |
| 186 | } |
| 187 | |
| 188 | async function addStream(issue: Issue) { |
| 189 | const log = createThread(issue, 'streams/add') |
no test coverage detected