diff options
author | Jonathan B <greenbigfrog@gmail.com> | 2019-08-14 21:39:18 +0200 |
---|---|---|
committer | Jonathan B <greenbigfrog@gmail.com> | 2019-08-14 21:39:18 +0200 |
commit | e611e739d7177fbe5ee404e8b77e00bb584721cc (patch) | |
tree | bfad16f083ebe289fd7fc2e9dae842150e61fa98 /src/twitch | |
parent | 99b3d7287bd0ac36ee82129ad38bd88c5b5af625 (diff) | |
download | twitcr-e611e739d7177fbe5ee404e8b77e00bb584721cc.tar.gz twitcr-e611e739d7177fbe5ee404e8b77e00bb584721cc.zip |
Add require
Diffstat (limited to 'src/twitch')
-rw-r--r-- | src/twitch/client.cr | 27 | ||||
-rw-r--r-- | src/twitch/mappings/converters.cr | 3 | ||||
-rw-r--r-- | src/twitch/mappings/user.cr | 21 | ||||
-rw-r--r-- | src/twitch/rest.cr | 50 |
4 files changed, 0 insertions, 101 deletions
diff --git a/src/twitch/client.cr b/src/twitch/client.cr deleted file mode 100644 index 8502b90..0000000 --- a/src/twitch/client.cr +++ /dev/null @@ -1,27 +0,0 @@ -require "./rest" -require "./mappings/*" - -module Twitcr::Client - include REST - - getter token : String - getter client_id : String - - def initialize(@token, @client_id) - @token = "Bearer" + @token - end - - def user?(name : String) - true if get_user_by_login(name) - rescue EMPTY_RESULT - false - end - - def user(name : String) - get_user_by_login(name) - end - - def user(id : Int64) - get_user_by_id(id) - end -end diff --git a/src/twitch/mappings/converters.cr b/src/twitch/mappings/converters.cr deleted file mode 100644 index d9b57e9..0000000 --- a/src/twitch/mappings/converters.cr +++ /dev/null @@ -1,3 +0,0 @@ -module Twitcr - TIME_FORMAT = Time::Format.new("%FT%TZ") -end diff --git a/src/twitch/mappings/user.cr b/src/twitch/mappings/user.cr deleted file mode 100644 index 6ddd08b..0000000 --- a/src/twitch/mappings/user.cr +++ /dev/null @@ -1,21 +0,0 @@ -require "./converters" - -module Twitcr - struct UserList - JSON.mapping({data: Array(User)}) - end - - struct User - JSON.mapping({ - id: {type: UInt64, converter: ID::Converter}, - login: String, - display_name: String, - }) - end -end - -module ID::Converter - def self.from_json(value : JSON::PullParser) : UInt64 - UInt64.new(value.read_string) - end -end diff --git a/src/twitch/rest.cr b/src/twitch/rest.cr deleted file mode 100644 index 1de8d6f..0000000 --- a/src/twitch/rest.cr +++ /dev/null @@ -1,50 +0,0 @@ -require "http" -require "json" -require "./mappings/*" - -module Twitcr::REST - # Mixin for interacting with Twitch's REST API - SSL_CONTEXT = OpenSSL::SSL::Context::Client.new - API_BASE = "https://api.twitch.tv/helix" - - EMPTY_RESULT = Exception.new("Empty Result") - - # Executes an HTTP request against the API_BASE url - def request(method : String, route : String, version = "5", headers = HTTP::Headers.new, body : String? = nil) - headers["Authorization"] = @token - headers["Client-ID"] = @client_id - - response = HTTP::Client.exec( - method, - API_BASE + route, - headers, - tls: SSL_CONTEXT - ) - - response.body - end - - def get_user_by_login(login : String) - response = request( - "GET", - "/users?login=" + login - ) - - list = UserList.from_json(response) - raise EMPTY_RESULT if list.data.empty? - - list.data.first - end - - def get_user_by_id(id : Int64) - response = request( - "GET", - "/users?id=" + id.to_s - ) - - list = UserList.from_json(response) - raise EMPTY_RESULT if list.data.empty? - - list.data.first - end -end |