FIX deleteAttributeValueByRef / ADD getAttributeValueById, getAttributeValueByRef
This commit is contained in:
parent
4f747e2eb8
commit
1068d9a623
@ -982,28 +982,112 @@ class Products extends DolibarrApi
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete attributes by ref.
|
* Get attribute value by id.
|
||||||
*
|
*
|
||||||
* @param string $ref Reference of Attribute
|
* @param int $id ID of Attribute value
|
||||||
|
* @param string $ref Ref of Attribute value
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @throws RestException
|
||||||
|
* @throws 401
|
||||||
|
*
|
||||||
|
* @url GET attributes/values/{id}
|
||||||
|
*/
|
||||||
|
public function getAttributeValueById($id)
|
||||||
|
{
|
||||||
|
if(! DolibarrApiAccess::$user->rights->produit->lire) {
|
||||||
|
throw new RestException(401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "SELECT rowid, fk_product_attribute, ref, value FROM ".MAIN_DB_PREFIX."product_attribute_value WHERE rowid = ".(int) $id." AND entity IN (".getEntity('product').")";
|
||||||
|
|
||||||
|
$query = $this->db->query($sql);
|
||||||
|
|
||||||
|
if (!$query) {
|
||||||
|
throw new RestException(401);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$this->db->num_rows($query)) {
|
||||||
|
throw new RestException(404, 'Attribute value not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->db->fetch_object($query);
|
||||||
|
|
||||||
|
$attrval = [];
|
||||||
|
$attrval['id'] = $result->rowid;
|
||||||
|
$attrval['fk_product_attribute'] = $result->fk_product_attribute;
|
||||||
|
$attrval['ref'] = $result->ref;
|
||||||
|
$attrval['value'] = $result->value;
|
||||||
|
|
||||||
|
return $attrval;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get attribute value by ref.
|
||||||
|
*
|
||||||
|
* @param int $id ID of Attribute value
|
||||||
|
* @param string $ref Ref of Attribute value
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @throws RestException
|
||||||
|
* @throws 401
|
||||||
|
*
|
||||||
|
* @url GET attributes/{id}/values/ref/{ref}
|
||||||
|
*/
|
||||||
|
public function getAttributeValueByRef($id, $ref)
|
||||||
|
{
|
||||||
|
if(! DolibarrApiAccess::$user->rights->produit->lire) {
|
||||||
|
throw new RestException(401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "SELECT rowid, fk_product_attribute, ref, value FROM ".MAIN_DB_PREFIX."product_attribute_value WHERE ref LIKE '". trim($ref) ."' AND fk_product_attribute = ". (int) $id ." AND entity IN (".getEntity('product').")";
|
||||||
|
|
||||||
|
$query = $this->db->query($sql);
|
||||||
|
|
||||||
|
if (!$query) {
|
||||||
|
throw new RestException(401);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$this->db->num_rows($query)) {
|
||||||
|
throw new RestException(404, 'Attribute value not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $this->db->fetch_object($query);
|
||||||
|
|
||||||
|
$attrval = [];
|
||||||
|
$attrval['id'] = $result->rowid;
|
||||||
|
$attrval['fk_product_attribute'] = $result->fk_product_attribute;
|
||||||
|
$attrval['ref'] = $result->ref;
|
||||||
|
$attrval['value'] = $result->value;
|
||||||
|
|
||||||
|
return $attrval;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete attribute value by ref.
|
||||||
|
*
|
||||||
|
* @param int $id ID of Attribute
|
||||||
|
* @param string $ref Ref of Attribute value
|
||||||
* @return int
|
* @return int
|
||||||
*
|
*
|
||||||
* @throws RestException
|
* @throws RestException
|
||||||
* @throws 401
|
* @throws 401
|
||||||
*
|
*
|
||||||
* @url DELETE attributes/ref/{ref}
|
* @url DELETE attributes/{id}/values/ref/{ref}
|
||||||
*/
|
*/
|
||||||
public function deleteAttributesByRef($ref)
|
public function deleteAttributeValueByRef($id, $ref)
|
||||||
{
|
{
|
||||||
if(! DolibarrApiAccess::$user->rights->produit->supprimer) {
|
if(! DolibarrApiAccess::$user->rights->produit->supprimer) {
|
||||||
throw new RestException(401);
|
throw new RestException(401);
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_attribute WHERE ref LIKE '". trim($ref) ."'";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_attribute_value WHERE ref LIKE '". trim($ref) ."' AND fk_product_attribute = ". (int) $id;
|
||||||
|
|
||||||
if ($this->db->query($sql)) {
|
if ($this->db->query($sql)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
throw new RestException(500, "Error deleting attribute");
|
|
||||||
|
throw new RestException(500, "Error deleting attribute value");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user