public async Task <IActionResult> CreateTextTracksUploadTicket(int videoId, [FromBody] VidoeTextTracksUploadTicketRequestDto request) { try { var result = await _videoServices.CreateTextTracksUploadTicketAsync(videoId, request); return(Ok(result)); } catch (CourseValidateException ex) { return(BadRequest(ex.Message)); } catch (VideoUpdateException ex) { return(BadRequest(ex.Message)); } catch (NotFoundException ex) { return(NotFound(ex.Message)); } catch (Exception ex) { _logger.LogCritical($"CreateTextTracksUploadTicket() Error: {ex}"); return(StatusCode(500, "Internal Server Error")); } }
public async Task <VidoeTextTracksUploadUploadTicketResponseDto> CreateTextTracksUploadTicketAsync(int videoId, VidoeTextTracksUploadTicketRequestDto request) { // 1. get user & video var user = await GetCurrentUser(); var video = await _videoRepository.GetVideoByIdAsync(videoId); if (video == null) { throw new NotFoundException("Video not found"); } // 2. check course status video.Content.Lecture.Section.Course.CourseUpdateValidate(user); // 3. get TT upload ticket var uploadTextTrackTicketRequestUrl = string.Format(_vimeoConfig.UploadTextTrackTicketRequestUrl, video.VimeoId); return(await VimeoHelper.TextTrackUploadTicketCreatePostAsync(_vimeoConfig.Token, uploadTextTrackTicketRequestUrl, request.LanguageCode, request.Name)); }