talk_api 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f8163cd465e95413ae824cd1abc7a3d6f2437f0a0b6af3159b95d0c4bb20195
4
- data.tar.gz: a950bab495badd9162d99b9a40193ee88f7defd55c0151d4a9ea400263bc75bb
3
+ metadata.gz: 481d0c159cc909a65f6607790ccebc54bfd162b76664223f5578dd2797b4ad1e
4
+ data.tar.gz: 469f736d710749edbbe32071cb658f5087e72af5c6245833bea7c98034b03494
5
5
  SHA512:
6
- metadata.gz: 835918554d5f846929bfbbc629e50469d380ca3eda566bc12a0472c5cfc2ad51fe22138c6b640d476db347a17d37a82a8d14eed18ddadba86933bb9b7adcb4f8
7
- data.tar.gz: f47db4465c3d1b0312e0b820e9204c2371ff6b0eeee142296921f3d39ca67b482d0e1f0e8d99a599cfc6e723e28b6564bb637e51e18aa6c0be4835a534d8940b
6
+ metadata.gz: 99172dfaf4d6b191bb237d97301fba42f065fd5bbcb8c86366170c8473b485b822e1a4dc376420b9f4a297c31215d1cddad13c669e343578a2f0070b40a1276b
7
+ data.tar.gz: 571871da3d4a8dec932f0e667ce6ad8967950e4e96abdb3e0c273ccfa8af3e2ee75f2738101b201341756aaa8e77a077924dff9ff0ce0d49c1ac7127a7085c19
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'talk_api/version'
4
3
  require 'talk_api/client'
4
+ require 'talk_api/error'
5
5
  require 'talk_api/request'
6
6
  require 'talk_api/response'
7
7
  require 'talk_api/result'
8
+ require 'talk_api/version'
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
5
+ module TalkApi
6
+ # Error class
7
+ class HTTPError < RuntimeError
8
+ end
9
+ end
@@ -1,21 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'httpclient'
4
+ require 'json'
4
5
 
5
6
  module TalkApi
6
7
  # API request class
7
8
  class Request
8
- ENDPOINT_URL = 'https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk'.freeze
9
- USER_AGENT = "#{self} #{VERSION}".freeze
9
+ ENDPOINT_URL = 'https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk'
10
10
  HEADERS = [
11
- ['User-Agent', USER_AGENT]
11
+ ['User-Agent', "#{self}/#{VERSION}"]
12
12
  ].freeze
13
13
 
14
14
  def call(api_key, message)
15
15
  query = message.byteslice(0, 2048).scrub('')
16
- client = HTTPClient.new
17
- response = client.post(ENDPOINT_URL, { apikey: api_key, query: query }, header: HEADERS)
18
- Response.new(response.body)
16
+ begin
17
+ client = HTTPClient.new
18
+ response = client.post(ENDPOINT_URL, { apikey: api_key, query: query }, header: HEADERS)
19
+ rescue StandardError => e
20
+ raise HTTPError, e.message
21
+ end
22
+ json = JSON.parse(response.body, symbolize_names: true)
23
+ Response.new(json[:status], json[:message], json[:results])
19
24
  end
20
25
  end
21
26
  end
@@ -1,18 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
4
-
5
3
  module TalkApi
6
4
  # Response class
7
5
  class Response
8
6
  attr_reader :status, :message, :results
9
7
 
10
- def initialize(data = '{}')
11
- json = JSON.parse(data, symbolize_names: true)
12
-
13
- @status = json.key?(:status) ? json[:status] : nil
14
- @message = json.key?(:message) ? json[:message] : nil
15
- @results = json[:results].map { |result| Result.new(result[:perplexity], result[:reply]) } if success?
8
+ def initialize(status, message, results = [])
9
+ @status = status
10
+ @message = message
11
+ @results = results.map { |result| Result.new(result[:perplexity], result[:reply]) } if success?
16
12
  end
17
13
 
18
14
  def success?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TalkApi
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: talk_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakano
@@ -42,6 +42,7 @@ files:
42
42
  - bin/setup
43
43
  - lib/talk_api.rb
44
44
  - lib/talk_api/client.rb
45
+ - lib/talk_api/error.rb
45
46
  - lib/talk_api/request.rb
46
47
  - lib/talk_api/response.rb
47
48
  - lib/talk_api/result.rb