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.
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.
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.
Go to our API Explorer
Additional information about parameters in this guide
Replace {eventId} by your current id; for example 30, and {username} for your current username for example Gary.
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"
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"}'
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}'
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"
Replace {placeID} for your id for example 33, also replace {username} for your username for example Tim.
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"
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"}'
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"}'
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"
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
}
})
Soon. Working on it :)
Java 1.7 or later
Add this dependency to your project's POM:
<dependency>
<groupId>com.druidalabs</groupId>
<artifactId>havefunhub-api</artifactId>
<version>3.0.0</version>
</dependency>
Please see the Java API docs for the most up-to-date documentation.
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();
}
}
}