Class: DingBot::Client
- Inherits:
-
Object
- Object
- DingBot::Client
- Includes:
- HTTParty
- Defined in:
- lib/dingbot/client.rb
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
Class Method Summary collapse
-
.decode(response) ⇒ Object
Decodes a JSON response into Ruby object.
-
.parse(body) ⇒ Object
Parse response body.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Client
constructor
Creates a new API.
- #send_markdown(title, text) ⇒ Object
- #send_msg(message) ⇒ Object
- #send_text(content) ⇒ Object
-
#validate(response) ⇒ Object
Checks the response code for common errors.
Constructor Details
#initialize(options = {}) ⇒ Client
Creates a new API.
22 23 24 25 26 27 |
# File 'lib/dingbot/client.rb', line 22 def initialize(={}) = DingBot..merge() (Configuration::VALID_OPTIONS_KEYS).each do |key| send("#{key}=", [key]) if [key] end end |
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
15 16 17 |
# File 'lib/dingbot/client.rb', line 15 def access_token @access_token end |
Class Method Details
.decode(response) ⇒ Object
Decodes a JSON response into Ruby object.
39 40 41 42 43 |
# File 'lib/dingbot/client.rb', line 39 def self.decode(response) JSON.load response rescue JSON::ParserError raise Error::Parsing.new "The response is not a valid JSON" end |
.parse(body) ⇒ Object
Parse response body.
30 31 32 33 34 35 36 |
# File 'lib/dingbot/client.rb', line 30 def self.parse(body) begin decode(body) rescue => e raise Error::Parsing.new "Couldn't parse a response body" end end |
Instance Method Details
#send_markdown(title, text) ⇒ Object
54 55 56 57 |
# File 'lib/dingbot/client.rb', line 54 def send_markdown(title, text) = DingBot::Message::Markdown.new(title, text) send_msg() end |
#send_msg(message) ⇒ Object
45 46 47 |
# File 'lib/dingbot/client.rb', line 45 def send_msg() validate self.class.post(@endpoint, {query: {access_token: @access_token}, body: .to_json}) end |
#send_text(content) ⇒ Object
49 50 51 52 |
# File 'lib/dingbot/client.rb', line 49 def send_text(content) = DingBot::Message::Text.new(content) send_msg() end |
#validate(response) ⇒ Object
Checks the response code for common errors. Returns parsed response for successful requests.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/dingbot/client.rb', line 61 def validate(response) error_klass = case response.code when 400 then Error::BadRequest when 401 then Error:: when 403 then Error::Forbidden when 404 then Error::NotFound when 405 then Error::MethodNotAllowed when 409 then Error::Conflict when 422 then Error::Unprocessable when 500 then Error::InternalServerError when 502 then Error::BadGateway when 503 then Error::ServiceUnavailable end fail error_klass.new(response) if error_klass parsed = response.parsed_response parsed.client = self if parsed.respond_to?(:client=) parsed.parse_headers!(response.headers) if parsed.respond_to?(:parse_headers!) parsed end |