public function subscribe()
 {
     $eventId = Utils::lookupEventId(trim(Input::get('event')));
     if (!$eventId) {
         return Response::json('', 500);
     }
     $subscription = Subscription::where('account_id', '=', Auth::user()->account_id)->where('event_id', '=', $eventId)->first();
     if (!$subscription) {
         $subscription = new Subscription();
         $subscription->account_id = Auth::user()->account_id;
         $subscription->event_id = $eventId;
     }
     $subscription->target_url = trim(Input::get('target_url'));
     $subscription->save();
     return Response::json('{"id":' . $subscription->id . '}', 201);
 }
Exemplo n.º 2
0
 function subscribe()
 {
     ///////////////
     // GET Email //
     ///////////////
     $email = $this->request->input('email');
     if (!$email) {
         return app()->abort(400);
     }
     ////////////////////////
     // Check In Database  //
     ////////////////////////
     $data = Model::email($email)->first();
     if (!$data) {
         $data = new Model();
         $data->email = $email;
         $data->name = '';
     }
     $data->is_subscribe = true;
     //////////////////
     // Link to User //
     //////////////////
     $user = User::where('email', $this->request->input('email'))->first();
     if ($user) {
         $data->name = $user->name;
         $data->user_id = $user->_id;
     }
     //////////////
     // Response //
     //////////////
     if ($data->save()) {
         return response()->json(JSend::success(['count' => $count, 'data' => $data->toArray()])->asArray())->setCallback($this->request->input('callback'));
     } else {
         return response()->json(JSend::fail($data->getErrors())->asArray())->setCallback($this->request->input('callback'));
     }
 }
Exemplo n.º 3
0
 public function actionSubscriptions($id = null)
 {
     if (Yii::$app->request->isPost) {
         $xml = new \DOMDocument();
         $xml->loadXML(Yii::$app->request->getRawBody());
         $xpath = new \DOMXpath($xml);
         foreach ($xml->getElementsByTagNameNS('http://schemas.ogf.org/nsi/2014/02/discovery/types', 'subscriptionRequest') as $subXml) {
             $nsaNode = $xpath->query(".//requesterId", $subXml);
             $nsaId = $nsaNode->item(0)->nodeValue;
             if (!($sub = Subscription::findOneByNSA($nsaId))) {
                 $sub = new Subscription();
                 $sub->nsa = $nsaId;
                 $url = $xpath->query(".//callback", $subXml);
                 $sub->discovery_url = $url->item(0)->nodeValue;
                 if (!$sub->save()) {
                     return false;
                 }
             }
             $xml = new \DOMDocument();
             $xml->loadXML('<?xml version="1.0" encoding="UTF-8"?><ns0:subscription xmlns:ns0="http://schemas.ogf.org/nsi/2014/02/discovery/types" id="ea948ede-7f7b-4e36-b2ef-e235a235c88e" href="" version="2015-07-08T15:36:33.075-03:00"><requesterId>urn:ogf:network:es.net:2013:nsa:nsi-aggr-west</requesterId><callback>https://nsi-aggr-west.es.net/discovery/notifications</callback><filter><include><event>All</event></include></filter></ns0:subscription>');
             $xpath = new \DOMXpath($xml);
             foreach ($xml->getElementsByTagNameNS('http://schemas.ogf.org/nsi/2014/02/discovery/types', 'subscription') as $subXml) {
                 $subXml->setAttribute('id', $sub->id);
                 $nsaId = $xpath->query(".//requesterId", $subXml);
                 $nsaId->item(0)->nodeValue = $sub->nsa;
                 $url = $xpath->query(".//callback", $subXml);
                 $url->item(0)->nodeValue = $sub->discovery_url;
                 return $xml->saveXML();
             }
         }
     }
     if ($id) {
         $sub = Subscription::findOne($id);
         if (!$sub) {
             return '';
         }
         if (Yii::$app->request->isDelete) {
             $sub->delete();
             return '';
         }
         $xml = new \DOMDocument();
         $xml->loadXML('<?xml version="1.0" encoding="UTF-8"?><ns0:subscription xmlns:ns0="http://schemas.ogf.org/nsi/2014/02/discovery/types" id="ea948ede-7f7b-4e36-b2ef-e235a235c88e" href="" version="2015-07-08T15:36:33.075-03:00"><requesterId>urn:ogf:network:es.net:2013:nsa:nsi-aggr-west</requesterId><callback>https://nsi-aggr-west.es.net/discovery/notifications</callback><filter><include><event>All</event></include></filter></ns0:subscription>');
         $xpath = new \DOMXpath($xml);
         foreach ($xml->getElementsByTagNameNS('http://schemas.ogf.org/nsi/2014/02/discovery/types', 'subscription') as $subXml) {
             $subXml->setAttribute('id', $sub->id);
             $nsaId = $xpath->query(".//requesterId", $subXml);
             $nsaId->item(0)->nodeValue = $sub->nsa;
             $url = $xpath->query(".//callback", $subXml);
             $url->item(0)->nodeValue = $sub->discovery_url;
             return $xml->saveXML();
         }
     } else {
         $subsXml = '';
         foreach (Subscription::find()->all() as $sub) {
             $xml = new \DOMDocument();
             $xml->loadXML('<?xml version="1.0" encoding="UTF-8"?><ns0:subscription xmlns:ns0="http://schemas.ogf.org/nsi/2014/02/discovery/types" id="ea948ede-7f7b-4e36-b2ef-e235a235c88e" href="" version="2015-07-08T15:36:33.075-03:00"><requesterId>urn:ogf:network:es.net:2013:nsa:nsi-aggr-west</requesterId><callback>https://nsi-aggr-west.es.net/discovery/notifications</callback><filter><include><event>All</event></include></filter></ns0:subscription>');
             $xpath = new \DOMXpath($xml);
             foreach ($xml->getElementsByTagNameNS('http://schemas.ogf.org/nsi/2014/02/discovery/types', 'subscription') as $subXml) {
                 $subXml->setAttribute('id', $sub->id);
                 $nsaId = $xpath->query(".//requesterId", $subXml);
                 $nsaId->item(0)->nodeValue = $sub->nsa;
                 $url = $xpath->query(".//callback", $subXml);
                 $url->item(0)->nodeValue = $sub->discovery_url;
                 $subsXml = $subsXml . $xml->saveHTML();
             }
         }
         return '<?xml version="1.0" encoding="UTF-8"?><ns0:subscriptions xmlns:ns0="http://schemas.ogf.org/nsi/2014/02/discovery/types">' . $subsXml . '</ns0:subscriptions>';
     }
 }