Ejemplo n.º 1
0
        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"));
            }
        }
Ejemplo n.º 2
0
        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));
        }