当前位置: 首页>>代码示例>>PHP>>正文


PHP jsonRPCClient::add_response方法代码示例

本文整理汇总了PHP中jsonRPCClient::add_response方法的典型用法代码示例。如果您正苦于以下问题:PHP jsonRPCClient::add_response方法的具体用法?PHP jsonRPCClient::add_response怎么用?PHP jsonRPCClient::add_response使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jsonRPCClient的用法示例。


在下文中一共展示了jsonRPCClient::add_response方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: run

 /**
  * [run - do all the seedings]
  * @return [json] [AjaxResponse]
  */
 public static function run()
 {
     // this function should do:
     // get the relationship
     // get all related user
     // fill in all surveys
     // output summary with Reponse::output
     $evaluation_id = (int) $_POST['evaluation_id'];
     $relation_users = EvaluationModel::users($evaluation_id);
     AjaxResponse::stream(['message' => 'Initiating seeding', 'status' => 'OK', 'log' => true]);
     foreach ($relation_users as $key => $user_id) {
         if (!is_numeric($relation_users[$key])) {
             error_log('Invalid user - ' . json_encode($relation_users[$key]));
         }
         // company / agency
         $user_type = UserModel::userType($user_id);
         $evaluation_pod = pods('evaluation', $evaluation_id);
         $relation = $evaluation_pod->field('relation');
         $relation_pod = pods('relation', $relation['ID']);
         $relation_type = $evaluation_pod->field('180_360');
         $relation_steps = EvaluationModel::getSteps($relation_type);
         foreach ($relation_steps as $relation_step) {
             // get the user
             $user = UserModel::findByID($user_id);
             // get survey id
             $limesurvey_id = EvaluationModel::surveyID($evaluation_id, $relation_step);
             $questions_type = $relation_step === '360' ? 'company' : 'agency';
             $filename = $questions_type . '_' . $limesurvey_id . '_questions.json';
             $all_questions = json_decode(file_get_contents(CABSPATH . 'cache/' . $filename), true);
             $user_role = $user->roles[0];
             $questions = null;
             if (!array_key_exists($user_role, $all_questions)) {
                 // status response
                 AjaxResponse::stream(['message' => 'ERROR: invalid role (could not load questions for user): ' . $user_id . ' ' . $relation_step, 'status' => 'failure', 'error' => true, 'log' => true], false);
                 continue;
             }
             // pich the right user role
             $questions = $all_questions[$user_role];
             // get question ids
             $question_ids = self::getQuestionIDs($limesurvey_id, $questions);
             // generate some random values for each question
             $question_answers = self::generateAnswers($question_ids);
             if (!count($question_answers)) {
                 // status response
                 AjaxResponse::stream(['message' => 'ERROR: could not generate answers processing user: ' . $user_id . ' ' . $relation_step, 'status' => 'failure', 'error' => true, 'log' => true], false);
                 continue;
             }
             $user_token = LimesurveyModel::getTokenByRelation($limesurvey_id, $user->user_email, $evaluation_id);
             if (!$user_token) {
                 // status response
                 AjaxResponse::stream(['message' => 'ERROR: could not match token for : ' . $user_id, 'status' => 'failure', 'error' => true, 'log' => true], false);
                 continue;
             }
             $res = array_merge($question_answers, ['token' => $user_token->tid]);
             // instanciate a new client
             $myJSONRPCClient = new jsonRPCClient(LS_BASEURL);
             // receive session key
             $sessionKey = $myJSONRPCClient->get_session_key(LS_USER, LS_PASSWORD);
             // save values
             $success_status = $myJSONRPCClient->add_response($sessionKey, $limesurvey_id, $res);
             // set participant status
             $participant_status = $myJSONRPCClient->set_participant_properties($sessionKey, $limesurvey_id, $user_token->tid, ['completed' => 'Y', 'usesleft' => 0]);
             // release session key
             $myJSONRPCClient->release_session_key($sessionKey);
             // status response
             AjaxResponse::stream(['message' => 'processing user: ' . $user_id . ' ' . $relation_step, 'status' => 'OK', 'log' => true], false);
         }
     }
 }
开发者ID:strikles,项目名称:php,代码行数:73,代码来源:ResponseSeeder.class.php

示例2: header

 // response
 $user_token = LimesurveyModel::getTokenByRelation($limesurvey_id, $current_user->user_email, $evaluation_id);
 $status_response = null;
 if (!$user_token) {
     header("Content-Type: application/json");
     echo json_encode(['status' => 'ERROR', 'message' => 'No matching user token found !']);
     exit;
 } else {
     $extra_response_attrs = ['token' => $user_token->tid];
     $response = array_merge($_POST, $extra_response_attrs);
     // instanciate a new client
     $myJSONRPCClient = new jsonRPCClient(LS_BASEURL);
     // receive session key
     $sessionKey = $myJSONRPCClient->get_session_key(LS_USER, LS_PASSWORD);
     // save response
     $success_status = $myJSONRPCClient->add_response($sessionKey, $limesurvey_id, $response);
     // reset token properties (completed = Y; usesleft = 0)
     if ($success_status) {
         $evaluation_pod = pods('evaluation', $evaluation_id);
         $relation = $evaluation_pod->field('relation');
         $relation_pod = pods('relation', $relation['ID']);
         // survey completed
         $survey_completed = false;
         $evaluation_type = $evaluation_pod->field('180_360');
         $survey_post = SurveyModel::getByUserAndRelation($current_user->ID, $evaluation_id);
         $survey_pod = pods('survey', $survey_post['ID']);
         error_log('survey completed sanity check ' . json_encode($evaluation_type) . ' - ' . json_encode($relation_step));
         if ((int) $evaluation_type === 180 && (int) $relation_step === 180) {
             error_log('survey completed sanity check pass');
             $survey_completed = true;
         } else {
开发者ID:strikles,项目名称:php,代码行数:31,代码来源:limesurvey.php


注:本文中的jsonRPCClient::add_response方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。