Welcome
This guide is oriented to developers who want to start integrating against our core API in our testing environment.
We expose our core resources as RESTful API. All responses are serialised in JSON format.
Generally spaking GET verbs dont require authentication. On the other hand, any POST, PUT or DELETE will require the request to be authenticated via JWT token.
Getting started
Events always have a Place associated with it. We support queries on both. Places can have Promotions. Events, on the other hand, can have both Promotions and Tickets. Vouchers can be claimed against Promotions.
Sign UP
To start managing your Events, Places, Tickets, Promotions and Vouchers you need to Create an account
Then Login to Console to generate a token to use in your requests when needed.
Documentation
Go to our API Explorer
Additional information about parameters in this guide
Events
Replace {eventId} by your current id; for example 30, and {username} for your current username for example Gary.
GET
The below code will show events that are happening at any time (string):
curl -XGET "https://test.havefunhub.com/api/events/query?when=any"
The below code will show you all events:
curl -XGET "https://test.havefunhub.com/api/events/query"
The below code will show you events you made (string):
curl -XGET "https://test.havefunhub.com/api/events/query?user={username}"
The below code will show all events wth promos linked to them (boolean):
curl -XGET "https://test.havefunhub.com/api/users/query?hasPromo=true"
The below code will show you all events without promo linked to them (boolean):
curl -XGET "https://test.havefunhub.com/api/users/query?hasPromo=false"
The below code will show you all events with a certain keyword in them (string):
curl -XGET "https://test.havefunhub.com/api/events/query?q=party"
The below code will show you events within a certain distance (km) from a chosen long and lat position (decimal):
curl -XGET "https://test.havefunhub.com/api/events/query?Lat=51.5487&Long=67.243456&Dist=10"
Use the below code to find tickets linked to a certain event:
curl -XGET "https://test.havefunhub.com/api/event/{eventId}/tickets"
Use the below code to find a promo linked to an event:
curl -XGET "https://test.havefunhub.com/api/event/{eventID}/promos"
POST
The code below wll create an event. The -H parameter is passing X-AUTH-TOKEN as a header. Reaplce Token_to_be_replaced by your actual token. Check this guide to generate yours
curl -XPOST -v -H "X-AUTH-TOKEN:Token_to_be_replaced" "https://test.havefunhub.com/services/events" -H "Content-Type: application/json" -d '{"placeId":{placeID},"start":"2018-08-09T10:00:00+0000","description":"fun for all","phone":"01373 813 721","name":"enter_name_of_event","category": "Disco", "end":"2018-08-09T23:00:00+0000"}'
PUT
The below code will edit an event MAKE SURE YOU ENTER A TOKEN (strings:
curl -XPUT -v -H "X-AUTH-TOKEN:Enter_token_here" "https://test.havefunhub.com/services/event/{eventID}" -H "Content-Type: application/json" -d '{"hasPromo":true,"placeId":Info_to_be_changed,"start":"2018-08-09T10:00:00+0000","description":"Annual village get together with drinks and music\n","userName":"Your_username","funIndicator":0,"phone":"Info_to_be_changed","name":"Info_to_be_changed","end":"2018-08-09T23:00:00+0000","place":{"country":"United Kingdom","address":"Info_to_be_changed","city":"Info_to_be_changed","hasPromo":false,"latitude":51.508530,"placeId":{placeID},"active":true,"description":"Mells barn","priceIndicator":0,"userName":"Your_username","phone":"Info_to_be_changed","name":"Info_to_be_changed","category":" #Disco","longitude": -0.076132},"category":" #Disco","checkins":0}'
DELETE
The below code will delete an event MAKE SURE YOU ENTER A TOKEN:
curl -XDELETE -v -H "X-AUTH-TOKEN:Your_token_here" "https://test.havefunhub.com/services/event/{eventID}" -H "Content-Type: application/json"
Places
Replace {placeID} for your id for example 33, also replace {username} for your username for example Tim.
GET
The below code will show you all places:
curl -XGET "https://test.havefunhub.com/api/places/query"
The below code will find you places you made (string):
curl -XGET "https://test.havefunhub.com/api/places/query?user={username}"
The below code will find you all places with promos linked to them (boolean):
curl -XGET "https://test.havefunhub.com/api/places/query?hasPromo=true"
The below code will find you all locations with a chosen keyword (string):
curl -XGET "https://test.havefunhub.com/api/places/query?q=town"
The below code will find you any locations within a give dstance(km) around a point of long and lat (decimals):
curl -XGET "https://test.havefunhub.com/api/places/query?Lat=23.234534&Long=-21.24435&Dist=1000"
Use the below code to find a promo linked to a place:
curl -XGET "https://test.havefunhub.com/api/place/{placeID}/promos"
POST
The below code will create a place MAKE SURE YOU ENTER A TOKEN (strings):
curl -XPOST -v -H "X-AUTH-TOKEN: token_to_be_replaced" "https://test.havefunhub.com/services/places" -H "Content-Type: application/json" -d '{"name":"Info_to_be_replaced","description":"Info_to_be_replaced","category":"Info_to_be_replaced","priceIndicator":0,"address":"Info_to_be_replaced"}’,"address2":"Info_to_be_replaced","postCode":"Info_to_be_replaced","city":"Info_to_be_replaced","latitude":51.508530"longitude":-0.076132"country":"England","Phone": "Info_to_be_replaced"}'
PUT
The below code will edit a place MAKE SURE YOU ENTER A TOKEN (strings):
curl -XPUT -v -H "X-AUTH-TOKEN:Insert_token_here" "https://test.havefunhub.com/services/place/{placeID}" -H "Content-Type: application/json" -d '{"name":"Info_to_be_changed","description":"Info_to_be_changed","category":" #Bar","priceIndicator":0,"address":"Info_to_be_changed","address2":"Info_to_be_changed","postCode":"Info_to_be_changed","city":"Info_to_be_changed","latitude":51.508530,"longitude":-0.076132,"active":true,"hasPromo":false,"country":"Info_to_be_changed","phone":null,"userName":"Your_username"}'
DELETE
The below code will delete a place MAKE SURE YOU ENTER A TOKEN (integer):
curl -XDELETE -v -H "X-AUTH-TOKEN: " "https://test.havefunhub.com/services/place/{placeID}" -H "Content-Type: application/json"
javascript
Check our API explorer for the available end points. You can consume services from your any client.
$.ajax({
url: 'https://test.havefunhub.com/api/events/query',
dataType: "json",
...
success: function (data) {
//do something with Events' JSON result
}
})
Java API
Soon. Working on it :)
Requirements
Java 1.7 or later
Installation
Maven users
Add this dependency to your project's POM:
<dependency>
<groupId>com.druidalabs</groupId>
<artifactId>havefunhub-api</artifactId>
<version>3.0.0</version>
</dependency>
Documentation
Please see the Java API docs for the most up-to-date documentation.
Usage
HaveFunHubExample.java
import java.util.HashMap;
import java.util.Map;
public class HaveFunHubExample {
public static void main(String[] args) {
RequestOptions requestOptions = (new RequestOptionsBuilder()).setApiKey("YOUR-SECRET-KEY").build();
Map<String, Object> eventsMap = new HashMap<String, Object>();
eventsMap.put("Lat", 34.6037);
eventsMap.put("Long", 58.3816);
eventsMap.put("when", "now");
try {
ArrayList<Event> events = Event.query(eventsMap, requestOptions);
System.out.println(events);
} catch (Exception e) {
e.printStackTrace();
}
}
}