fix #22766: better API response HTTP code

This commit is contained in:
Eric Seigne 2022-11-26 00:50:45 +01:00
parent 459086b11e
commit 616e2b79ef
6 changed files with 60 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,22 @@ 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,18 @@ 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