| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | 
							- <?php
 - 
 - namespace App\Http\Controllers;
 - 
 - use Carbon\Carbon;
 - use App\Models\Tag;
 - use App\Models\Survey;
 - use Illuminate\Http\Request;
 - use GuzzleHttp\Client;
 - use Illuminate\Support\Facades\Log;
 - use Illuminate\Support\Facades\Storage;
 - 
 - class HealthyPassPortController extends Controller
 - {
 -     private $api_header = array();
 - 
 -     public function __construct()
 -     {
 -         $this->api_header = [
 -             'Authorization' => 'Bearer ' . config('botApi.botToken'),
 -             'Accept'        => 'application/json'
 -         ];
 -     }
 -     public function file(Request $request){
 - 
 -     }
 - 
 -     public function profile(Request $request){
 -         $profile = Survey::where('line_user_id',$request->lineUserId)->first();
 -         $profile_tag_list = $profile->getTagList();
 -     }
 - 
 -     /**
 -      * 送出問卷
 -      *
 -      */
 -     public function post(Request $request){
 -         $lineUserId = $request->lineUserId; //line UID
 -         $headSticker = $request->headSticker; //頭貼
 -         $healthAction = $request->healthAction; //平常你有什麼健康行動(複選)
 -         $healthTopic = $request->healthTopic; //你對什麼健康話題有興趣(複選)
 -         $healthStatus = $request->healthStatus; //你覺得自己的身體狀況如何
 -         $healthAdapt = $request->healthAdapt; //面對疫情趨緩,以下哪一個敘述最符合你的應對
 -         $healthThought = $request->healthThought; //下列哪一個敘述最符合你的想法
 -         $healthAge = $request->healthAge; //你的年齡
 -         $healthNickname = $request->healthNickname; //暱稱
 -         $healthGender = $request->healthGender; //性別
 -         $healthGenderRole = $request->healthGenderRole;//性別 male or female
 - 
 -         $buildActions = [];
 -         array_push($buildActions, $this->buildActionsRequest("addTag", $healthAction));
 -         array_push($buildActions, $this->buildActionsRequest("addTag", $healthTopic));
 -         array_push($buildActions, $this->buildActionsRequest("addTag", $healthStatus));
 -         array_push($buildActions, $this->buildActionsRequest("addTag", $healthAdapt));
 -         array_push($buildActions, $this->buildActionsRequest("addTag", $healthThought));
 -         array_push($buildActions, $this->buildActionsRequest("addTag", $healthAge));
 -         array_push($buildActions, $this->buildActionsRequest("addTag", $healthGender));
 -         if($healthGenderRole != "")array_push($buildActions, $this->buildActionsRequest("saveParams", $healthGenderRole, "demographics", "gender"));
 - 
 -         $statusCode = $this->botActionsSend($lineUserId,$buildActions);
 -         if($statusCode == 200){
 -             //確認完成填寫問卷後,建立完成問券標籤
 -             $buildActions = [];
 -             array_push($buildActions, $this->buildActionsRequest("addTag", config("botApi.doneSurvey")));
 -             array_push($buildActions, $this->buildActionsRequest("setMenu", config("botApi.setMenuDoneSurvey")));
 -             $this->botActionsSend($lineUserId,$buildActions);
 -             return  response()->json(["result" => 'successed']);
 -         }else{
 -             return response()->json(["result" => 'failed'] );
 -         }
 -     }
 - 
 -     function buildActionsRequest($type, $values, $groupId = null, $paramName = ""){
 -         if($type == "addTag"){
 -             if(is_array($values)){
 -                 $tags = $values;
 -             }else{
 -                 $tags = [$values];
 -             }
 -             return [
 -                 "type" => $type,
 -                 "value" => $tags
 -             ];
 -         }elseif($type == "saveParams"){
 -             return [
 -                 "type" => $type,
 -                 "groupId" => $groupId,
 -                 "values" => [
 -                     [
 -                         "name" => $paramName,
 -                         "value" => $values
 -                     ]
 -                 ]
 -             ];
 -         }elseif($type == "setMenu"){
 -             return [
 -                 "type" => $type,
 -                 "platform" => 1,
 -                 "value" => $values
 -             ];
 -         }
 -     }
 - 
 -     function botActionsSend($lineUserId,$actions){
 -         $client = new Client();
 -         $res_users = $client->request('POST', config('botApi.botActions'),[
 -             'headers'=>$this->api_header,
 -             'json' => [
 -                 'userId' => $lineUserId,
 -                 'pageId' => config('botApi.lineOAId'),
 -                 'platform' => 1,
 -                 'actions' => $actions
 -             ]
 -         ]);
 -         $statusCode = $res_users->getStatusCode();
 - 
 -         return $statusCode;
 -     }
 - }
 
 
  |