Files
dev-chiefworks 47f4fad75c Added Other AP
2022-04-26 11:30:34 -04:00

137 lines
5.0 KiB
PHP

<?php
class PushApi extends Api
{
public $apiName = 'push';
public function __construct($requestUri, $encryption=true) {
$this->requestWhitelist['createAction'] = 1;
parent::__construct($requestUri, $encryption);
}
public function indexAction()
{
return $this->response(
array(
'error' => 'Data not found'
), 404);
}
/**
* Method GET
* Get single record (by id)
* http://DOMAIN/address/1
* @return string
*/
public function viewAction()
{
//id must be the first parameter after /address/x
$id = array_shift($this->requestUri);
if($id && (int)$id>0){
/*$db = new Db();
$address = Address::getAddressById($db->getConnect(), (int)$id);
if(is_array($address) && count($address)>0){
return $this->response($address, 200);
}*/
}
return $this->response(
array(
'error'=> 'Data not found'
), 404);
}
public function createAction()
{
error_log("PushApi::createAction()");
$message = "Data not found";
$player_id = $this->requestParams["player_id"] ?? "";
$member_id = (int)($this->requestParams["member_id"] ?? "0");
$cordova = $this->requestParams["cordova"] ?? "";
$model = $this->requestParams["model"] ?? "";
$platform = $this->requestParams["platform"] ?? "";
$uuid = $this->requestParams["uuid"] ?? "";
$version = $this->requestParams["version"] ?? "";
$manufacturer = $this->requestParams["manufacturer"] ?? "";
$is_virtual = $this->requestParams["is_virtual"] ?? "false";
$country = $this->requestParams["country"] ?? "SG";
$sessionid = $this->requestParams["sessionid"] ?? "";
$access_token = $this->requestParams["access_token"] ?? "";
$refresh_token = $this->requestParams["refresh_token"] ?? "";
error_log("member_id=".$member_id);
error_log("player_id=".$player_id);
error_log("sessionid=".$sessionid);
error_log("access_token=".$access_token);
error_log("refresh_token=".$refresh_token);
try {
$db = new Db();
$session = Auth::getMemberSession($db->getConnect(), $member_id, $sessionid);
if ($session==NULL || !isset($session["id"])) {
error_log('Invalid member session ID - cannot save player ID!');
throw new Exception('Invalid member session ID');
}
if ($member_id<1 || $player_id=="") {
throw new Exception('Invalid member and/or player ID');
}
$data = [
'member_id' => $member_id,
'player_id' => $player_id,
'cordova' => $cordova,
'model' => $model,
'platform' => $platform,
'uuid' => $uuid,
'version' => $version,
'manufacturer' => $manufacturer,
'is_virtual' => $is_virtual,
'country' => $country,
'access_token' => $access_token,
'refresh_token' => $refresh_token
];
$result = Push::getMemberPlayerId($db->getConnect(), $member_id, $player_id, $access_token);
if ($result!=NULL && is_array($result) && $result["id"]>0) {
if ($result["access_token"]=="" || $result["refresh_token"]=="") {
$result = AuthApi::generateTokens($db, $result["id"]);
$data['access_token'] = $result['access_token'];
$data['refresh_token'] = $result['refresh_token'];
}
// This will update the data...
$updated = Push::saveMemberPlayerId($db->getConnect(), $data);
if ($updated!=NULL && is_array($updated) && $updated["id"]>0) {
return $this->response($updated, 200);
}
return $this->response($result, 200);
}
$result = Push::saveMemberPlayerId($db->getConnect(), $data);
if ($result!=NULL && is_array($result) && $result["id"]>0) {
if ($result["access_token"]=="" || $result["refresh_token"]=="") {
$result = AuthApi::generateTokens($db, $result["id"]);
}
return $this->response($result, 200);
}
return $this->response(array("error" => "Failed to save"),500);
} catch (Exception $e) {
$message = $e->getMessage();
}
return $this->response(
array(
"error" => $message
), 404);
}
public function updateAction()
{
return $this->response(
array(
"error" => "Update error"
), 400);
}
public function deleteAction()
{
return $this->response(
array(
"error" => "Delete error"
), 500);
}
}