Eventbrite API wrapper for Laravel.
Background
One of my projects required a good Laravel Eventbrite Api wrapper, but I didn’t like quality of any of existing imlementations, so I decided to create my own implementation.
Eventbrite Laravel
GitHub repository - Eventbrite Laravel
This package provides a simple interface to Eventbite’s (awesome) API. Organize Eventbrite integration with expressive, clean PHP.
Installation
Laravel Eventbrite uses composer to make installation a breeze.
Install via composer
composer require marat555/eventbrite
Register service provider
Add the Laravel Eventbrite service provider to your config/app.php
file in the providers key
'providers' => [
// ... other providers
Marat555\Eventbrite\EventbriteServiceProvider::class,
]
Eventbrite facade alias
Then add the Eventbrite
facade to your aliases
key: ‘Eventbrite’ => Marat555\Eventbrite\Facades\Eventbrite::class.
Configuration
Configuration can be done via your .env
file.
EVENTBRITE_BASE_URL=https://www.eventbriteapi.com/v3/
EVENTBRITE_TOKEN=xxxxxxx
You may also publish the config file to
config/eventbrite.pzhp
for editing:php artisan vendor:publish --provider="Marat555\Eventbrite\EventbriteServiceProvider"
Usage
Laravel Eventbrite is incredibly intuitive to use.
Introduction
Already configured everything and just want to see it in action? Take a look at the example code below.
<?php
namespace App\Http\Controllers;
use Eventbrite;
use App\Http\Controllers\Controller;
class EventbriteController extends Controller
{
public function getEvent(int $eventId)
{
return response()->json(Eventbrite::event()->get($eventId));
}
}
Event
Retrieve an Event by Event ID
Eventbrite::event()->get($eventId);
Create a new Event
Eventbrite::event()->create(int $organizerId, array $event);
Update Event by Event ID
Eventbrite::event()->update(int $eventId, array $event);
List Events by Venue ID
Eventbrite::event()->list('venue', int $venueId, array $filterParams = []);
List Events by Organization ID
Eventbrite::event()->list('organization', int $organizationId, array $filterParams = []);
List Events by Event Series ID
Eventbrite::event()->list('series', int $seriesId, array $filterParams = []);
Publish an Event. Returns a boolean indicating the success or failure of the publish action.
Eventbrite::event()->publish(int $eventId);
Unpublish an Event. Returns a boolean indicating the success or failure of the unpublish action.
Eventbrite::event()->unpublish(int $eventId);
Cancel an Event. Returns a boolean indicating the success or failure of the cancel action.
Eventbrite::event()->cancel(int $eventId);
Delete an Event. Returns a boolean indicating the success or failure of the delete action.
Eventbrite::event()->delete(int $eventId);
Category
Retrieve a Category by Category ID
Eventbrite::category()->get(int $categoryId);
List of Categories
Eventbrite::category()->all(int $categoryId);
Subcategory
Retrieve a Subcategory by Subcategory ID
Eventbrite::subcategory()->get(int $subcategoryId);
List of Subcategories
Eventbrite::subcategory()->all(int $categoryId);
Display Settings
Retrieve the Display Settings by Event ID
Eventbrite::displaySettings()->get(int $eventId);
Update Display Settings
Eventbrite::displaySettings()->update(int $eventId, array $displaySettings);
User
Retrieve a User by User ID
Eventbrite::user()->get($userId);
Retrieve your User
Eventbrite::user()->me();
Venue
Retrieve a Venue by Venue ID
Eventbrite::venue()->get($venueId);
Create new Venue
Eventbrite::venue()->create(int $organizerId, array $venue);
Update a Venue
Eventbrite::venue()->update(int $venueId, array $venue);
List Venues by Organization ID
Eventbrite::venue()->list(int $organizationId);
Format
Retrieve a Format by Format ID
Eventbrite::format->get($formatId);
List Formats
Eventbrite::format->list();
Media
Retrieve Media by Media ID
Eventbrite::media->get($formatId);
Create a Media Upload
Eventbrite::media->createUpload(array $mediaUpload);
Retrieve a Media Upload
Eventbrite::media->createUpload(array $mediaUploadType);
Query Building
The wrapper also provides a convenient way for you to build fairly elaborate Eventbrite API requests. The following methods return the instance so you can chain more constraints onto the request as required.
Expansions
Eventbrite has many models that refer to each other, and often you’ll want to fetch related data along with the primary model you’re querying - for example, you’ll want to fetch an event along with organizer.
Eventbrite::event()->expand('organizer')->get($eventId);
Handling Exceptions
The Eventbrite API will return errors as required. I am still looking for a nicer way to handle these exceptions… For the time being, simply wrap your call in a try/catch block.
try {
Eventbrite::event()->publish(1234);
} catch(EventbriteErrorException $e) {
$response = $e->getResponse();
$responseBodyAsString = $response->getBody()->getContents();
echo $responseBodyAsString;
}
Implemented Eventbrite API Endpoints
- Event
- get
- create
- update
- list
- byEventSeriesId
- byVenueId
- byOrganizationId
- publish
- unpublish
- cancel
- delete
- Category
- get
- list
- Subcategory
- get
- list
- Display Settings
- getByEventId
- update
- User
- get
- me
- Venue
- get
- update
- list
- Format
- get
- list
- Media
- get
- createUpload
- retrieveUpload
The Eventbrite API is extensive. I’ve attempted to cover all of the key endpoints but there are endpoints that are currently unimplemented.
License
The MIT License (MIT). Please see License File in GitHub Repository for more information.
Marat Badykov
Full-stack web developer. I enjoy writing Php, Java, and Js.