Browse Source

Rest API - Add new user
Rest Api - Subscribe user to course

Mario Solis 7 years ago
parent
commit
1b1e87c5b5
2 changed files with 37 additions and 63 deletions
  1. 33 62
      main/inc/lib/webservices/Rest.php
  2. 4 1
      main/webservices/api/v2.php

+ 33 - 62
main/inc/lib/webservices/Rest.php

@@ -44,6 +44,7 @@ class Rest extends WebService
 
     const SAVE_COURSE = 'save_course';
     const SAVE_USER = 'save_user';
+    const SUBSCRIBE_USER_TO_COURSE = 'subscribe_user_to_course';
 
     const EXTRAFIELD_GCM_ID = 'gcm_registration_id';
 
@@ -83,7 +84,8 @@ class Rest extends WebService
         /** @var Course $course */
         $course = $em->find('ChamiloCoreBundle:Course', $id);
 
-        if (!$course) {
+        if (!$course)
+        {
             throw new Exception(get_lang('NoCourse'));
         }
 
@@ -1023,7 +1025,8 @@ class Rest extends WebService
      * @param array $course_param
      * @return array
      */
-    public function saveNewCourse($course_param){
+    public function saveNewCourse($course_param)
+    {
 
         $table_course = Database::get_main_table(TABLE_MAIN_COURSE);
         $extra_list= array();
@@ -1079,10 +1082,8 @@ class Rest extends WebService
                     }
                 }
                 $results[] = $courseInfo['code'];
-                continue;
             } else {
                 $results[] = 0;
-                continue; // Original course id already exits.
             }
         }
 
@@ -1157,7 +1158,8 @@ class Rest extends WebService
 
     /**
      */
-    public function saveNewUser($user_param){
+    public function saveNewUser($user_param)
+    {
         global $_user;
         $results = array();
         $orig_user_id_value = array();
@@ -1194,49 +1196,6 @@ class Rest extends WebService
             $expiration_date = $user_param['expiration_date'];
         }
 
-        // Check if exits x_user_id into user_field_values table.
-        $user_id = UserManager::get_user_id_from_original_id(
-            $original_user_id_value,
-            $original_user_id_name
-        );
-        if ($user_id > 0) {
-            /** @var User $user */
-            $user = $userRepository->find($user_id);
-
-            if ($user && $user->isActive() == false) {
-                if (!is_null($password)) {
-                    $user->setPlainPassword($password);
-                }
-                if (!is_null($auth_source)) {
-                    $user->setAuthSource($auth_source);
-                }
-
-                if (!empty($user_param['expiration_date'])) {
-                    $expiration_date = new DateTime($user_param['expiration_date']);
-                }
-
-                $user->setLastname($lastName)
-                    ->setFirstname($firstName)
-                    ->setUsername($loginName)
-                    ->setEmail($email)
-                    ->setStatus($status)
-                    ->setOfficialCode($official_code)
-                    ->setPhone($phone)
-                    ->setExpirationDate($expiration_date)
-                    ->setHrDeptId($hr_dept_id)
-                    ->setActive(true);
-                $userManager->updateUser($user, true);
-                $results[] = $user_id;
-                continue;
-                //return $r_check_user[0];
-            } else {
-                $results[] = 0;
-                continue;
-                //return 0;
-                // user id already exits.
-            }
-        }
-
         // Default language.
         if (empty($language)) {
             $language = api_get_setting('platformLanguage');
@@ -1251,7 +1210,6 @@ class Rest extends WebService
         // First check wether the login already exists.
         if (!UserManager::is_username_available($loginName)) {
             $results[] = 0;
-            continue;
         }
 
         $userId = UserManager::create_user(
@@ -1319,24 +1277,37 @@ class Rest extends WebService
                     );
                 }
             }
+            $results[] = $userId;
         } else {
             $results[] = 0;
-            continue;
         }
 
-        $results[] = $userId;
-
+        // $results[] = $userId;
+        return $results;
+    }
 
-        $count_results = count($results);
-        $output = array();
-        for ($i = 0; $i < $count_results; $i++) {
-            $output[] = array(
-                'original_user_id_value' => $orig_user_id_value[$i],
-                'result' => $results[$i]
-            );
+    /**
+     * Subscribe User to Course
+     */
+    public function subscribeUserToCourse($params)
+    {
+        $course_id = $params['course_id'];
+        $course_code = $params['course_code'];
+        $user_id = $params['user_id'];
+        if (!$course_id && !$course_code)
+        {
+            return [false];
         }
-
-        return $output;
+        if (!$course_code)
+        {
+            $course_code = CourseManager::get_course_code_from_course_id($course_id);
+        }
+        if (CourseManager::subscribe_user($user_id, $course_code))
+        {
+            return [true];
+        } else {
+            return [false];
+        }
+        return [true];
     }
-
 }

+ 4 - 1
main/webservices/api/v2.php

@@ -1,6 +1,5 @@
 <?php
 /* For licensing terms, see /license.txt */
-
 require_once __DIR__.'/../../inc/global.inc.php';
 
 $hash = isset($_REQUEST['hash']) ? $_REQUEST['hash'] : null;
@@ -127,6 +126,10 @@ try {
             $data = $restApi->saveNewUser($_POST);
             $restResponse->setData($data);
             break;
+        case Rest::SUBSCRIBE_USER_TO_COURSE:
+            $data = $restApi->subscribeUserToCourse($_POST);
+            $restResponse->setData($data);
+            break;
         case Rest::SAVE_FORUM_POST:
             if (
                 empty($_POST['title']) || empty($_POST['text']) || empty($_POST['thread']) || empty($_POST['forum'])