function CheckReferer($ua) { if ($ua->is_referral() || $ua->referrer() === "") { echo BuildErrorResponse(403, 107, "Invalid referer."); return false; } return true; }
function ApiParamValidate($data, $requireParams) { foreach ($requireParams as $requireParam) { if (!array_key_exists($requireParam, $data)) { echo BuildErrorResponse(400, 101, 'Some required parameters.'); return false; } } return true; }
public function timeline() { header("Content-Type: application/json; charset=utf-8"); if (!CheckReferer($this->agent)) { return; } $get = $this->input->get(); $isLogin = $this->session->userdata('is_login'); if ($isLogin) { $meUserId = $this->session->userdata('me')['id']; $this->load->model("Coreapi_status", "CoreAPI_Status"); $res = $this->CoreAPI_Status->timeline($meUserId, $get); } else { $res = BuildErrorResponse(400, 106, 'Please request with login.'); } echo $res; }
public function update($meUserId, $post) { $this->load->model('Status_model', 'StatusModel', TRUE); if (!ApiParamValidate($post, ['text'])) { return; } $text = urldecode($post["text"]); if (strlen($text) <= 400) { if ($status = $this->StatusModel->Create($meUserId, $text, 0)) { $res = BuildSuccessResponse(["message" => "successful.", 'status' => $status]); } else { $res = BuildErrorResponse(500, 105, 'Failed to execute.'); } } else { $res = BuildErrorResponse(400, 100, 'text is too long.'); } return $res; }
public function logout() { header("Content-Type: application/json; charset=utf-8"); if (!CheckReferer($this->agent)) { return; } $isLogin = $this->session->userdata("is_login"); if ($isLogin) { $this->session->sess_destroy(); $res = BuildSuccessResponse("successful."); } else { $res = BuildErrorResponse(400, 106, "Please request with login."); } echo $res; }
public function friendstatus($meScreenName, $meUserId, $get) { $this->load->model("Account_model", "AccountModel", TRUE); $this->load->model("Friend_model", "FriendModel", TRUE); if (!ApiParamValidate($get, ["screen_name"])) { return; } $screenName = urldecode($get["screen_name"]); if (preg_match("/^[a-z0-9_]+\$/i", $screenName) === 1) { if ($screenName !== $meScreenName) { if ($target = $this->AccountModel->FindByScreenName($screenName)) { $isFollower = $this->FriendModel->IsExist($target["id"], $meUserId); $isFollowing = $this->FriendModel->IsExist($meUserId, $target["id"]); $res = BuildSuccessResponse(["message" => "successful.", "is_follower" => $isFollower, "is_following" => $isFollowing]); } else { $res = BuildErrorResponse(400, 200, "User not found."); } } else { $res = BuildErrorResponse(400, 201, "This user is you."); } } else { $res = BuildErrorResponse(400, 102, "Some invalid parameters."); } return $res; }