REST API: replace the /thirdparty/ API by /thirdparties/.
Remove several /thirdparty/list/xxx endpoints because they are redundant
with the /thirdparties/ endpoint whith the 'mode' filter.
Remove the customer/byemail/{email} endpoint because it is redundant
with the /thirdparties/ endpoint whith the 'email' filter.
Remove all the /customer/ endpoints because they do the same thing as
the corresponding /thirdparty/ endpoints.
This commit is contained in:
parent
571f6b8a26
commit
04778f932e
@ -19,14 +19,12 @@
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API class for thirdparty object
|
* API class for thirdparties
|
||||||
*
|
*
|
||||||
* @smart-auto-routing false
|
|
||||||
* @access protected
|
* @access protected
|
||||||
* @class DolibarrApiAccess {@requires user,external}
|
* @class DolibarrApiAccess {@requires user,external}
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
class ThirdpartyApi extends DolibarrApi
|
class Thirdparties extends DolibarrApi
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -40,76 +38,21 @@ class ThirdpartyApi extends DolibarrApi
|
|||||||
* @var Societe $company {@type Societe}
|
* @var Societe $company {@type Societe}
|
||||||
*/
|
*/
|
||||||
public $company;
|
public $company;
|
||||||
/**
|
|
||||||
* @var Customer $customer {@type Client}
|
|
||||||
*/
|
|
||||||
public $customer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
|
||||||
* @url thirdparty/
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function __construct()
|
function __construct()
|
||||||
{
|
{
|
||||||
global $db, $conf;
|
global $db, $conf;
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
$this->company = new Societe($this->db);
|
$this->company = new Societe($this->db);
|
||||||
$this->customer = new Client($this->db);
|
|
||||||
|
|
||||||
if (! empty($conf->global->SOCIETE_MAIL_REQUIRED)) {
|
if (! empty($conf->global->SOCIETE_MAIL_REQUIRED)) {
|
||||||
static::$FIELDS[] = 'email';
|
static::$FIELDS[] = 'email';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get properties of a customer object
|
|
||||||
*
|
|
||||||
* Return an array with customer informations
|
|
||||||
*
|
|
||||||
* @param int $id ID of customer
|
|
||||||
* @return array|mixed data without useless information
|
|
||||||
*
|
|
||||||
* @url GET customer/{id}
|
|
||||||
* @throws RestException
|
|
||||||
*/
|
|
||||||
function getCustomer($id)
|
|
||||||
{
|
|
||||||
if(! DolibarrApiAccess::$user->rights->societe->lire) {
|
|
||||||
throw new RestException(401);
|
|
||||||
}
|
|
||||||
|
|
||||||
$result = $this->customer->fetch($id);
|
|
||||||
if( ! $result ) {
|
|
||||||
throw new RestException(404, 'Customer not found');
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ! DolibarrApi::_checkAccessToResource('societe',$this->customer->id)) {
|
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->_cleanObjectDatas($this->customer);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Search customer by email
|
|
||||||
*
|
|
||||||
* @param string $email email id
|
|
||||||
*
|
|
||||||
* @return object client with given email
|
|
||||||
*
|
|
||||||
* @url GET customer/byemail/{email}
|
|
||||||
*/
|
|
||||||
function getByEmail($email) {
|
|
||||||
$res = $this->getList(1,$email);
|
|
||||||
if (count($res) == 1) {
|
|
||||||
$customer = $res[0];
|
|
||||||
return $customer;
|
|
||||||
}
|
|
||||||
return $res;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get properties of a thirdparty object
|
* Get properties of a thirdparty object
|
||||||
*
|
*
|
||||||
@ -118,7 +61,6 @@ class ThirdpartyApi extends DolibarrApi
|
|||||||
* @param int $id ID of thirdparty
|
* @param int $id ID of thirdparty
|
||||||
* @return array|mixed data without useless information
|
* @return array|mixed data without useless information
|
||||||
*
|
*
|
||||||
* @url GET thirdparty/{id}
|
|
||||||
* @throws RestException
|
* @throws RestException
|
||||||
*/
|
*/
|
||||||
function get($id)
|
function get($id)
|
||||||
@ -147,17 +89,14 @@ class ThirdpartyApi extends DolibarrApi
|
|||||||
* @param int $mode Set to 1 to show only customers
|
* @param int $mode Set to 1 to show only customers
|
||||||
* Set to 2 to show only prospects
|
* Set to 2 to show only prospects
|
||||||
* Set to 3 to show only those are not customer neither prospect
|
* Set to 3 to show only those are not customer neither prospect
|
||||||
* @param Text $email Search by email filter
|
* @param string $email Search by email filter
|
||||||
* @param string $sortfield Sort field
|
* @param string $sortfield Sort field
|
||||||
* @param string $sortorder Sort order
|
* @param string $sortorder Sort order
|
||||||
* @param int $limit Limit for list
|
* @param int $limit Limit for list
|
||||||
* @param int $page Page number
|
* @param int $page Page number
|
||||||
* @return array Array of thirdparty objects
|
* @return array Array of thirdparty objects
|
||||||
*
|
|
||||||
* @url GET /thirdparty/list
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function getList($mode=0, $email=NULL, $sortfield = "s.rowid", $sortorder = 'ASC', $limit = 0, $page = 0) {
|
function index($mode=0, $email=NULL, $sortfield = "s.rowid", $sortorder = 'ASC', $limit = 0, $page = 0) {
|
||||||
global $db, $conf;
|
global $db, $conf;
|
||||||
|
|
||||||
$obj_ret = array();
|
$obj_ret = array();
|
||||||
@ -231,47 +170,11 @@ class ThirdpartyApi extends DolibarrApi
|
|||||||
return $obj_ret;
|
return $obj_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show customers
|
|
||||||
*
|
|
||||||
* @return array List of customers
|
|
||||||
*
|
|
||||||
* @url GET /thirdparty/list/customers
|
|
||||||
* @url GET /customer/list
|
|
||||||
*/
|
|
||||||
function getListCustomers() {
|
|
||||||
return $this->getList(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show prospects
|
|
||||||
*
|
|
||||||
* @return array List of prospects
|
|
||||||
*
|
|
||||||
* @url GET /thirdparty/list/prospects
|
|
||||||
*/
|
|
||||||
function getListProspects() {
|
|
||||||
return $this->getList(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show other
|
|
||||||
*
|
|
||||||
* @return array List of thirpdparties who are not customer neither prospect
|
|
||||||
*
|
|
||||||
* @url GET /thirdparty/list/others
|
|
||||||
*/
|
|
||||||
function getListOthers() {
|
|
||||||
return $this->getList(3);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create thirdparty object
|
* Create thirdparty object
|
||||||
*
|
*
|
||||||
* @param array $request_data Request datas
|
* @param array $request_data Request datas
|
||||||
* @return int ID of thirdparty
|
* @return int ID of thirdparty
|
||||||
*
|
|
||||||
* @url POST thirdparty/
|
|
||||||
*/
|
*/
|
||||||
function post($request_data = NULL)
|
function post($request_data = NULL)
|
||||||
{
|
{
|
||||||
@ -287,29 +190,12 @@ class ThirdpartyApi extends DolibarrApi
|
|||||||
return $this->company->create(DolibarrApiAccess::$user);
|
return $this->company->create(DolibarrApiAccess::$user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create customer object
|
|
||||||
*
|
|
||||||
* @param array $request_data Request datas
|
|
||||||
* @return int ID of thirdparty
|
|
||||||
*
|
|
||||||
* @url POST customer/
|
|
||||||
*/
|
|
||||||
function postCustomer($request_data) {
|
|
||||||
$this->post($request_data);
|
|
||||||
$this->company->set_as_client();
|
|
||||||
return $this->company->id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update thirdparty
|
* Update thirdparty
|
||||||
*
|
*
|
||||||
* @param int $id Id of thirdparty to update
|
* @param int $id Id of thirdparty to update
|
||||||
* @param array $request_data Datas
|
* @param array $request_data Datas
|
||||||
* @return int
|
* @return int
|
||||||
*
|
|
||||||
* @url PUT thirdparty/{id}
|
|
||||||
*/
|
*/
|
||||||
function put($id, $request_data = NULL)
|
function put($id, $request_data = NULL)
|
||||||
{
|
{
|
||||||
@ -335,45 +221,12 @@ class ThirdpartyApi extends DolibarrApi
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* Update customer
|
|
||||||
*
|
|
||||||
* @param int $id Id of thirdparty to update
|
|
||||||
* @param array $request_data Datas
|
|
||||||
* @return int
|
|
||||||
*
|
|
||||||
* @url PUT customer/{id}
|
|
||||||
*/
|
|
||||||
function putClient($id, $request_data = NULL) {
|
|
||||||
if(! DolibarrApiAccess::$user->rights->societe->creer) {
|
|
||||||
throw new RestException(401);
|
|
||||||
}
|
|
||||||
$result = $this->customer->fetch($id);
|
|
||||||
if( ! $result ) {
|
|
||||||
throw new RestException(404, 'Customer not found');
|
|
||||||
}
|
|
||||||
if( ! DolibarrApi::_checkAccessToResource('societe',$this->customer->id)) {
|
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($request_data as $field => $value) {
|
|
||||||
$this->customer->$field = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if($this->customer->update($id, DolibarrApiAccess::$user,1,'','','update'))
|
|
||||||
return $this->get ($id);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete thirdparty
|
* Delete thirdparty
|
||||||
*
|
*
|
||||||
* @param int $id Thirparty ID
|
* @param int $id Thirparty ID
|
||||||
* @return integer
|
* @return integer
|
||||||
*
|
|
||||||
* @url DELETE thirdparty/{id}
|
|
||||||
* @url DELETE customer/{id}
|
|
||||||
*/
|
*/
|
||||||
function delete($id)
|
function delete($id)
|
||||||
{
|
{
|
||||||
@ -401,7 +254,7 @@ class ThirdpartyApi extends DolibarrApi
|
|||||||
function _validate($data)
|
function _validate($data)
|
||||||
{
|
{
|
||||||
$thirdparty = array();
|
$thirdparty = array();
|
||||||
foreach (ThirdpartyApi::$FIELDS as $field) {
|
foreach (Thirdparties::$FIELDS as $field) {
|
||||||
if (!isset($data[$field]))
|
if (!isset($data[$field]))
|
||||||
throw new RestException(400, "$field field missing");
|
throw new RestException(400, "$field field missing");
|
||||||
$thirdparty[$field] = $data[$field];
|
$thirdparty[$field] = $data[$field];
|
||||||
Loading…
Reference in New Issue
Block a user