Webservice: Add method to show course home - refs BT#19195

pull/4053/head
Angel Fernando Quiroz Campos 4 years ago
parent d4db223f9f
commit d61c1241c3
  1. 30
      main/inc/lib/webservices/Rest.php
  2. 3
      main/webservices/api/v2.php

@ -39,6 +39,7 @@ class Rest extends WebService
const GET_PROFILE = 'user_profile'; const GET_PROFILE = 'user_profile';
const VIEW_COURSE_HOME = 'view_course_home';
const GET_COURSE_INFO = 'course_info'; const GET_COURSE_INFO = 'course_info';
const GET_COURSE_DESCRIPTIONS = 'course_descriptions'; const GET_COURSE_DESCRIPTIONS = 'course_descriptions';
const GET_COURSE_DOCUMENTS = 'course_documents'; const GET_COURSE_DOCUMENTS = 'course_documents';
@ -401,6 +402,8 @@ class Rest extends WebService
$courses = CourseManager::get_courses_list_by_user_id($userId); $courses = CourseManager::get_courses_list_by_user_id($userId);
$data = []; $data = [];
$webCodePath = api_get_path(WEB_CODE_PATH).'webservices/api/v2.php?';
foreach ($courses as $courseInfo) { foreach ($courses as $courseInfo) {
/** @var Course $course */ /** @var Course $course */
$course = Database::getManager()->find('ChamiloCoreBundle:Course', $courseInfo['real_id']); $course = Database::getManager()->find('ChamiloCoreBundle:Course', $courseInfo['real_id']);
@ -416,6 +419,14 @@ class Rest extends WebService
'urlPicture' => $picturePath, 'urlPicture' => $picturePath,
'teachers' => $teachers, 'teachers' => $teachers,
'isSpecial' => !empty($courseInfo['special_course']), 'isSpecial' => !empty($courseInfo['special_course']),
'url' => $webCodePath.http_build_query(
[
'action' => self::VIEW_COURSE_HOME,
'api_key' => $this->apiKey,
'username' => $this->user->getUsername(),
'course' => $course->getId()
]
),
]; ];
} }
@ -1189,6 +1200,8 @@ class Rest extends WebService
$data = []; $data = [];
$sessionsByCategory = UserManager::get_sessions_by_category($this->user->getId(), false); $sessionsByCategory = UserManager::get_sessions_by_category($this->user->getId(), false);
$webCodePath = api_get_path(WEB_CODE_PATH).'webservices/api/v2.php?';
foreach ($sessionsByCategory as $category) { foreach ($sessionsByCategory as $category) {
$categorySessions = []; $categorySessions = [];
@ -1210,6 +1223,15 @@ class Rest extends WebService
'pictureUrl' => $courseInfo['course_image_large'], 'pictureUrl' => $courseInfo['course_image_large'],
'urlPicture' => $courseInfo['course_image_large'], 'urlPicture' => $courseInfo['course_image_large'],
'teachers' => $teachers, 'teachers' => $teachers,
'url' => $webCodePath.http_build_query(
[
'action' => self::VIEW_COURSE_HOME,
'api_key' => $this->apiKey,
'username' => $this->user->getUsername(),
'course' => $courseInfo['real_id'],
'session' => $sessions['session_id'],
]
),
]; ];
} }
@ -2917,6 +2939,14 @@ class Rest extends WebService
); );
} }
public function viewCourseHome()
{
$url = api_get_course_url($this->course->getCode(), $this->session ? $this->session->getId() : 0);
header("Location: $url");
exit;
}
public function viewDocumentInFrame(int $documentId) public function viewDocumentInFrame(int $documentId)
{ {
$courseCode = $this->course->getCode(); $courseCode = $this->course->getCode();

@ -172,6 +172,9 @@ try {
$restResponse->setData($userInfo); $restResponse->setData($userInfo);
break; break;
case Rest::VIEW_COURSE_HOME:
$restApi->viewCourseHome();
break;
case Rest::GET_COURSE_INFO: case Rest::GET_COURSE_INFO:
$courseInfo = $restApi->getCourseInfo(); $courseInfo = $restApi->getCourseInfo();
$restResponse->setData($courseInfo); $restResponse->setData($courseInfo);

Loading…
Cancel
Save