Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
kjohnson committed Feb 21, 2024
1 parent cfceb0b commit 431364e
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 0 deletions.
85 changes: 85 additions & 0 deletions src/EventTickets/Routes/CreateEvent.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?php

namespace Give\EventTickets\Routes;

use Give\API\RestRoute;
use Give\EventTickets\Models\Event;
use WP_REST_Request;
use WP_REST_Response;

/**
* @unreleased
*/
class CreateEvent implements RestRoute
{
/** @var string */
protected $endpoint = 'events-tickets/events';

/**
* @inheritDoc
*/
public function registerRoute()
{
register_rest_route(
'give-api/v2',
$this->endpoint,
[
[
'methods' => 'POST',
'callback' => [$this, 'handleRequest'],
'permission_callback' => function () {
return current_user_can( 'manage_options' );
}
],
'args' => [
'title' => [
'type' => 'string',
'required' => true,
'sanitize_callback' => 'sanitize_text_field',
],
'description' => [
'type' => 'string',
'required' => false,
'sanitize_callback' => 'sanitize_text_field',
],
'startDateTime' => [
'type' => 'string',
'format' => 'date-time', // @link https://datatracker.ietf.org/doc/html/rfc3339#section-5.8
'required' => true,
'validate_callback' => 'rest_parse_date',
'sanitize_callback' => function ($value) {
return new \DateTime($value);
},
],
'endDateTime' => [
'type' => 'string',
'format' => 'date-time', // @link https://datatracker.ietf.org/doc/html/rfc3339#section-5.8
'required' => false,
'validate_callback' => 'rest_parse_date',
'sanitize_callback' => function ($value) {
return new \DateTime($value);
},
],
],
]
);
}

/**
* @unreleased
*
* @return WP_REST_Response
*
*/
public function handleRequest(WP_REST_Request $request)
{
$event = Event::create([
'title' => $request->get_param('title'),
'description' => $request->get_param('description'),
'startDateTime' => $request->get_param('startDateTime'),
'endDateTime' => $request->get_param('endDateTime'),
]);

return new WP_REST_Response($event->toArray(), 201);
}
}
1 change: 1 addition & 0 deletions src/EventTickets/ServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ public function boot(): void
4
);

Hooks::addAction('rest_api_init', Routes\CreateEvent::class, 'registerRoute');
Hooks::addAction('rest_api_init', Routes\GetEvents::class, 'registerRoute');
Hooks::addAction('rest_api_init', Routes\GetEventsListTable::class, 'registerRoute');
Hooks::addAction('rest_api_init', Routes\GetEventTickets::class, 'registerRoute');
Expand Down

0 comments on commit 431364e

Please sign in to comment.