Merge pull request #23003 from rycks/14_fix_api_status_on_delete

fix #22766: better API response HTTP code
This commit is contained in:
Laurent Destailleur 2022-11-26 10:26:21 +01:00 committed by GitHub
commit 7884216197
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 57 additions and 12 deletions

View File

@ -382,14 +382,18 @@ class Members extends DolibarrApi
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
} }
if (!$member->delete($member->id, DolibarrApiAccess::$user)) {
throw new RestException(401, 'error when deleting member'); $res = $member->delete($member->id, DolibarrApiAccess::$user);
if ($res < 0) {
throw new RestException(500, "Can't delete, error occurs");
} elseif ($res == 0) {
throw new RestException(409, "Can't delete, that product is probably used");
} }
return array( return array(
'success' => array( 'success' => array(
'code' => 200, 'code' => 200,
'message' => 'member deleted' 'message' => 'Member deleted'
) )
); );
} }

View File

@ -228,14 +228,17 @@ class MembersTypes extends DolibarrApi
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
} }
if (!$membertype->delete()) { $res = $membertype->delete();
throw new RestException(401, 'error when deleting member type'); if ($res < 0) {
throw new RestException(500, "Can't delete, error occurs");
} elseif ($res == 0) {
throw new RestException(409, "Can't delete, that product is probably used");
} }
return array( return array(
'success' => array( 'success' => array(
'code' => 200, 'code' => 200,
'message' => 'member type deleted' 'message' => 'Member type deleted'
) )
); );
} }

View File

@ -214,14 +214,17 @@ class Subscriptions extends DolibarrApi
throw new RestException(404, 'Subscription not found'); throw new RestException(404, 'Subscription not found');
} }
if (!$subscription->delete(DolibarrApiAccess::$user)) { $res = $subscription->delete(DolibarrApiAccess::$user);
throw new RestException(401, 'error when deleting subscription'); if ($res < 0) {
throw new RestException(500, "Can't delete, error occurs");
} elseif ($res == 0) {
throw new RestException(409, "Can't delete, that product is probably used");
} }
return array( return array(
'success' => array( 'success' => array(
'code' => 200, 'code' => 200,
'message' => 'subscription deleted' 'message' => 'Subscription deleted'
) )
); );
} }

View File

@ -435,7 +435,19 @@ class Products extends DolibarrApi
global $user; global $user;
$user = DolibarrApiAccess::$user; $user = DolibarrApiAccess::$user;
return $this->product->delete(DolibarrApiAccess::$user); $res = $this->product->delete(DolibarrApiAccess::$user);
if ($res < 0) {
throw new RestException(500, "Can't delete, error occurs");
} elseif ($res == 0) {
throw new RestException(409, "Can't delete, that product is probably used");
}
return array(
'success' => array(
'code' => 200,
'message' => 'Object deleted'
)
);
} }
/** /**

View File

@ -525,7 +525,20 @@ class Thirdparties extends DolibarrApi
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
} }
$this->company->oldcopy = clone $this->company; $this->company->oldcopy = clone $this->company;
return $this->company->delete($id);
$res = $this->company->delete($id);
if ($res < 0) {
throw new RestException(500, "Can't delete, error occurs");
} elseif ($res == 0) {
throw new RestException(409, "Can't delete, that product is probably used");
}
return array(
'success' => array(
'code' => 200,
'message' => 'Object deleted'
)
);
} }
/** /**

View File

@ -628,7 +628,17 @@ class Users extends DolibarrApi
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
} }
$this->useraccount->oldcopy = clone $this->useraccount; $this->useraccount->oldcopy = clone $this->useraccount;
return $this->useraccount->delete(DolibarrApiAccess::$user);
if (!$this->useraccount->delete(DolibarrApiAccess::$user)) {
throw new RestException(500);
}
return array(
'success' => array(
'code' => 200,
'message' => 'Ticket deleted'
)
);
} }
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore