| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?php
- namespace smladeoye\paystack;
- use yii\base\Component;
- class Page extends Component
- {
- /** @var array holds the default page operation configuration */
- private $page = array(
- 'baseUrl'=>'/page',
- 'slugAvailabilityUrl'=>'/check_slug_availability',
- 'beforeSend'=>array(),
- 'afterSend'=>array()
- );
- /*Constructor method to setup paystack component, page operation configurations
- * @param $paystack, Paystack instance
- *@param config, Yii2 default object configuration array
- */
- public function __construct(Paystack $paystack, $config = [])
- {
- $this->attachBehavior('Resources',array('class'=> Resources::className()));
- $this->setPaystack($paystack);
- $this->page = array_replace($this->page,$paystack->page);
- $this->setConfig($this->page);
- parent::__construct($config);
- }
- /** create a page
- * @param $name string|array array
- * @return $this
- */
- public function create($name = null)
- {
- $options = array();
- if (is_array($name))
- {
- $this->setRequestOptions($name);
- }
- else
- {
- if ($name)
- $options['name'] = $name;
- $this->setRequestOptions($options);
- }
- $this->sendRequest(Paystack::OP_PAGE_CREATE,Paystack::METHOD_POST);
- $this->setResponseOptions();
- return $this;
- }
- /** fetch all pages
- * @param $page string|integer
- * @param $per_page string|integer
- * @return $this
- */
- public function fetchAll($page = null,$per_page = null)
- {
- $options = array();
- if (is_array($page))
- {
- $this->setRequestOptions($page);
- }
- else
- {
- if ($page)
- $options['page'] = $page;
- if ($per_page)
- $options['perPage'] = $per_page;
- $this->setRequestOptions($options);
- }
- $this->sendRequest(Paystack::OP_PLAN_LIST);
- $this->setResponseOptions();
- return $this;
- }
- /** fetch a particular page
- * @param $id string|integer page id or slug
- * @return $this
- */
- public function fetch($id = null)
- {
- $this->acceptArray(false);
- $this->setRequestOptions($id);
- $this->sendRequest(Paystack::OP_PAGE_FETCH);
- $this->setResponseOptions();
- return $this;
- }
- /** update a particular page info
- * @param $id string|integer page id or slug
- * @param $options array, other parameters
- * @throws InvalidArgumentException when page_id is not provided
- * @return $this
- */
- public function update($page_id,$options = null)
- {
- if (is_array($page_id) || empty($page_id))
- throw new InvalidArgumentException('Invalid argument supplied for page id/slug, id must be integer or string');
- $options['id'] = $page_id;
- $this->setRequestOptions($options);
- $this->sendRequest(Paystack::OP_PLAN_UPDATE,Paystack::METHOD_PUT);
- $this->setResponseOptions();
- return $this;
- }
- /** check the availability of a particular page before deciding to create
- * @param $id string|integer transaction id or reference
- * @return $this
- */
- public function checkAvailability($id = null)
- {
- $this->acceptArray(false);
- $this->setRequestOptions($id);
- $this->sendRequest(Paystack::OP_PAGE_AVAILABILITY);
- $this->setResponseOptions();
- return $this;
- }
- }
|