Skip to content

larowka/kudago-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP KudaGo API

PHP wrapper for KudaGo API base on Guzzle Http Client

Requirements

  • PHP 7.3 or later

Installation

Via Composer:

$ composer require larowka/kudago-api

or you can update your composer.json file:

{
    "require": {
      "larowka/kudago-api": "0.2.*"
    }
}

Laravel

Lumen

Usage examples

Create API Wrapper instance

use Larowka\KudaGo\Api;

$kudago = new Api();

Traits

Some entities have common traits for sorting, details, filter by time or coordinates, and paginator. Use IDE annotations or official documentation for allowed arguments.

$events = $kudago->events();

// Sorting
$events->orderBy('id', '-publication_date') // Order by id ASC and by publication_date DESC
        ->get();

// Details
$events->expand('images', 'dates') // Get detailed information of images and dates in result
        ->get();

// Filter by time
$events->before('2022', '!Y')    // Get results between 2021-10-12 and 2022 year
        ->after('2021-10-12', 'Y-m-d')
        ->get();

// Filter by coordinates
$events->inRadius(59.9, 30.3, 10000) // Include only events in radius 10000 meters around point [latitude, longitude]
        ->get();

// Paginator
$events->page(3) // Page number
        ->pageSize(35) // Items on page
        ->get();
        
// Concrete object
$events->find(161043); // find by event ID

API Endpoints

Object categories (doc)
$categories = $kudago->categories();

$eventCategories = $categories->events()->get();
$placeCategories = $categories->places()->get();
Locations (doc)

traits: Sort

$locations = $kudago->locations();

$cities = $locations->orderBy('timezone')->get();
$city = $locations->find('spb');
Search (doc)

traits: Paginator, Details, CoordsFilter

$kudago->search()
        ->query('art') // Query string
        ->type('event') // Include only specific type: news, event, place, list
        ->expand('place', 'dates')
        ->get();
Events (doc)

traits: Paginator, Sort, Details, TimeFilter, CoordsFilter

$kudago->events()
        ->after('2021-10-11')
        ->orderBy('-publication_date')
        ->page(5)
        ->pageSize(50)
        ->get();
Events of the day (doc)
$kudago->eventsOfTheDay()->get();
News (doc)
$kudago->news()->get();
Lists (doc)

traits: Paginator, Sort, Details

$kudago->lists()->get();
Places (doc)

traits: Paginator, Sort, Details, TimeFilter, CoordsFilter

$kudago->places()
        ->ids(157,33338) // Include only specific places by placeID
        ->get();
Movies (doc)

traits: Paginator, Sort, Details, TimeFilter

$kudago->movies()->get();
Showings (doc)

traits: Paginator, Sort, Details, TimeFilter

$kudago->showings()
        ->inPlace(19757) // Include only showings in specific place
        ->get();
Movie Showings (doc)

traits: Paginator, Sort, Details, TimeFilter

$kudago->movieShowings(3315)
        ->inPlace(19757) // Include only showings in specific place
        ->get();
Agents (doc)
$kudago->agents()->get();
Agent Roles (doc)
$kudago->agentRoles()->get();