Latest 0.2.0
Homepage https://github.com/Oni-zerone/PunkAPI
License MIT
Platforms ios 10.0
Authors

Version
Build Status
codebeat badge
Coverage Status
Language
Platform
License

This is a wrapper around PunkAPI v2 by @samjbmason you can find more informations about those APIs at https://punkapi.com/

Have you ever wanted to search through Brewdog’s expansive back catalogue of beer in a programmatic way? Maybe build a tool that pairs beer with food, or search beers with an abv of more than 4%? Well now your prayers have been answered!

The Punk API takes Brewdog’s DIY Dog and turns it into a searchable, filterable API that’s completely free and open source.

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Usage

let punkApi = PunkAPI(configuration: .default)

punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in  }
punkApi.get(BeerRequest(id: 1), queue: .main) { beersResult in  }
punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in  }
punkApi.get(BeersRequest(filter: [
    .abv(condition: .more, value: 3),
    .beerName(value: "Punk")]), queue: .main) { beersResult in  }

API

RandomBeerRequest()

Get a random beer request

punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in  }

BeerRequest(id: 1)

Get a beer from given id

punkApi.get(BeerRequest(id: 1), queue: .main) { beersResult in  }

BeersRequest(filter: [BeersRequest.Parameter.beerName(value: "Punk IPA")])

Get beers that match the passed in options, if no options are passed in it will return all beers in ascending order of id.

punkApi.get(RandomBeerRequest(), queue: .main) { beersResult in  }

Options

BeersRequest.Parameter.abv(condition: .more, value: 3)

Condition: Condition
Value: Float
Will return beers with an abv greater or lower than the passed in value.

BeersRequest.Parameter.ibu(condition: .more, value: 3)

Condition: Condition
Value: Float
Will return beers with an ibu greater or lower than the passed in value.

BeersRequest.Parameter.ebc(condition: .more, value: 3)

Condition: Condition
Value: Float
Will return beers with an ebc greater or lower than the passed in value.

BeersRequest.Parameter.beerName(value: "Punk")

Value: String
Will return beers matching the string passed in (we use fuzzy matching to find the names).

BeersRequest.Parameter.yeast(value: "American Ale")

Value: String
Will return beers which match the name of the yeast of the string passed in (we use fuzzy matching to find the yeast names).

BeersRequest.Parameter.brewed(condition: .more, value: 3)

Condition: Condition
Value: Date
Will return beers brewed before or after the passed in date.

BeersRequest.Parameter.hops(value: "Ahtanum")

Value: String
Will return beers which match the name of the hops of the string passed in (we use fuzzy matching to find the hop names).

BeersRequest.Parameter.malt(value: "Extra Pale")

Value: String
Will return beers which match the name of the malt of the string passed in (we use fuzzy matching to find the hop names).

BeersRequest.Parameter.food(value: "Cheesecake")

Value: String
Will return beers which match food pairings of the string passed in (we use fuzzy matching to find the foods).

BeersRequest.Parameter.ids(value: [1, 2, 4, 6])

Value: Array<Int>
Will return beers which match the given ids.

Installation

PunkAPI is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod 'PunkAPI'

Author

@Oni_zerone, [email protected]

License

PunkAPI is available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "PunkAPI",
    "version": "0.2.0",
    "summary": "A little swift wrapper for PunkAPI by @samjbmason",
    "swift_version": "4.2",
    "description": ""Have you ever wanted to search through Brewdog's expansive back catalogue of beer in a programmatic way? Maybe build a tool that pairs beer with food, or search beers with an abv of more than 4%? Well now your prayers have been answered!"",
    "homepage": "https://github.com/Oni-zerone/PunkAPI",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Andrea Altea": "[email protected]"
    },
    "source": {
        "git": "https://github.com/Oni-zerone/PunkAPI.git",
        "tag": "0.2.0"
    },
    "social_media_url": "https://twitter.com/Oni_zerone",
    "platforms": {
        "ios": "10.0"
    },
    "default_subspecs": "API",
    "subspecs": [
        {
            "name": "API",
            "source_files": "PunkAPI/Classes/**/*"
        },
        {
            "name": "PromiseKit",
            "source_files": "PunkAPI/PromiseKit/Classes/**/*",
            "dependencies": {
                "PunkAPI/API": [],
                "PromiseKit": [
                    "~> 6.8"
                ]
            }
        }
    ]
}

Pin It on Pinterest

Share This