* integrate CoursePlansRepo.translateActivity, translateTopic, translateCoursePlan * move translation functions to requisite files * integrate translation endpoint * refactor: reorganize course-related repos, add request and response model classes * remove l2s from translation requests * update translation request and response models, use translation endpoint to get course info, cache courses with L1s in cache key * update topics repo to use translation endpoint * use activity translation endpoint * refactor: incremental loading of individual course info, account for discrepancy between translated IDs and original IDs * incremental loading of course batches * Update lib/pangea/course_plans/courses/course_plan_room_extension.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * cleanup * cleanup * fix: some name changes * formatting --------- Co-authored-by: WilsonLe <leanhminh2907@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: wcjord <32568597+wcjord@users.noreply.github.com>
27 lines
768 B
Dart
27 lines
768 B
Dart
import 'package:fluffychat/pangea/course_plans/course_media/course_media_info.dart';
|
|
import 'package:fluffychat/pangea/payload_client/models/course_plan/cms_course_plan_media.dart';
|
|
import 'package:fluffychat/pangea/payload_client/paginated_response.dart';
|
|
|
|
class CourseMediaResponse {
|
|
final List<CourseMediaInfo> mediaUrls;
|
|
|
|
CourseMediaResponse({
|
|
required this.mediaUrls,
|
|
});
|
|
|
|
factory CourseMediaResponse.fromCmsResponse(
|
|
PayloadPaginatedResponse<CmsCoursePlanMedia> response,
|
|
) {
|
|
return CourseMediaResponse(
|
|
mediaUrls: response.docs
|
|
.where((e) => e.url != null)
|
|
.map(
|
|
(e) => CourseMediaInfo(
|
|
uuid: e.id,
|
|
url: e.url!,
|
|
),
|
|
)
|
|
.toList(),
|
|
);
|
|
}
|
|
}
|