Harmonize JSON API error messages

This commit is contained in:
2026-08-25 23:44:26 +02:00
parent 0d4b159ab3
commit f1b90a4d83
18 changed files with 254 additions and 175 deletions
+58 -37
View File
@@ -259,7 +259,7 @@ class Livetrail extends Main
public function updateProject() {
$bNewMsg = false;
$bSuccess = true;
$sDesc = '';
$sLangId = '';
//Update all feeds belonging to the project
$asFeeds = $this->oProject->getFeedIds();
@@ -271,11 +271,11 @@ class Livetrail extends Main
//Send Update Email
if($bNewMsg) {
$bSuccess = $this->sendEmail();
$sDesc = Mask::LANG_PREFIX.($bSuccess?'email.sent':'email.failure');
$sLangId = $bSuccess?'email.sent':'email.failure';
}
else $sDesc = Mask::LANG_PREFIX.'spot.no_new_msg';
else $sLangId = 'spot.no_new_msg';
return self::getJsonResult($bSuccess, $sDesc);
return self::getJsonResult($bSuccess, $sLangId);
}
private function sendEmail() {
@@ -378,13 +378,13 @@ class Livetrail extends Main
public function login($sEmail, $sPassword, $sNickName) {
$asResult = $this->oUser->login($sEmail, $sPassword, $this->oLang->getLanguage(), date_default_timezone_get(), $sNickName);
if($asResult['result'] && $asResult['desc'] == 'subscribe_user') return $this->subscribe();
else return self::getJsonResult($asResult['result'], $asResult['desc'], $this->oUser->getUserInfo());
if($asResult['result'] && $asResult['data']['subscribe']) return $this->subscribe();
else return self::getJsonResult($asResult['result'], $asResult['desc_lang_id'], $this->oUser->getUserInfo(), $asResult['desc_lang_params']);
}
public function logout() {
$asResult = $this->oUser->logout();
return self::getJsonResult($asResult['result'], $asResult['desc'], User::DEFAULT_USER);
return self::getJsonResult($asResult['result'], $asResult['desc_lang_id'], User::DEFAULT_USER, $asResult['desc_lang_params']);
}
public function subscribe() {
@@ -395,12 +395,12 @@ class Livetrail extends Main
$oConfEmail->setDestInfo($asUserInfo);
$oConfEmail->send();
}
return self::getJsonResult($asResult['result'], $asResult['desc'], $asUserInfo);
return self::getJsonResult($asResult['result'], $asResult['desc_lang_id'], $asUserInfo, $asResult['desc_lang_params']);
}
public function unsubscribe() {
$asResult = $this->oUser->setSubscription(false);
return self::getJsonResult($asResult['result'], $asResult['desc'], $this->oUser->getUserInfo());
return self::getJsonResult($asResult['result'], $asResult['desc_lang_id'], $this->oUser->getUserInfo(), $asResult['desc_lang_params']);
}
private function getSpotMessages($asMsgIds=array())
@@ -555,7 +555,7 @@ class Livetrail extends Main
public function getNewFeed($iRefIdFirst) {
$asResult = array();
$sDesc = '';
$sLangId = '';
if($this->oProject->isEditable()) {
$asMessageIds = $asMediaIds = array();
@@ -582,9 +582,9 @@ class Livetrail extends Main
$asResult = array_merge($asResult, $asMarkers);
}
else $sDesc = 'project.modes.histo';
else $sLangId = 'project.modes.histo';
return self::getJsonResult(true, $sDesc, $asResult);
return self::getJsonResult(true, $sLangId, $asResult);
}
public function getNextFeed($iRefIdLast=0, $bInternal=false) {
@@ -671,7 +671,7 @@ class Livetrail extends Main
public function addPost($sName, $sPost)
{
$iPostId = 0;
$sDesc = '';
$sLangId = '';
if($this->oProject->isEditable()) {
$asData = array(
@@ -683,18 +683,19 @@ class Livetrail extends Main
);
if($this->oUser->getUserId() > 0) $asData[Db::getId(User::USER_TABLE)] = $this->oUser->getUserId();
$iPostId = $this->oDb->insertRow(self::POST_TABLE, $asData);
$iPostId = $this->oDb->insertRow(self::POST_TABLE, $asData);
if($iPostId == 0) $sLangId = 'error.commit_db';
$this->oUser->updateNickname($sName);
$this->oUser->updateNickname($sName);
}
else $sDesc = 'project.modes.histo';
else $sLangId = 'project.modes.histo';
return self::getJsonResult(($iPostId > 0), $sDesc);
return self::getJsonResult(($iPostId > 0), $sLangId);
}
public function upload()
{
$oUploader = new Uploader($this->oMedia, $this->oLang);
$oUploader = new Uploader($this->oMedia);
return $oUploader->sBody;
}
@@ -702,7 +703,7 @@ class Livetrail extends Main
public function addComment($iMediaId, $sComment) {
$oMedia = new Media($this->oDb, $this->oProject, $iMediaId);
$asResult = $oMedia->setComment($sComment);
return self::getJsonResult($asResult['result'], $asResult['desc'], $asResult['data']);
return self::getJsonResult($asResult['result'], $asResult['desc_lang_id'], $asResult['data'], $asResult['desc_lang_params']);
}
public function addPosition($sLat, $sLng, $iTimestamp) {
@@ -711,11 +712,11 @@ class Livetrail extends Main
if($bSuccess) {
$bSuccess = $this->sendEmail();
$sDesc = Mask::LANG_PREFIX.($bSuccess?'email.sent':'email.failure');
$sLangId = $bSuccess?'email.sent':'email.failure';
}
else $sDesc = 'error.commit_db';
else $sLangId = 'error.commit_db';
return self::getJsonResult($bSuccess, $sDesc);
return self::getJsonResult($bSuccess, $sLangId);
}
public function getAdminSettings() {
@@ -737,14 +738,16 @@ class Livetrail extends Main
public function setAdminSettings($sType, $iId, $sField, $sValue) {
$bSuccess = false;
$sDesc = '';
$sLangId = '';
$asLangParams = array();
$asResult = array();
if($this->oDb->isId($sField) && $sValue <= 0) return self::getJsonResult(false, $this->oLang->getTranslation('error.impossible_value', [$sValue, $sField]));
if($this->oDb->isId($sField) && $sValue <= 0) return self::getJsonResult(false, 'error.impossible_value', array(), array($sValue, $sField));
switch($sType) {
case 'project':
$oProject = new Project($this->oDb, $iId);
switch($sField) {
case 'name':
$bSuccess = $oProject->setProjectName($sValue);
@@ -759,8 +762,18 @@ class Livetrail extends Main
$bSuccess = $oProject->setActivePeriod($sValue.' 23:59:59', 'to');
break;
default:
$sDesc = $this->oLang->getTranslation('error.unknown_field', $sField);
$sLangId = 'error.unknown_field';
$asLangParams = array($sField);
}
//Identify missing GPX file
$sProjectCodeName = ($sField == 'codename')?$sValue:$oProject->getProjectCodeName();
if(!Converter::hasGpxFile($sProjectCodeName)) {
$bSuccess = true;
$sLangId = 'error.file_missing';
$asLangParams = array('GPX', $sProjectCodeName.Gpx::EXT);
}
$asResult = $oProject->getProject();
$asResult['active_from'] = substr($asResult['active_from'], 0, 10);
$asResult['active_to'] = substr($asResult['active_to'], 0, 10);
@@ -778,7 +791,8 @@ class Livetrail extends Main
$bSuccess = $oFeed->setProjectId($sValue);
break;
default:
$sDesc = $this->oLang->getTranslation('error.unknown_field', $sField);
$sLangId = 'error.unknown_field';
$asLangParams = array($sField);
}
$asResult = $oFeed->getFeed();
break;
@@ -787,22 +801,24 @@ class Livetrail extends Main
case 'clearance':
$asReturnCode = $this->oUser->setUserClearance($iId, $sValue);
$bSuccess = $asReturnCode['result'];
$sDesc = $asReturnCode['desc'];
$sLangId = $asReturnCode['desc_lang_id'];
$asLangParams = $asReturnCode['desc_lang_params'];
break;
default:
$sDesc = $this->oLang->getTranslation('error.unknown_field', $sField);
$sLangId = 'error.unknown_field';
$asLangParams = array($sField);
}
$asResult = $this->oUser->getUserById($iId);
break;
}
if(!$bSuccess && $sDesc=='') $sDesc = Mask::LANG_PREFIX.'error.commit_db';
if(!$bSuccess && $sLangId=='') $sLangId = 'error.commit_db';
return self::getJsonResult($bSuccess, $sDesc, array($sType=>array($asResult)));
return self::getJsonResult($bSuccess, $sLangId, array($sType=>array($asResult)), $asLangParams);
}
public function createAdminSettings($sType) {
$bSuccess = false;
$sDesc = '';
$sLangId = '';
$asResult = array();
switch($sType) {
@@ -828,31 +844,36 @@ class Livetrail extends Main
);
break;
}
if(!$bSuccess && $sLangId=='') $sLangId = 'error.commit_db';
return self::getJsonResult($bSuccess, $sDesc, $asResult);
return self::getJsonResult($bSuccess, $sLangId, $asResult);
}
public function deleteAdminSettings($sType, $iId) {
$bSuccess = false;
$sDesc = '';
$sLangId = '';
$asLangParams = array();
$asResult = array();
switch($sType) {
case 'project':
$oProject = new Project($this->oDb, $iId);
$asResult = $oProject->delete();
$sDesc = $asResult['project'][0]['desc'];
$sLangId = $asResult['project'][0]['desc_lang_id'];
$asLangParams = $asResult['project'][0]['desc_lang_params'];
$bSuccess = $asResult['project'][0]['del'];
break;
case 'feed':
$oFeed = new Feed($this->oDb, $iId);
$asResult = array('feed' => array($oFeed->delete()));
$sDesc = $asResult['feed'][0]['desc'];
$bSuccess = $asResult['feed'][0]['del'];
$sLangId = $asResult['feed'][0]['desc_lang_id'];
$asLangParams = $asResult['feed'][0]['desc_lang_params'];
$bSuccess = $asResult['feed'][0]['result'];
break;
}
if(!$bSuccess && $sLangId=='') $sLangId = 'error.commit_db';
return self::getJsonResult($bSuccess, $sDesc, $asResult);
return self::getJsonResult($bSuccess, $sLangId, $asResult, $asLangParams);
}
public static function decToDms($dValue, $sType) {