<?php
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
//use AppBundle\Model\UserService;
use AppBundle\Model\Restful;
//use Pimcore\Model\User\Listing;
use Pimcore\Model\DataObject;
use AppBundle\Model\CustomObject;
use Pimcore\Model\Asset;
//use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class RestfulController
{
//private $userListing;
private $_apiKey;
//private $userService;
private $resfulModel;
public function __construct()
{
//$this->userListing = new Listing();
//$this->userService = new UserService();
$this->resfulModel = new Restful();
}
/*
@param: id
*/
public function getImageByAssetId(Request $request)
{
// Get api key
$this->_apiKey = $request->get('apikey');
$assetId = $request->get('id');
$ratio = $request->get('ratio');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$asset = Asset::getById($assetId);
$paramOutputJson = array(
'status' => 'success',
'http_code' => 'ok'
);
if($asset === null)
{
$paramOutputJson['message'] = 'Image Not Found';
$paramOutputJson['data'] = array();
}
else
{
$paramOutputJson['message'] = 'OK';
$paramOutputJson['data'] = array(
'asset_id' => $assetId,
'url' => $this->resfulModel->getSiteUrlProtocal() . $request->server->get('HTTP_HOST') . $asset->getThumbnail($ratio)->getPath(),
'ratio' => $ratio
);
}
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getObjects(Request $request)
{
// Get api key
$this->_apiKey = $request->get('apikey');
// Category name
$catName = $request->get('category');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$objectModel = new CustomObject('privilege');
$resDataArray = $objectModel->getObjects($lang, $catName);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
/*
@param: key, path, optional, lang
*/
public function getObject(Request $request)
{
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$key = $request->get('key');
$path = $request->get('path');
$external_key = $request->get('external_key');
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$objectModel = new CustomObject('privilege');
$resDataArray = $objectModel->getObject(
array(
'key' => $key,
'path' => $path,
'external_key' => $external_key,
'lang' => $lang
)
);
$paramOutputJson = array();
if( empty($resDataArray) )
{
$paramOutputJson['status'] = 'error';
$paramOutputJson['http_code'] = 'ok';
$paramOutputJson['message'] = 'Content Not Found';
$paramOutputJson['data'] = array();
}
else
{
$paramOutputJson['status'] = 'success';
$paramOutputJson['http_code'] = 'ok';
$paramOutputJson['message'] = 'OK';
$paramOutputJson['data'] = $resDataArray;
}
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getContentKiosByContainer(Request $request)
{
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$container = $request->get('container');
if( $container == null )
{
$paramOutputJson['status'] = 'error';
$paramOutputJson['http_code'] = 'unprocessable_entity';
$paramOutputJson['message'] = 'Parameter containers is require';
$paramOutputJson['data'] = array();
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$objectName = 'KiosCMS';
$objectModel = new CustomObject($objectName);
$resDataArray = $objectModel->getObjectKiosCMS(
array(
'container' => $container,
'objectName' => $objectName,
'lang' => $lang
)
);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
/*
@param: key, path, optional, lang
*/
public function getPromoKios(Request $request)
{
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$key = $request->get('key');
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
if($key != ""){
$key_arr = explode(",",$key);
$objectModel = new CustomObject('KiosPromotion');
$resDataArray = $objectModel->getPromoKios($key_arr,$lang);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
}
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getPromoKiosLocation(Request $request)
{
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$branch = $request->get('branch');
if($branch != ""){
$objectModel = new CustomObject('KiosPromotion');
$resDataArray = $objectModel->getPromoKiosLocation($lang,$branch);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
}
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
/*
@param: key, path, optional, lang
*/
public function getPromoKiosByCate(Request $request)
{
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$cate = $request->get('cate');
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
if($cate != ""){
$objectModel = new CustomObject('KiosPromotion');
$resDataArray = $objectModel->getPromoKiosByCate($cate,$lang);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
}
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getCatePromokios(Request $request){
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$objectModel = new CustomObject('KiosCatePromotion');
$resDataArray = $objectModel->getCatePromoKios($lang);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getAllBrandPromokios(Request $request){
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$objectModel = new CustomObject('KiosCatePromotion');
$resDataArray = $objectModel->getAllBrandPromokios($lang);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getMediaByLocation(Request $request){
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$location = $request->get('location');
if(!empty($location)) {
$app = $request->get("app");
if($app == ""){
$app = '/Kios/';
}
$objectModel = new CustomObject('MediaByLocation');
$resDataArray = $objectModel->getMediaLocation($location,$lang,$app);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
}
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getVersion(Request $request){
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$key = $request->get('key');
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$id = $request->get('id');
$objectModel = new CustomObject('KiosPromotion');
$resDataArray = $objectModel->getVersion($id);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getPromoCoupon(Request $request){
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$location = ($request->get('location')) ? $request->get('location') : '';
$campaign = ($request->get('campaign')) ? $request->get('campaign') : '';
$shop_name = ($request->get('shop_name')) ? $request->get('shop_name') : '';
$highlight = ($request->get('highlight')) ? $request->get('highlight') : '';
$promotion_code = ($request->get('promotion_code')) ? $request->get('promotion_code') : '';
$branch = ($request->get('branch')) ? $request->get('branch') : '';
$objectModel = new CustomObject('KiosPromoCoupon');
$resDataArray = $objectModel->getKiosPromoCoupon($location,$lang,$campaign,$shop_name,$promotion_code,$branch,$highlight);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
public function getPromoShop(Request $request){
// Get api key
$this->_apiKey = $request->get('apikey');
// Authen api key
$authenResult = $this->resfulModel->authenApiKeyUser($this->_apiKey);
if ( !$authenResult['valid'] ) { return $authenResult['response']; }
$lang = ($request->get('lang')) ? $request->get('lang') : 'en';
$branch = ($request->get('branch')) ? $request->get('branch') : '';
$objectModel = new CustomObject('KiosPromoCoupon');
$resDataArray = $objectModel->getPromoShop($branch,$lang);
$paramOutputJson = array(
'status' => 'success',
'message' => 'OK',
'http_code' => 'ok',
'data' => $resDataArray
);
return $this->resfulModel->generateResponseJson($paramOutputJson);
}
}