diff --git a/src/App.php b/src/App.php index 57bdf8489bbbf11ec1f190ae6a53f94f5ac1807c..c3639bba338624278257f23813ffcd71c634e9a6 100644 --- a/src/App.php +++ b/src/App.php @@ -13,6 +13,7 @@ use app\controllers\ReviewController; use app\controllers\RegisterController; use app\controllers\UpdateFilmController; use app\controllers\UserDashboardController; +use app\controllers\SoapPremiumController; use app\repositories\UserRepository; use app\repositories\ReviewRepository; use app\services\UserService; @@ -49,5 +50,6 @@ class App $this->router->addRoute('/my-favorites', ProfileController::class); $this->router->addRoute('/my-reviews', ProfileController::class); $this->router->addRoute('/user-dashboard', UserDashboardController::class); + $this->router->addRoute('/premium-status', SoapPremiumController::class); } } diff --git a/src/controllers/SoapPremiumController.php b/src/controllers/SoapPremiumController.php new file mode 100644 index 0000000000000000000000000000000000000000..3d8112f8d3bcf5fbe276cc22d3963232237a2f3c --- /dev/null +++ b/src/controllers/SoapPremiumController.php @@ -0,0 +1,44 @@ +<?php + +namespace app\controllers; +use app\base\BaseController; +use app\controllers\utils\response; +use app\Request; +use app\models\SoapPremiumModel; +use Exception; + +class SoapPremiumController extends BaseController { + public $model; + // public $soap_client; + + public function __construct() { + $this->model = SoapPremiumModel::getInstance(); + // $this->soap_client = $this->model->getSoapClient(); + } + + public function checkStatus($params){ + return $this->model->checkStatus($params); + } + + protected function get($urlParams) + { + $uri = Request::getURL(); + + if($uri == '/premium-status'){ + $params = ["userId" => 1]; + $result = $this->checkStatus($params); + // response::send_json_response($result->userStatus); + $data['userStatus'] = $result->userStatus; + + parent::render($data, 'premium-status', "layouts/base"); + } + else{ + throw new Exception("Invalid URL"); + } + } + + protected function post($urlParams) + { + + } +} \ No newline at end of file diff --git a/src/models/SoapPremiumModel.php b/src/models/SoapPremiumModel.php new file mode 100644 index 0000000000000000000000000000000000000000..d3e4153ebe71562b006aedb3f9c2d031fcbff767 --- /dev/null +++ b/src/models/SoapPremiumModel.php @@ -0,0 +1,49 @@ +<?php + namespace app\models; + use app\base\BaseModel; + + class SoapPremiumModel + { + private $soapclient; + private static $instance = null; + + public function __construct() + { + $apikey = getenv('api_key'); + // Stream context to add HTTP headers + $streamContext = stream_context_create([ + 'http' => [ + 'header' => "Authorization: Bearer $apikey", + ], + ]); + // Options for the SOAP client + $options = [ + 'stream_context' => $streamContext, + 'trace' => 1, // Enable trace to view request and response headers + 'cache_wsdl' => WSDL_CACHE_NONE + ]; + $this->soapclient = new \SoapClient(getenv('soap_url'), $options); + } + public static function getInstance(){ + if (self::$instance == null) { + self::$instance = new SoapPremiumModel(); + } + return self::$instance; + } + // public function getSoapClient() + // { + // return $this->soapclient; + // } + public function checkStatus($params) + { + return $this->soapclient->checkStatus($params); + } + // public function getFunctions() + // { + // return $this->soapclient->__getFunctions(); + // } + // public function getTypes() + // { + // return $this->soapclient->__getTypes(); + // } + } \ No newline at end of file diff --git a/views/layouts/base.php b/views/layouts/base.php index 45f7aee02bebb42d5e0353561e91950440ff4533..ff7e241e2369f0871e98b8ac090e7c4b630ad779 100644 --- a/views/layouts/base.php +++ b/views/layouts/base.php @@ -33,6 +33,7 @@ <ul class='nav-links menu'> <li class='menu-item' id='home'><a href='/'>Home</a></li> <li class='menu-item'><a href='/films'>Films</a></li> + <li class='menu-item'><a href='/premium-status'>Premium Status</a></li> <?php diff --git a/views/premium-status.php b/views/premium-status.php new file mode 100644 index 0000000000000000000000000000000000000000..a0ecfb504245da5910fb52bfcfd34c5e862d08db --- /dev/null +++ b/views/premium-status.php @@ -0,0 +1,8 @@ +<div class='details'> + <h2 id="goBack"><a class='back-button' href="/films"><?php echo "< Films" ?></a></h2> + <h1>Premium Status<h1> + <?php echo $data["userStatus"]?> + +</div> + +</div> \ No newline at end of file