Skip to content

Commit 1907311

Browse files
authored
Fix course share URL (#1163)
^APPS-3541
1 parent d38face commit 1907311

File tree

4 files changed

+11
-26
lines changed

4 files changed

+11
-26
lines changed

Stepic/Sources/Modules/CourseInfo/CourseInfoDataFlow.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ enum CourseInfo {
105105
/// Present exam in web
106106
enum ExamLessonPresentation {
107107
struct Response {
108-
let urlPath: String
108+
let url: URL
109109
}
110110

111111
struct ViewModel {

Stepic/Sources/Modules/CourseInfo/CourseInfoInteractor.swift

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -71,25 +71,6 @@ final class CourseInfoInteractor: CourseInfoInteractorProtocol {
7171
self.shouldCheckIAPPurchaseSupport && self.currentMobileTier?.priceTier != nil
7272
}
7373

74-
private var courseWebURL: URL? {
75-
guard let course = self.currentCourse else {
76-
return nil
77-
}
78-
79-
if let slug = course.slug {
80-
return self.urlFactory.makeCourse(slug: slug)
81-
} else {
82-
return self.urlFactory.makeCourse(id: course.id)
83-
}
84-
}
85-
86-
private var courseWebSyllabusURLPath: String? {
87-
guard let courseWebURLPath = self.courseWebURL?.absoluteString else {
88-
return nil
89-
}
90-
return "\(courseWebURLPath)/syllabus"
91-
}
92-
9374
// Tab index -> Submodule
9475
private var submodules: [Int: CourseInfoSubmoduleProtocol] = [:]
9576

@@ -213,12 +194,13 @@ final class CourseInfoInteractor: CourseInfoInteractorProtocol {
213194
}
214195

215196
func doCourseShareAction(request: CourseInfo.CourseShareAction.Request) {
216-
guard let courseWebURL = self.courseWebURL else {
197+
guard let currentCourse = self.currentCourse,
198+
let courseURL = self.urlFactory.makeCourse(id: currentCourse.id) else {
217199
return
218200
}
219201

220202
self.analytics.send(.shareCourseTapped)
221-
self.presenter.presentCourseSharing(response: .init(url: courseWebURL, courseViewSource: self.courseViewSource))
203+
self.presenter.presentCourseSharing(response: .init(url: courseURL, courseViewSource: self.courseViewSource))
222204
}
223205

224206
func doCourseUnenrollmentAction(request: CourseInfo.CourseUnenrollmentAction.Request) {
@@ -755,9 +737,12 @@ extension CourseInfoInteractor: CourseInfoTabSyllabusOutputProtocol {
755737
}
756738

757739
func presentExamLesson() {
758-
if let courseWebSyllabusURLPath = self.courseWebSyllabusURLPath {
759-
self.presenter.presentExamLesson(response: .init(urlPath: courseWebSyllabusURLPath))
740+
guard let currentCourse = self.currentCourse,
741+
let courseSyllabusURL = self.urlFactory.makeCourseSyllabus(id: currentCourse.id) else {
742+
return
760743
}
744+
745+
self.presenter.presentExamLesson(response: .init(url: courseSyllabusURL))
761746
}
762747
}
763748

Stepic/Sources/Modules/CourseInfo/CourseInfoPresenter.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ final class CourseInfoPresenter: CourseInfoPresenterProtocol {
7171

7272
func presentExamLesson(response: CourseInfo.ExamLessonPresentation.Response) {
7373
let viewModel = CourseInfo.ExamLessonPresentation.ViewModel(
74-
urlPath: response.urlPath
74+
urlPath: response.url.absoluteString
7575
)
7676
self.viewController?.displayExamLesson(viewModel: viewModel)
7777
}

Stepic/Sources/Modules/CourseInfo/CourseInfoViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ extension CourseInfoViewController: CourseInfoViewControllerProtocol {
527527
return
528528
}
529529
WebControllerManager.shared.presentWebControllerWithURLString(
530-
"\(viewModel.urlPath)?from_mobile_app=true",
530+
viewModel.urlPath,
531531
inController: strongSelf,
532532
withKey: .exam,
533533
allowsSafari: true,

0 commit comments

Comments
 (0)