Add basket converter

This commit is contained in:
Romain Neutron
2013-11-08 19:13:37 +01:00
parent 21f0df2cfe
commit 3548421160
43 changed files with 711 additions and 544 deletions

View File

@@ -9,6 +9,7 @@
* file that was distributed with this source code.
*/
use Alchemy\Phrasea\Model\Entities\Basket;
use Symfony\Component\HttpFoundation\Request;
use Silex\Application;
@@ -203,7 +204,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function delete_basket(Request $request, $basket_id);
public function delete_basket(Request $request, Basket $basket);
/**
* Route : /baskets/BASKET_ID/content/FORMAT/
@@ -214,7 +215,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function get_basket(Request $request, $basket_id);
public function get_basket(Request $request, Basket $basket);
/**
* Route : /baskets/BASKET_ID/title/FORMAT/
@@ -225,7 +226,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function set_basket_title(Request $request, $basket_id);
public function set_basket_title(Request $request, Basket $basket);
/**
* Route : /baskets/BASKET_ID/description/FORMAT/
@@ -236,7 +237,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function set_basket_description(Request $request, $basket_id);
public function set_basket_description(Request $request, Basket $basket);
/**
* Route : /publications/list/FORMAT/

View File

@@ -1297,17 +1297,12 @@ class API_V1_adapter extends API_V1_Abstract
* Delete a basket
*
* @param Request $request
* @param int $basket_id
* @param Basket $basket
* @return array
*/
public function delete_basket(Request $request, $basket_id)
public function delete_basket(Request $request, Basket $basket)
{
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
/* @var $repository Alchemy\Phrasea\Model\Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->app, $basket_id, $this->app['authentication']->getUser(), true);
$this->app['EM']->remove($Basket);
$this->app['EM']->remove($basket);
$this->app['EM']->flush();
return $this->search_baskets($request);
@@ -1317,23 +1312,17 @@ class API_V1_adapter extends API_V1_Abstract
* Retrieve a basket
*
* @param Request $request
* @param int $basket_id
* @param Basket $basket
* @return API_V1_result
*/
public function get_basket(Request $request, $basket_id)
public function get_basket(Request $request, Basket $basket)
{
$result = new API_V1_result($this->app, $request, $this);
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
/* @var $repository Alchemy\Phrasea\Model\Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->app, $basket_id, $this->app['authentication']->getUser(), false);
$result->set_datas(
array(
"basket" => $this->list_basket($Basket),
"basket_elements" => $this->list_basket_content($Basket)
"basket" => $this->list_basket($basket),
"basket_elements" => $this->list_basket_content($basket)
)
);
@@ -1414,26 +1403,19 @@ class API_V1_adapter extends API_V1_Abstract
* Change the name of one basket
*
* @param Request $request
* @param int $basket_id
* @param Basket $basket
* @return API_V1_result
*/
public function set_basket_title(Request $request, $basket_id)
public function set_basket_title(Request $request, Basket $basket)
{
$result = new API_V1_result($this->app, $request, $this);
$name = $request->get('name');
$basket->setName($request->get('name'));
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
/* @var $repository Alchemy\Phrasea\Model\Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->app, $basket_id, $this->app['authentication']->getUser(), true);
$Basket->setName($name);
$this->app['EM']->merge($Basket);
$this->app['EM']->persist($basket);
$this->app['EM']->flush();
$result->set_datas(array("basket" => $this->list_basket($Basket)));
$result->set_datas(array("basket" => $this->list_basket($basket)));
return $result;
}
@@ -1442,26 +1424,19 @@ class API_V1_adapter extends API_V1_Abstract
* Change the description of one basket
*
* @param Request $request
* @param type $basket_id
* @param Basket $basket
* @return API_V1_result
*/
public function set_basket_description(Request $request, $basket_id)
public function set_basket_description(Request $request, Basket $basket)
{
$result = new API_V1_result($this->app, $request, $this);
$desc = $request->get('description');
$basket->setDescription($request->get('description'));
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
/* @var $repository Alchemy\Phrasea\Model\Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->app, $basket_id, $this->app['authentication']->getUser(), true);
$Basket->setDescription($desc);
$this->app['EM']->merge($Basket);
$this->app['EM']->persist($basket);
$this->app['EM']->flush();
$result->set_datas(array("basket" => $this->list_basket($Basket)));
$result->set_datas(array("basket" => $this->list_basket($basket)));
return $result;
}