Add getQuantityUnits and set/getUserFieldsForObject
This commit is contained in:
@ -7,6 +7,7 @@ namespace Ardent\GrocyApi;
|
||||
use Ardent\GrocyApi\Objects\AbstractApiObject;
|
||||
use Ardent\GrocyApi\Objects\ObjectTransformer;
|
||||
use Ardent\GrocyApi\Objects\ProductsObject;
|
||||
use Ardent\GrocyApi\Objects\QuantityUnitsObject;
|
||||
|
||||
class GrocyClient
|
||||
{
|
||||
@ -17,6 +18,66 @@ class GrocyClient
|
||||
$this->client = new Client($host, $apikey);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int the id of the created object
|
||||
*/
|
||||
private function addObject(string $entity, AbstractApiObject $object): int
|
||||
{
|
||||
$data = $this->client->post(
|
||||
sprintf('objects/%s', $entity),
|
||||
ObjectTransformer::normalize($object)
|
||||
);
|
||||
return $data['created_object_id'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ProductsObject[]
|
||||
*/
|
||||
public function getProducts(): array
|
||||
{
|
||||
return $this->getObjects('products');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return QuantityUnitsObject[]
|
||||
*/
|
||||
public function getQuantityUnits(): array
|
||||
{
|
||||
return $this->getObjects('quantity_units');
|
||||
}
|
||||
|
||||
public function getProduct(int $id): ProductsObject
|
||||
{
|
||||
return $this->getObject('products', $id);
|
||||
}
|
||||
|
||||
public function setProduct(ProductsObject $product, int $id): void
|
||||
{
|
||||
$this->setObject('products', $product, $id);
|
||||
}
|
||||
|
||||
public function addProduct(ProductsObject $product): int
|
||||
{
|
||||
return $this->addObject('products', $product);
|
||||
}
|
||||
|
||||
public function getUserFieldsForObject(AbstractApiObject $object): array
|
||||
{
|
||||
return $this->client->get(sprintf('userfields/%s/%s', $object::getEntity(), $object->getId()));
|
||||
}
|
||||
|
||||
public function setUserFieldsForObject(AbstractApiObject $object, array $userfields)
|
||||
{
|
||||
$this->client->put(sprintf('userfields/%s/%s', $object::getEntity(), $object->getId()), $userfields);
|
||||
}
|
||||
|
||||
public function setProductPicnicId(int $productId, int $picnicId)
|
||||
{
|
||||
$this->setUserFieldsForObject((new ProductsObject())->setId($productId), [
|
||||
'picnic' => $picnicId,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return AbstractApiObject[]
|
||||
*/
|
||||
@ -44,40 +105,4 @@ class GrocyClient
|
||||
ObjectTransformer::normalize($object)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int the id of the created object
|
||||
*/
|
||||
private function addObject(string $entity, AbstractApiObject $object): int
|
||||
{
|
||||
$data = $this->client->post(
|
||||
sprintf('objects/%s', $entity),
|
||||
ObjectTransformer::normalize($object)
|
||||
);
|
||||
return $data['created_object_id'];
|
||||
dd($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ProductsObject[]
|
||||
*/
|
||||
public function getProducts(): array
|
||||
{
|
||||
return $this->getObjects('products');
|
||||
}
|
||||
|
||||
public function getProduct(int $id): ProductsObject
|
||||
{
|
||||
return $this->getObject('products', $id);
|
||||
}
|
||||
|
||||
public function setProduct(ProductsObject $product, int $id): void
|
||||
{
|
||||
$this->setObject('products', $product, $id);
|
||||
}
|
||||
|
||||
public function addProduct(ProductsObject $product): int
|
||||
{
|
||||
return $this->addObject('products', $product);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user