- events.php
- create event on inital load, update event afterwards. ?eventId=EVENT_ID to modify specific event.
- people.php
- create person on initial load, update or delete person afterwards. ?personId=PERSON_ID to modify specific person.
<?php | |
require('client/Client.php'); | |
require('client/GrantType/IGrantType.php'); | |
require('client/GrantType/AuthorizationCode.php'); | |
$message = ''; | |
$eventId = isset($_GET['eventId']) ? $_GET['eventId'] : false; | |
class Event { | |
public $info; | |
public function __construct($eventId = -1) { | |
$this->eventId = $eventId; | |
$this->clientId = ''; | |
$this->clientSecret = ''; | |
$this->accessToken = ''; | |
$this->client = new OAuth2\Client($this->clientId, $this->clientSecret); | |
$this->baseApiUrl = 'https://vpgndp.nationbuilder.com'; | |
$this->info = $this->client->fetch($this->baseApiUrl . '/api/v1/sites/vpgndp/pages/events/' . $eventId . '?access_token=' . $this->accessToken); | |
if ($this->info['code'] === 404) { | |
$this->info = null; | |
} else { | |
$this->info = $this->info['result']; | |
} | |
} | |
public function create($data) { | |
$newEvent = array( | |
'event' => array( | |
'name' => $data['name'], | |
'site_slug' => 'vpgndp', | |
'title' => $data['title'], | |
'headline' => $data['headline'], | |
'start_time' => date(DateTime::ISO8601), | |
'end_time' => date(DateTime::ISO8601, strtotime('+7 days')), | |
'status' => 'unlisted') | |
); | |
$response = $this->client->fetch($this->baseApiUrl . '/api/v1/sites/vpgndp/pages/events' . '?access_token=' . $this->accessToken, json_encode($newEvent), 'POST', array('Content-type' => 'application/json', 'Accept' => 'application/json')); | |
if ($response["code"] !== 200 && $response["code"] !== 201) { | |
print_r($response); | |
die('Could not create event'); | |
} | |
return $response[result]; | |
} | |
public function edit($data) { | |
$newEvent = array( | |
'event' => array( | |
'name' => $data['name'], | |
'site_slug' => 'vpgndp', | |
'title' => $data['title'], | |
'headline' => $data['headline'], | |
'start_time' => date(DateTime::ISO8601), | |
'end_time' => date(DateTime::ISO8601, strtotime('+7 days')), | |
'status' => 'unlisted') | |
); | |
$response = $this->client->fetch($this->baseApiUrl . '/api/v1/sites/vpgndp/pages/events/' . $this->eventId . '?access_token=' . $this->accessToken, json_encode($newEvent), 'PUT', array('Content-type' => 'application/json', 'Accept' => 'application/json')); | |
if ($response["code"] !== 200 && $response["code"] !== 201) { | |
print_r($response); | |
die('Could not edit event'); | |
} | |
return $response[result]; | |
} | |
} | |
$postData = isset($_POST) ? $_POST : false; | |
if ($postData) { | |
if (isset($postData['create'])) { | |
$newEvent = new Event(); | |
$response = $newEvent->create($postData); | |
if (isset($response[event][id])) { | |
$eventId = $response[event][id]; | |
$message = 'Event created'; | |
} | |
} else if (isset($postData['update'])) { | |
$eventId = $postData[id]; | |
$event = new Event($postData[id]); | |
$response = $event->edit($postData); | |
$message = 'Event updated'; | |
} | |
} | |
print_r('<pre>'); | |
if ($eventId) { | |
$event = new Event($eventId); | |
if (!$event->info) { | |
die("Could not find event id $eventId to edit."); | |
} | |
} | |
?> | |
<div style="border: 1px solid black;"><?= $message; ?></div> | |
<?php if ($event): ?> | |
<h1>Edit Event</h1> | |
<?php $mode = 'update'; ?> | |
<?php else: ?> | |
<h1>Create New Event</h1> | |
<?php $mode = 'create'; ?> | |
<?php endif ?> | |
<form action="events.php" method="post"> | |
<input type="hidden" name="id" value="<?= $eventId ?>" /> | |
Event Name: <input type="text" name="name" value="<?= $event->info["event"]["name"]; ?>" /> | |
Title: <input type="text" name="title" value="<?= $event->info["event"]["title"]; ?>" /> | |
Headline: <input type="text" name="headline" value="<?= $event->info["event"]["headline"]; ?>" /> | |
<input type="submit" name="<?= $mode; ?>" value="<?= $mode ?>" /> | |
</form> |
<?php | |
require('client/Client.php'); | |
require('client/GrantType/IGrantType.php'); | |
require('client/GrantType/AuthorizationCode.php'); | |
$message = ''; | |
$personId = isset($_GET['personId']) ? $_GET['personId'] : false; | |
class Person { | |
public $info; | |
public function __construct($personId = -1) { | |
$this->personId = $personId; | |
$this->clientId = ''; | |
$this->clientSecret = ''; | |
$this->accessToken = ''; | |
$this->client = new OAuth2\Client($this->clientId, $this->clientSecret); | |
$this->baseApiUrl = 'https://vpgndp.nationbuilder.com'; | |
$this->info = $this->client->fetch($this->baseApiUrl . '/api/v1/people/' . $personId . '?access_token=' . $this->accessToken); | |
if ($this->info['code'] === 404) { | |
$this->info = null; | |
} else { | |
$this->info = $this->info['result']; | |
} | |
} | |
public function create($data) { | |
$newPerson = array( | |
'person' => array( | |
'first_name' => $data['first_name'], | |
'last_name' => $data['last_name'], | |
'email' => $data['email']) | |
); | |
$response = $this->client->fetch($this->baseApiUrl . '/api/v1/people' . '?access_token=' . $this->accessToken, json_encode($newPerson), 'POST', array('Content-type' => 'application/json', 'Accept' => 'application/json')); | |
if ($response["code"] !== 200 && $response["code"] !== 201) { | |
print_r($response); | |
die('Could not create person'); | |
} | |
return $response[result]; | |
} | |
public function edit($data) { | |
$newPerson = array( | |
'person' => array( | |
'first_name' => $data['first_name'], | |
'last_name' => $data['last_name'], | |
'email' => $data['email']) | |
); | |
$response = $this->client->fetch($this->baseApiUrl . '/api/v1/people/' . $this->personId . '?access_token=' . $this->accessToken, json_encode($newPerson), 'PUT', array('Content-type' => 'application/json', 'Accept' => 'application/json')); | |
if ($response["code"] !== 200 && $response["code"] !== 201) { | |
print_r($response); | |
die('Could not edit person'); | |
} | |
return $response[result]; | |
} | |
public function delete() { | |
$response = $this->client->fetch($this->baseApiUrl . '/api/v1/people/' . $this->personId . '?access_token=' . $this->accessToken, null, 'DELETE', array('Content-type' => 'application/json', 'Accept' => 'application/json')); | |
if ($response["code"] !== 204) { | |
print_r($response); | |
die('Could not delete person'); | |
} | |
return $response[result]; | |
} | |
} | |
$postData = isset($_POST) ? $_POST : false; | |
if ($postData) { | |
if (isset($postData['create'])) { | |
$newPerson = new Person(); | |
$response = $newPerson->create($postData); | |
if (isset($response[person][id])) { | |
$personId = $response[person][id]; | |
$message = 'Person created'; | |
} | |
} else if (isset($postData['update'])) { | |
$personId = $postData[id]; | |
$person = new Person($personId); | |
$response = $person->edit($postData); | |
$message = 'Person updated'; | |
} else if (isset($postData['delete'])) { | |
$person = new Person ($postData[id]); | |
$resposne = $person->delete(); | |
$message = 'Person deleted'; | |
$personId = false; | |
$person = false; | |
} | |
} | |
print_r('<pre>'); | |
if ($personId) { | |
$person = new Person($personId); | |
if (!$person->info) { | |
die("Could not find person id $personId to edit."); | |
} | |
} | |
?> | |
<div style="border: 1px solid black;"><?= $message; ?></div> | |
<?php if ($person): ?> | |
<h1>Edit Person</h1> | |
<?php $mode = 'update'; ?> | |
<?php else: ?> | |
<h1>Create New Person</h1> | |
<?php $mode = 'create'; ?> | |
<?php endif ?> | |
<form action="people.php" method="post"> | |
<input type="hidden" name="id" value="<?= $personId ?>" /> | |
First Name: <input type="text" name="first_name" value="<?= $person->info["person"]["first_name"]; ?>" /> | |
Last Name: <input type="text" name="last_name" value="<?= $person->info["person"]["last_name"]; ?>" /> | |
Email: <input type="text" name="email" value="<?= $person->info["person"]["email"]; ?>" /> | |
<input type="submit" name="<?= $mode; ?>" value="<?= $mode ?>" /> | |
<?php if ($mode === 'update'): ?> | |
<input type="submit" name="delete" value="delete person" /> | |
<?php endif; ?> | |
</form> |