Module: ADNReborn::API

Defined in:
lib/adn-reborn/api.rb,
lib/adn-reborn/api/file.rb,
lib/adn-reborn/api/post.rb,
lib/adn-reborn/api/user.rb,
lib/adn-reborn/api/token.rb,
lib/adn-reborn/api/filter.rb,
lib/adn-reborn/api/stream.rb,
lib/adn-reborn/api/message.rb,
lib/adn-reborn/api/response.rb,
lib/adn-reborn/api/subscription.rb

Defined Under Namespace

Modules: File, Filter, Message, Post, Stream, Subscription, Token, User Classes: Response

Constant Summary collapse

Error =
Class.new StandardError

Class Method Summary collapse

Class Method Details

.construct_request(verb, url) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/adn-reborn/api.rb', line 21

def construct_request(verb, url)
  http_method = case verb
    when :post then Net::HTTP::Post
    when :put then Net::HTTP::Put
    when :patch then Net::HTTP::Patch
    when :delete then Net::HTTP::Delete
    else Net::HTTP::Get
  end
  http_method.new(url)
end

.delete(url) ⇒ Object



64
65
66
67
# File 'lib/adn-reborn/api.rb', line 64

def delete(url)
  request = construct_request(:delete, url)
  perform(request)
end

.get(url, params = nil) ⇒ Object



32
33
34
35
36
# File 'lib/adn-reborn/api.rb', line 32

def get(url, params = nil)
  url = params.nil? ? url : [url, URI.encode_www_form(params)].join("?")
  request = construct_request(:get, url)
  perform(request)
end

.patch(url, params = nil) ⇒ Object



57
58
59
60
61
62
# File 'lib/adn-reborn/api.rb', line 57

def patch(url, params = nil)
  request = construct_request(:patch, url)
  request.add_field('Content-Type', 'application/json')
  request.body = params.to_json if params
  perform(request)
end

.perform(request) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/adn-reborn/api.rb', line 12

def perform(request)
  request.add_field("Authorization", "Bearer #{ADNReborn.token}")
  response = JSON.parse ADNReborn::HTTP.request(request).body

  Response.new(response).tap { |r|
    raise ADNReborn::API::Error, r.error_message if r.has_error?
  }
end

.post(url, params = nil) ⇒ Object



38
39
40
41
42
43
# File 'lib/adn-reborn/api.rb', line 38

def post(url, params = nil)
  request = construct_request(:post, url)
  request.add_field('Content-Type', 'application/json')
  request.body = params.to_json if params
  perform(request)
end

.post_multipart(url, *http_args) ⇒ Object



45
46
47
48
# File 'lib/adn-reborn/api.rb', line 45

def post_multipart(url, *http_args)
  request = Net::HTTP::Post::Multipart.new(url, *http_args)
  perform(request)
end

.put(url, params = nil) ⇒ Object



50
51
52
53
54
55
# File 'lib/adn-reborn/api.rb', line 50

def put(url, params = nil)
  request = construct_request(:put, url)
  request.add_field('Content-Type', 'application/json')
  request.body = params.to_json if params
  perform(request)
end