summaryrefslogtreecommitdiff
path: root/src/twitch
diff options
context:
space:
mode:
authorJonathan B <greenbigfrog@gmail.com>2019-08-14 21:39:18 +0200
committerJonathan B <greenbigfrog@gmail.com>2019-08-14 21:39:18 +0200
commite611e739d7177fbe5ee404e8b77e00bb584721cc (patch)
treebfad16f083ebe289fd7fc2e9dae842150e61fa98 /src/twitch
parent99b3d7287bd0ac36ee82129ad38bd88c5b5af625 (diff)
downloadtwitcr-e611e739d7177fbe5ee404e8b77e00bb584721cc.tar.gz
twitcr-e611e739d7177fbe5ee404e8b77e00bb584721cc.zip
Add require
Diffstat (limited to 'src/twitch')
-rw-r--r--src/twitch/client.cr27
-rw-r--r--src/twitch/mappings/converters.cr3
-rw-r--r--src/twitch/mappings/user.cr21
-rw-r--r--src/twitch/rest.cr50
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