fetchAllVimeoVideoLinks method
Future<VimeoResponse<List<VimeoVideoLinkDto> > >
fetchAllVimeoVideoLinks({
- required String? videoId,
Get vimeo video links, resolutions and other information object
by calling https://player.vimeo.com/video/[videoId]/config
api.
vimeoId
- the identifier value of vimeo video url.
Throw VimeoApiException when error occurred.
Implementation
Future<VimeoResponse<List<VimeoVideoLinkDto>>> fetchAllVimeoVideoLinks({
required String? videoId,
}) async {
try {
final vimeoLink = 'https://player.vimeo.com/video/${videoId!}/config';
final response = await _dio.get(vimeoLink);
if (response.statusCode == 200) {
final config = VimeoConfigDto.fromJson(response.data);
return VimeoResponse.data(config.request.files.videoLinks);
} else if (response.statusCode == 403) {
var jsonData = jsonDecode(response.data) as dynamic;
throw VimeoApiException(
code: response.statusCode,
message: jsonData['message'],
);
} else {
throw VimeoApiException(
code: response.statusCode,
message: response.statusMessage,
);
}
} on DioError catch (e) {
Logger.e('VimeoRemoteService', e);
if (e.isNoConnectionError) {
throw VimeoApiException(
code: e.response?.statusCode,
message: 'No internet connection.',
);
} else if (e.error != null) {
Logger.e(
'VimeoRemoteService',
'errorResponse = ${e.response?.data}',
);
var errorResponse = e.response != null
? VimeoErrorResponseDto.fromJson(e.response?.data)
: const VimeoErrorResponseDto(message: 'Unknown Error!');
throw VimeoApiException(
code: e.response?.statusCode,
message: errorResponse.message,
);
} else {
rethrow;
}
}
}