/** * @api {post} /products_options/search/:id POST /products_options/search/:id * @apiExample Example usage: * curl -H "X-COMPARE-REST-API-KEY: 1234567890" * -i -X POST "http://apibeta.compargo.com/v1/products_options/e8227346-3a61-11e4-b18a-fe7344fb1ea4/?countryCode=ph&language=en" * * @apiDescription Read data of a Products Options * @apiName SearchOne * @apiGroup Products Options * * @apiHeader {String} X-COMPARE-REST-API-KEY Products Options unique access-key. * * @apiParam {String} language Mandatory Language. * @apiParam {String} countryCode Mandatory Country Code. * @apiParam {String} id Mandatory Products Options unique ID. * * @apiSuccess {String} id ID of the Products Option. * @apiSuccess {String} productId Product ID of the Products Option. * @apiSuccess {String} areaID Area ID of the Products Option. * @apiSuccess {String} name Name of the Products Option. * @apiSuccess {String} value Value of the Products Option. * @apiSuccess {String} label Label of the Products Option. * @apiSuccess {String} editable Editable Flag of the Products Option. * @apiSuccess {String} visibility Visibility Flag of the Products Option. * @apiSuccess {Number} status Status Flag of the Products Option. * @apiSuccess {Number} active Active Flag of the Products Option. * @apiSuccess {Date} created Creation date of the Products Option. * @apiSuccess {Date} modified Modification date of the Products Option. * @apiSuccess {String} createdBy ID of the User who created the Products Option. * @apiSuccess {String} modifiedBy ID of the User who modified the Products Option. * * @apiSuccessExample Success-Response: * HTTP/1.1 200 OK * { * "id": "e8227346-3a61-11e4-b18a-fe7344fb1ea4", * "productId": "72c28c74-3a45-11e4-b18a-fe7344fb1ea4", * "areaId": "0b412a0e-397a-11e4-b18a-fe7344fb1ea4", * "name": "featured", * "value": "0", * "label": null, * "editable": null, * "visibility": null, * "status": "1", * "created": "2014-07-11 09:13:27", * "modified": "2014-07-11 09:52:08", * "createdBy": "a8838d12-1dcc-11e4-b32d-eff91066cccf", * "modifiedBy": "c6bcb740-1dcc-11e4-b32d-eff91066cccf" * } * * @apiError ProductsOptionNotFound The id of the Products Option was not found. * * @apiErrorExample Error-Response: * HTTP/1.1 404 Not Found * { * "error": "ProductsOptionNotFound" * } * * @apiError InvalidAccessToken The access token is invalid. * * @apiErrorExample Error-Response: * HTTP/1.1 401 Unauthorized * { * "error": "InvalidAccessToken" * } * * @apiError MissingAuthenticationCredentials The authentication credentials are missing. * * @apiErrorExample Error-Response: * HTTP/1.1 401 Unauthorized * { * "error": "MissingAuthenticationCredentials" * } * * @apiError RouteNotFound That route was not found on the server. * * @apiErrorExample Error-Response: * HTTP/1.1 404 * { * "error": "RouteNotFound" * } * */ public function searchOne($id) { $results = array(); $request = $this->di->get('requestBody'); $parameters = $request->get(); if (count($parameters) > 1) { $productsOptions = new ProductsOptionsCollection($this->di); $results = $this->respond($productsOptions, $id); } else { $results = ProductsOptionsCollection::findFirstById($id); } if (!$results) { throw new HTTPException("Not found", 404, array('dev' => 'Products option does not exist', 'internalCode' => 'P1000', 'more' => '')); } return $results; }
/** * Responds with information about updated inserted products option * * @method post * @return json/xml data */ public function put($id) { $results = array(); $productsOption = ProductsOptions::findFirstById($id); if ($productsOption) { $productsOptionCollection = ProductsOptionsCollection::findFirst(array(array('id' => $id))); if ($productsOptionCollection != false) { $productsOptionCollection->id = $productsOption->id; $productsOptionCollection->productId = $productsOption->productId; $productsOptionCollection->areaId = $productsOption->areaId; $productsOptionCollection->name = $productsOption->name; $productsOptionCollection->value = $productsOption->value; $productsOptionCollection->label = $productsOption->label; $productsOptionCollection->status = $productsOption->status; $productsOptionCollection->active = $productsOption->active; $productsOptionCollection->editable = $productsOption->editable; $productsOptionCollection->visibility = $productsOption->visibility; $productsOptionCollection->created = $productsOption->created; $productsOptionCollection->modified = $productsOption->modified; $productsOptionCollection->createdBy = $productsOption->createdBy; $productsOptionCollection->modifiedBy = $productsOption->modifiedBy; $success = $productsOptionCollection->save(); if ($success) { if (1 == $productsOption->status) { $products = Products::findFirst(array(array('id' => $productsOption->productId))); if ($products) { $name = $productsOption->name; $products->{$name} = $productsOption->value; $products->save(); $results['id'] = $productsOption->id; } } } } } return $results; }