GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Oni-zerone/PunkAPI: A wrapper around PunkAPI v2 by @samjbmason

BranchesTags
Open more actions menu

Latest commit

 

History

102 Commits
102 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/ISSUE_TEMPLATE
.github/ISSUE_TEMPLATE
 
 
Example
Example
 
 
PunkAPI
PunkAPI
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Gemfile
Gemfile
 
 
LICENSE
LICENSE
 
 
PunkAPI.podspec
PunkAPI.podspec
 
 
README.md
README.md
 
 
_Pods.xcodeproj
_Pods.xcodeproj
 
 

Repository files navigation

PunkAPI

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.

About

A wrapper around PunkAPI v2 by @samjbmason

Topics

api-clientbeerbrewdog-punk-apiiospunkapiswift

Resources

Readme
MIT license

Contributing

Contributing
Activity

Stars

1 star

Watchers

0 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.