From b3f078a687e8477f7c7d16df9ce49c97583f4787 Mon Sep 17 00:00:00 2001 From: Matt Sidnell <54064522+pstructures@users.noreply.github.com> Date: Wed, 19 Aug 2020 16:20:16 +0100 Subject: [PATCH 1/2] Updated the categories API to allow projects as type --- .../categories/class/api_categories.class.php | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/htdocs/categories/class/api_categories.class.php b/htdocs/categories/class/api_categories.class.php index 1cbaf4cbe14..8725ae161a4 100644 --- a/htdocs/categories/class/api_categories.class.php +++ b/htdocs/categories/class/api_categories.class.php @@ -20,10 +20,12 @@ use Luracast\Restler\RestException; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/client.class.php'; + require_once DOL_DOCUMENT_ROOT.'/adherents/class/api_members.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/api_products.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/api_contacts.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/api_thirdparties.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/api_projects.class.php'; /** * API class for categories @@ -48,7 +50,7 @@ class Categories extends DolibarrApi 3 => 'member', 4 => 'contact', 5 => 'account', - //6 => 'project', + 6 => 'project', //7 => 'user', //8 => 'bank_line', //9 => 'warehouse', @@ -179,7 +181,8 @@ class Categories extends DolibarrApi } $i++; } - } else { + } + else { throw new RestException(503, 'Error when retrieve category list : '.$db->lasterror()); } if (!count($obj_ret)) { @@ -242,7 +245,9 @@ class Categories extends DolibarrApi if ($this->category->update(DolibarrApiAccess::$user) > 0) { return $this->get($id); - } else { + } + else + { throw new RestException(500, $this->category->error); } } @@ -285,7 +290,7 @@ class Categories extends DolibarrApi * Get the list of categories linked to an object * * @param int $id Object ID - * @param string $type Type of category ('member', 'customer', 'supplier', 'product', 'contact') + * @param string $type Type of category ('member', 'customer', 'supplier', 'product', 'contact', 'project') * @param string $sortfield Sort field * @param string $sortorder Sort order * @param int $limit Limit for list @@ -303,7 +308,8 @@ class Categories extends DolibarrApi Categorie::TYPE_CONTACT, Categorie::TYPE_CUSTOMER, Categorie::TYPE_SUPPLIER, - Categorie::TYPE_MEMBER + Categorie::TYPE_MEMBER, + Categorie::TYPE_PROJECT ])) { throw new RestException(401); } @@ -318,6 +324,8 @@ class Categories extends DolibarrApi throw new RestException(401); } elseif ($type == Categorie::TYPE_MEMBER && !DolibarrApiAccess::$user->rights->adherent->lire) { throw new RestException(401); + } elseif ($type == Categorie::TYPE_PROJECT && !DolibarrApiAccess::$user->rights->projet->lire) { + throw new RestException(401); } $categories = $this->category->getListForItem($id, $type, $sortfield, $sortorder, $limit, $page); @@ -326,7 +334,7 @@ class Categories extends DolibarrApi if ($categories == 0) { throw new RestException(404, 'No category found for this object'); } - throw new RestException(500, 'Error when fetching object categories', array_merge(array($this->category->error), $this->category->errors)); + throw new RestException(600, 'Error when fetching object categories', array_merge(array($this->category->error), $this->category->errors)); } return $categories; } @@ -727,7 +735,7 @@ class Categories extends DolibarrApi * Get the list of objects in a category. * * @param int $id ID of category - * @param string $type Type of category ('member', 'customer', 'supplier', 'product', 'contact') + * @param string $type Type of category ('member', 'customer', 'supplier', 'product', 'contact', 'project') * @param int $onlyids Return only ids of objects (consume less memory) * * @return mixed @@ -773,6 +781,9 @@ class Categories extends DolibarrApi } elseif ($type == 'contact') { $objects_api = new Contacts(); } + elseif ($type == 'project') { + $objects_api = new Projects(); + } if (is_object($objects_api)) { foreach ($objects as $obj) { From c2a81341ad7d0f4c0718cb8da6eb028e2bbeb3d4 Mon Sep 17 00:00:00 2001 From: Mr Matthew Sidnell Date: Wed, 19 Aug 2020 16:27:00 +0100 Subject: [PATCH 2/2] Updated Lint Issies --- htdocs/categories/class/api_categories.class.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/htdocs/categories/class/api_categories.class.php b/htdocs/categories/class/api_categories.class.php index 8725ae161a4..e73086fa85d 100644 --- a/htdocs/categories/class/api_categories.class.php +++ b/htdocs/categories/class/api_categories.class.php @@ -245,8 +245,7 @@ class Categories extends DolibarrApi if ($this->category->update(DolibarrApiAccess::$user) > 0) { return $this->get($id); - } - else + } else { throw new RestException(500, $this->category->error); } @@ -324,7 +323,7 @@ class Categories extends DolibarrApi throw new RestException(401); } elseif ($type == Categorie::TYPE_MEMBER && !DolibarrApiAccess::$user->rights->adherent->lire) { throw new RestException(401); - } elseif ($type == Categorie::TYPE_PROJECT && !DolibarrApiAccess::$user->rights->projet->lire) { + } elseif ($type == Categorie::TYPE_PROJECT && !DolibarrApiAccess::$user->rights->projet->lire) { throw new RestException(401); } @@ -781,10 +780,10 @@ class Categories extends DolibarrApi } elseif ($type == 'contact') { $objects_api = new Contacts(); } - elseif ($type == 'project') { + elseif ($type == 'project') { $objects_api = new Projects(); } - if (is_object($objects_api)) + if (is_object($objects_api)) { foreach ($objects as $obj) { $cleaned_objects[] = $objects_api->_cleanObjectDatas($obj);