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); }
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')); } }
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>'; } }