oksky-chat-api 0.1.4 → 0.2.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
  SHA1:
3
- metadata.gz: 208df13505446839f47a4328ede2afee77509917
4
- data.tar.gz: b0f36264a40750e663664689a03c72016e0f99c8
3
+ metadata.gz: d03f9cf52487e8394c6f2de928ec8d138d255b3f
4
+ data.tar.gz: 5a435341868e8bd5cf25a29ebb81943e31f59a5c
5
5
  SHA512:
6
- metadata.gz: dd4308f0100d171a328b94fba1732b033f981413ff650ec3ce3dd17f241d74e9a01c8d04af015cac3539301f8fd85396556b26b9f1b4b7d143fc74f67adb6613
7
- data.tar.gz: 39002fa802b66bf67ece97d4ce05159cf6a1f1cdba7de6b4204f92f02b83af0dcc0cb3de51a40bfdd3d94bd03e11d68d875f25c6176f1f0fec7b65e5f82cdff1
6
+ metadata.gz: 5062ada537c0203bc28d9933bd1660f8909a8fd9a0a923127172b805383922f3010b5542cdecfe02239ac5569c014a3891347f3dec37b093287c797a409966b2
7
+ data.tar.gz: c04c6f2a179340a985fa5fc0ec5e669ab8337fea9d2cbad0433a29a6d936de961411869eb8815675d9e6c00175236b81e46118c199ce394b66bfeba83ec638dd
data/README.md CHANGED
@@ -42,11 +42,11 @@ post '/callback' do
42
42
  event = webhook_client.parse_events_from(body)
43
43
  case event
44
44
  when Oksky::Chat::Event::Message
45
- client = Oksky::Chat::Client::Message.new { |config|
45
+ client = Oksky::Chat::Client.new { |config|
46
46
  config.access_token = EVN['OKSKY_CHAT_ACCESS_TOKEN']
47
47
  config.endpoint = EVN['OKSKY_CHAT_ENDPOINT']
48
48
  }
49
- result = client.get_message_content(event["id"])
49
+ result = client.find("messages", event["id"], {}, false)
50
50
  p JSON.parse(result.body) if !result.nil? && result.kind_of?(Net::HTTPResponse) && !result.body.blank?
51
51
  end
52
52
 
@@ -54,27 +54,43 @@ post '/callback' do
54
54
  end
55
55
  ```
56
56
 
57
- ```ruby
58
-
59
- suggestion_client = Oksky::Chat::Client::Suggestion.new(access_token: "38d9b3ed60587820840857dfdf14561b", endpoint: "http://127.0.0.1:3000/rapi/v1")
60
-
61
- suggestions = [{"kind": "text","content": "test","settings": {}}]
62
- room_id = 49
63
-
64
- result = suggestion_client.create(suggestion_messages_data: suggestions, room_id: room_id)
57
+ #### GET Resource Object
65
58
 
59
+ ```ruby
60
+ client = Oksky::Chat::Client.new(
61
+ access_token: "38d9b3ed60587820840857dfdf14561b",
62
+ endpoint: "http://127.0.0.1:3000/rapi/v1"
63
+ )
64
+ client.find("messages", 1) #=> Oksky::Chat::Object::MessagesResource
66
65
  ```
67
66
 
68
- ## Development
69
-
70
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
71
-
72
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
67
+ #### GET Resource Objects
73
68
 
74
- ## Contributing
69
+ ```ruby
70
+ client = Oksky::Chat::Client.new(
71
+ access_token: "38d9b3ed60587820840857dfdf14561b",
72
+ endpoint: "http://127.0.0.1:3000/rapi/v1"
73
+ )
74
+ client.where("messages", {"filter[room_id]": 1}) #=> Array Oksky::Chat::Object::MessagesResource
75
+ ```
75
76
 
76
- Bug reports and pull requests are welcome on GitHub at <https://github.com/OKSKY/oksky-chat-sdk-ruby>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
77
+ #### CREATE Resource Object
78
+ ```ruby
79
+ client = Oksky::Chat::Client.new(
80
+ access_token: "38d9b3ed60587820840857dfdf14561b",
81
+ endpoint: "http://127.0.0.1:3000/rapi/v1"
82
+ )
83
+ client.create("messages", {"data"=>{"type"=>"messages", "attributes"=>{"content"=>"test0001", "kind"=>"text", "settings"=>{}, "status"=>"", "info"=>"", "tags"=>[]}, "relationships"=>{"room"=>{"data"=>{"type"=>"rooms", "id"=>"369249"}}}}})
84
+ ```
77
85
 
86
+ #### EDIT Resource Object
87
+ ```ruby
88
+ client = Oksky::Chat::Client.new(
89
+ access_token: "38d9b3ed60587820840857dfdf14561b",
90
+ endpoint: "http://127.0.0.1:3000/rapi/v1"
91
+ )
92
+ client.edit("messages", 1, {"data"=>{"type"=>"messages", "attributes"=>{"content"=>"test0001", "kind"=>"text", "settings"=>{}, "status"=>"", "info"=>"", "tags"=>[]}, "relationships"=>{"room"=>{"data"=>{"type"=>"rooms", "id"=>"369249"}}}}})
93
+ ```
78
94
 
79
95
  ## License
80
96
 
data/lib/oksky/chat.rb CHANGED
@@ -3,6 +3,6 @@ require 'oksky/chat/api/errors'
3
3
  require 'oksky/chat/api/version'
4
4
  require 'oksky/chat/request'
5
5
  require 'oksky/chat/httpclient'
6
- require 'oksky/chat/event'
7
6
  require 'oksky/chat/client'
8
- require 'oksky/chat/whclient'
7
+ require 'oksky/chat/whclient'
8
+ require 'oksky/chat/object'
@@ -1,7 +1,7 @@
1
1
  module Oksky
2
2
  module Chat
3
3
  module API
4
- VERSION = "0.1.4"
4
+ VERSION = "0.2.1"
5
5
  end
6
6
  end
7
7
  end
@@ -1,5 +1,182 @@
1
- require 'oksky/chat/client/base'
2
- require 'oksky/chat/client/message'
3
- require 'oksky/chat/client/suggestion'
4
- require 'oksky/chat/client/room'
5
- require 'oksky/chat/client/support'
1
+ # require 'oksky/chat/client/base'
2
+ # require 'oksky/chat/client/message'
3
+ # require 'oksky/chat/client/suggestion'
4
+ # require 'oksky/chat/client/room'
5
+ # require 'oksky/chat/client/support'
6
+ require 'oksky/chat/request'
7
+ require 'oksky/chat/api/errors'
8
+ require 'base64'
9
+ require 'net/http'
10
+ require 'openssl'
11
+
12
+ module Oksky
13
+ module Chat
14
+ class Client
15
+
16
+ # @return [String]
17
+ attr_accessor :access_token, :endpoint
18
+
19
+ # @return [Object]
20
+ attr_accessor :httpclient
21
+
22
+ # Initialize a new Bot Client.
23
+ #
24
+ # @param options [Hash]
25
+ #
26
+ # @return [Oksky::Chat::Message::Client]
27
+ def initialize(options = {})
28
+ options.each do |key, value|
29
+ instance_variable_set("@#{key}", value)
30
+ end
31
+ yield(self) if block_given?
32
+ end
33
+
34
+ def httpclient
35
+ @httpclient ||= Oksky::Chat::HTTPClient.new
36
+ end
37
+
38
+ def endpoint
39
+ @endpoint ||= Oksky::Chat::API::DEFAULT_ENDPOINT
40
+ end
41
+
42
+ # @return [Hash]
43
+ def credentials
44
+ {
45
+ "X-Access-Token" => access_token
46
+ }
47
+ end
48
+
49
+ def credentials?
50
+ credentials.values.all?
51
+ end
52
+
53
+ # Push messages to OK SKY Chat server and to user.
54
+ #
55
+ # @param object_type [String] User's identifiers
56
+ # @param payload [Hash or Array]
57
+ #
58
+ # @return [Net::HTTPResponse]
59
+ def create(object_type, payload)
60
+ raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
61
+
62
+ # messages = [messages] if messages.is_a?(Hash)
63
+
64
+ request = Request.new do |config|
65
+ config.httpclient = httpclient
66
+ config.endpoint = endpoint
67
+ config.endpoint_path = "/#{object_type}"
68
+ config.credentials = credentials
69
+ config.payload = payload
70
+ end
71
+
72
+ request.post
73
+ end
74
+
75
+ # Push messages to OK SKY Chat server and to user.
76
+ #
77
+ # @param object_type [String] User's identifiers
78
+ # @param object_id [String] Object's identifier
79
+ # @param payload [Hash or Array]
80
+ #
81
+ # @return [Net::HTTPResponse]
82
+ def edit(object_type, object_id, payload)
83
+ raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
84
+
85
+ # messages = [messages] if messages.is_a?(Hash)
86
+
87
+ request = Request.new do |config|
88
+ config.httpclient = httpclient
89
+ config.endpoint = endpoint
90
+ config.endpoint_path = "/#{object_type}/#{object_id}"
91
+ config.credentials = credentials
92
+ config.payload = payload
93
+ end
94
+
95
+ request.put
96
+ end
97
+
98
+
99
+ # Get object_type content.
100
+ #
101
+ # @param object_type [String] Object type
102
+ # @param object_id [String] Object's identifier
103
+ #
104
+ # @return [Oksky::Chat::Object::{object_type}]
105
+ def find(object_type, object_id, option = {}, is_parse = true)
106
+ endpoint_path = "/#{object_type}/#{object_id}"
107
+ result = get(endpoint_path, option)
108
+
109
+ if is_parse
110
+ json = JSON.parse(result.body)
111
+ begin
112
+ concrete_class(json["data"]).new(json["data"])
113
+ rescue => ex
114
+ p ex
115
+ return json
116
+ end
117
+ else
118
+ return result
119
+ end
120
+ end
121
+
122
+ # Get some object_type content.
123
+ #
124
+ # @param object_type [String] object_type
125
+ # @param option [Hash] get params hash
126
+ # @param is_parse [Boolean] return Object
127
+ #
128
+ # @return [Oksky::Chat::Object::{object_type}]
129
+ def where(object_type, option = {}, is_parse = true)
130
+ endpoint_path = "/#{object_type}"
131
+ result = get(endpoint_path, option)
132
+
133
+ if is_parse
134
+ json = JSON.parse(result.body)
135
+ if json.has_key?("data") && !json["data"].empty? && json["data"].kind_of?(Array)
136
+ json["data"].map{|d|
137
+ concrete_class(d).new(d)
138
+ }
139
+ else
140
+ return []
141
+ end
142
+ else
143
+ return result
144
+ end
145
+ end
146
+
147
+ # Fetch data, get content of specified URL.
148
+ #
149
+ # @param endpoint_path [String]
150
+ #
151
+ # @return [Net::HTTPResponse]
152
+ def get(endpoint_path, option = {})
153
+ raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
154
+
155
+ request = Request.new do |config|
156
+ config.httpclient = httpclient
157
+ config.endpoint = endpoint
158
+ config.endpoint_path = endpoint_path
159
+ config.credentials = credentials
160
+ config.payload = option
161
+ end
162
+
163
+ request.get
164
+ end
165
+
166
+ private
167
+ # class object return, get content of specified URL.
168
+ #
169
+ # @param data [Hash]
170
+ #
171
+ # @return [Oksky::Chat::Object::]
172
+ def concrete_class(data)
173
+ begin
174
+ Oksky::Chat::Object.const_get("#{data["type"].capitalize}Resource")
175
+ rescue NameError => e
176
+ Oksky::Chat::Object::UnsupportResource
177
+ end
178
+
179
+ end
180
+ end
181
+ end
182
+ end
@@ -0,0 +1,5 @@
1
+ require 'oksky/chat/object/base'
2
+ require 'oksky/chat/object/messages_resource'
3
+ require 'oksky/chat/object/rooms_resource'
4
+ require 'oksky/chat/object/supports_resource'
5
+ require 'oksky/chat/object/unsupport_resource'
@@ -1,6 +1,6 @@
1
1
  module Oksky
2
2
  module Chat
3
- module Event
3
+ module Object
4
4
  class Base
5
5
 
6
6
  def initialize(src)
@@ -1,9 +1,7 @@
1
- # require 'oksky/chat/client/room'
2
-
3
1
  module Oksky
4
2
  module Chat
5
- module Event
6
- module MessageKind
3
+ module Object
4
+ module MessagesResourceKind
7
5
  Text = "text"
8
6
  Link = "link"
9
7
  Image = "image"
@@ -22,7 +20,7 @@ module Oksky
22
20
  Unsupport = 'unsupport'
23
21
  end
24
22
 
25
- class Message < Base
23
+ class MessagesResource < Base
26
24
 
27
25
  # @return [String<Oksky::Chat::Event::Message>]
28
26
  def content
@@ -32,9 +30,9 @@ module Oksky
32
30
  # @return [String<Oksky::Chat::Event::MessageKind::>]
33
31
  def kind
34
32
  begin
35
- Oksky::Chat::Event::MessageKind.const_get(content_value("kind").split("_").map{|w| w[0] = w[0].capitalize; w}.join)
33
+ Oksky::Chat::Object::MessagesResourceKind.const_get(content_value("kind").split("_").map{|w| w[0] = w[0].capitalize; w}.join)
36
34
  rescue NameError => e
37
- Oksky::Chat::Event::MessageKind::Unsupport
35
+ Oksky::Chat::Object::MessagesResourceKind::Unsupport
38
36
  end
39
37
  end
40
38
 
@@ -1,26 +1,15 @@
1
1
  module Oksky
2
2
  module Chat
3
- module Event
4
- module RoomKind
5
- Text = "text"
6
- Link = "link"
7
- Image = "image"
8
- Video = "video"
9
- Audio = "audio"
10
- Location = "location"
11
- Sticker = "sticker"
12
- ActionLink = "action_link"
13
- Maltiple = "maltiple"
14
- RichContent = "rich_content"
15
- Stamp = "stamp"
16
- Contact = "contact"
17
- Form = "form"
18
- Item = "item"
19
- File = "file"
20
- Unsupport = 'unsupport'
3
+ module Object
4
+ module RoomsResourceKind
5
+ MyRoom = "my_room"
6
+ DirectRoom = "direct_room"
7
+ GroupRoom = "group_room"
8
+ SupportRoom = "support_room"
9
+ Unsupport = 'unsupport'
21
10
  end
22
11
 
23
- class Room < Base
12
+ class RoomsResource < Base
24
13
 
25
14
  # @return [String<Oksky::Chat::Event::Room>]
26
15
  def name
@@ -30,9 +19,9 @@ module Oksky
30
19
  # @return [String<Oksky::Chat::Event::RoomKind::>]
31
20
  def kind
32
21
  begin
33
- Oksky::Chat::Event::RoomKind.const_get(content_value("kind").split("_").map{|w| w[0] = w[0].capitalize; w}.join)
22
+ Oksky::Chat::Event::RoomsResourceKind.const_get(content_value("kind").split("_").map{|w| w[0] = w[0].capitalize; w}.join)
34
23
  rescue NameError => e
35
- Oksky::Chat::Event::RoomKind::Unsupport
24
+ Oksky::Chat::Event::RoomsResourceKind::Unsupport
36
25
  end
37
26
  end
38
27
 
@@ -1,7 +1,7 @@
1
1
  module Oksky
2
2
  module Chat
3
- module Event
4
- class Support < Base
3
+ module Object
4
+ class SupportsResource < Base
5
5
 
6
6
  # @return [String<Oksky::Chat::Event::Support>]
7
7
  def end_time_unix
@@ -0,0 +1,15 @@
1
+ module Oksky
2
+ module Chat
3
+ module Object
4
+ class UnsupportResource < Base
5
+ def content
6
+ if @src.has_key?('attributes')
7
+ @src['attributes']
8
+ else
9
+ @src
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -50,6 +50,16 @@ module Oksky
50
50
  httpclient.post(endpoint + endpoint_path, payload.to_json, header)
51
51
  end
52
52
 
53
+ # Put content of specified URL.
54
+ #
55
+ # @raise [ArgumentError]
56
+ #
57
+ # @return [Net::HTTPResponse]
58
+ def put
59
+ assert_for_posting_message
60
+ httpclient.put(endpoint + endpoint_path, payload.to_json, header)
61
+ end
62
+
53
63
  def assert_for_getting_message
54
64
  raise ArgumentError, 'Wrong argument type `endpoint_path`' unless endpoint_path.is_a?(String)
55
65
  end
@@ -11,12 +11,25 @@ module Oksky
11
11
  json = JSON.parse(request_body)
12
12
 
13
13
  begin
14
- klass = Oksky::Chat::Event.const_get(json['object_name'].capitalize)
14
+ klass = Oksky::Chat::Object.const_get("#{object_type(json['object_name']).capitalize}Resource")
15
15
  klass.new(json['object'])
16
16
  rescue NameError => e
17
- Oksky::Chat::Event::Base.new(json['object'])
17
+ Oksky::Chat::Object::UnsupportResource.new(json['object'])
18
18
  end
19
19
  end
20
+
21
+ private
22
+ def object_type(object_name)
23
+ case object_name
24
+ when "Message"
25
+ "messages"
26
+ when "Room"
27
+ "rooms"
28
+ when "User"
29
+ "users"
30
+ else
31
+ end
32
+ end
20
33
  end
21
34
  end
22
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oksky-chat-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - SOLAIRO, INC.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-25 00:00:00.000000000 Z
11
+ date: 2017-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,17 +108,13 @@ files:
108
108
  - lib/oksky/chat/api/errors.rb
109
109
  - lib/oksky/chat/api/version.rb
110
110
  - lib/oksky/chat/client.rb
111
- - lib/oksky/chat/client/base.rb
112
- - lib/oksky/chat/client/message.rb
113
- - lib/oksky/chat/client/room.rb
114
- - lib/oksky/chat/client/suggestion.rb
115
- - lib/oksky/chat/client/support.rb
116
- - lib/oksky/chat/event.rb
117
- - lib/oksky/chat/event/base.rb
118
- - lib/oksky/chat/event/message.rb
119
- - lib/oksky/chat/event/room.rb
120
- - lib/oksky/chat/event/support.rb
121
111
  - lib/oksky/chat/httpclient.rb
112
+ - lib/oksky/chat/object.rb
113
+ - lib/oksky/chat/object/base.rb
114
+ - lib/oksky/chat/object/messages_resource.rb
115
+ - lib/oksky/chat/object/rooms_resource.rb
116
+ - lib/oksky/chat/object/supports_resource.rb
117
+ - lib/oksky/chat/object/unsupport_resource.rb
122
118
  - lib/oksky/chat/request.rb
123
119
  - lib/oksky/chat/whclient.rb
124
120
  - oksky-chat-api.gemspec
@@ -1,44 +0,0 @@
1
- module Oksky
2
- module Chat
3
- module Client
4
- class Base
5
- # @return [String]
6
- attr_accessor :access_token, :endpoint
7
-
8
- # @return [Object]
9
- attr_accessor :httpclient
10
-
11
- # Initialize a new Bot Client.
12
- #
13
- # @param options [Hash]
14
- #
15
- # @return [Oksky::Chat::Message::Client]
16
- def initialize(options = {})
17
- options.each do |key, value|
18
- instance_variable_set("@#{key}", value)
19
- end
20
- yield(self) if block_given?
21
- end
22
-
23
- def httpclient
24
- @httpclient ||= Oksky::Chat::HTTPClient.new
25
- end
26
-
27
- def endpoint
28
- @endpoint ||= Oksky::Chat::API::DEFAULT_ENDPOINT
29
- end
30
-
31
- # @return [Hash]
32
- def credentials
33
- {
34
- "X-Access-Token" => access_token
35
- }
36
- end
37
-
38
- def credentials?
39
- credentials.values.all?
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,97 +0,0 @@
1
- require 'oksky/chat/request'
2
- require 'oksky/chat/api/errors'
3
- require 'base64'
4
- require 'net/http'
5
- require 'openssl'
6
-
7
- module Oksky
8
- module Chat
9
- module Client
10
- class Message < Base
11
-
12
- # Push messages to OK SKY Chat server and to user.
13
- #
14
- # @param user_id [String] User's identifiers
15
- # @param messages [Hash or Array]
16
- #
17
- # @return [Net::HTTPResponse]
18
- #
19
- # Example:
20
- # md = {"content":"test0001","kind":"text","settings":{},"status":"","info":"","tags":[]}
21
- # room_id = 3200
22
- # messages_data = {
23
- # "data":{
24
- # "type":"messages",
25
- # "attributes":md, # {"content"=>nil, "kind"=>"text", "settings"=>{}}
26
- # "relationships":{
27
- # "room":{
28
- # "data":{
29
- # "type":"rooms",
30
- # "id": "#{room_id}"
31
- # }
32
- # }
33
- # }
34
- # }
35
- # }
36
- #
37
- # message_client = Oksky::Chat::Client::Message.new { |config|
38
- # config.access_token = "hogehoge"
39
- # config.endpoint = "https://hogehoge.ok-sky.com/rapi/v1"
40
- # }
41
- # message_client.push_message(messages_data)
42
- def push_message(messages)
43
- raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
44
-
45
- # messages = [messages] if messages.is_a?(Hash)
46
-
47
- request = Request.new do |config|
48
- config.httpclient = httpclient
49
- config.endpoint = endpoint
50
- config.endpoint_path = '/messages'
51
- config.credentials = credentials
52
- config.payload = messages
53
- end
54
-
55
- request.post
56
- end
57
-
58
- # Get message content.
59
- #
60
- # @param identifier [String] Message's identifier
61
- #
62
- # @return [Oksky::Chat::Event::Message]
63
- def get_message_content(message_id, option = {}, is_parse = true)
64
- endpoint_path = "/messages/#{message_id}"
65
- result = get(endpoint_path, option)
66
-
67
- if is_parse
68
- json = JSON.parse(result.body)
69
- Oksky::Chat::Event::Message.new(json["data"])
70
- else
71
- return result
72
- end
73
- end
74
-
75
- # Fetch data, get content of specified URL.
76
- #
77
- # @param endpoint_path [String]
78
- #
79
- # @return [Net::HTTPResponse]
80
- def get(endpoint_path, option = {})
81
- raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
82
-
83
- request = Request.new do |config|
84
- config.httpclient = httpclient
85
- config.endpoint = endpoint
86
- config.endpoint_path = endpoint_path
87
- config.credentials = credentials
88
- config.payload = option
89
- end
90
-
91
- request.get
92
- end
93
-
94
- end
95
- end
96
- end
97
- end
@@ -1,78 +0,0 @@
1
- require 'oksky/chat/request'
2
- require 'oksky/chat/api/errors'
3
- require 'base64'
4
- require 'net/http'
5
- require 'openssl'
6
-
7
- module Oksky
8
- module Chat
9
- module Client
10
- class Room < Base
11
-
12
- # Push rooms to OK SKY Chat server and to user.
13
- #
14
- # @param user_id [String] User's identifiers
15
- # @param rooms [Hash or Array]
16
- #
17
- # @return [Net::HTTPResponse]
18
- def push_room(rooms)
19
- raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
20
-
21
- rooms = [rooms] if rooms.is_a?(Hash)
22
-
23
- request = Request.new do |config|
24
- config.httpclient = httpclient
25
- config.endpoint = endpoint
26
- config.endpoint_path = '/rooms'
27
- config.credentials = credentials
28
- config.rooms = rooms
29
- end
30
-
31
- request.post
32
- end
33
-
34
- # Get room content.
35
- #
36
- # @param identifier [String] Message's identifier
37
- #
38
- # @return [Oksky::Chat::Event::Message]
39
- def get_room_content(room_id, option = {}, is_parse = true)
40
- endpoint_path = "/rooms/#{room_id}"
41
- result = get(endpoint_path, option)
42
-
43
- if is_parse
44
- json = JSON.parse(result.body)
45
- Oksky::Chat::Event::Room.new(json["data"])
46
- else
47
- return result
48
- end
49
- end
50
-
51
- # Fetch data, get content of specified URL.
52
- #
53
- # @param endpoint_path [String]
54
- #
55
- # @return [Net::HTTPResponse]
56
- def get(endpoint_path, option = {})
57
- raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
58
-
59
- unless option.empty?
60
- params = URI.encode_www_form(option)
61
- endpoint_path = "#{endpoint_path}?#{params}"
62
- end
63
-
64
- request = Request.new do |config|
65
- config.httpclient = httpclient
66
- config.endpoint = endpoint
67
- config.endpoint_path = endpoint_path
68
- config.credentials = credentials
69
- config.payload = option
70
- end
71
-
72
- request.get
73
- end
74
-
75
- end
76
- end
77
- end
78
- end
@@ -1,73 +0,0 @@
1
- require 'oksky/chat/request'
2
- require 'oksky/chat/api/errors'
3
- require 'base64'
4
- require 'net/http'
5
- require 'openssl'
6
-
7
- module Oksky
8
- module Chat
9
- module Client
10
- class Suggestion < Base
11
-
12
- # Push suggestion to OK SKY Chat server
13
- #
14
- # @param user_id [String] User's identifiers
15
- # @param messages [Hash or Array]
16
- #
17
- # @return [Net::HTTPResponse]
18
- def create(suggestion_messages_data:, room_id:)
19
- raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
20
-
21
- suggestion_payload = {
22
- "data": {
23
- "type": "suggestions",
24
- "attributes": {
25
- "suggestion_messages_data": suggestion_messages_data
26
- },
27
- "relationships": {
28
- "room": {
29
- "data": {
30
- "type": "rooms",
31
- "id": room_id
32
- }
33
- }
34
- }
35
- }
36
- }
37
- p suggestion_payload
38
-
39
- request = Request.new do |config|
40
- config.httpclient = httpclient
41
- config.endpoint = endpoint
42
- config.endpoint_path = '/suggestions'
43
- config.credentials = credentials
44
- config.payload = suggestion_payload
45
- end
46
-
47
- request.post
48
- end
49
-
50
- # Fetch data, get content of specified URL.
51
- #
52
- # @param endpoint_path [String]
53
- #
54
- # @return [Net::HTTPResponse]
55
- def get(endpoint_path, option = {})
56
- raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
57
-
58
- request = Request.new do |config|
59
- config.httpclient = httpclient
60
- config.endpoint = endpoint
61
- config.endpoint_path = endpoint_path
62
- config.credentials = credentials
63
- config.payload = option
64
- end
65
-
66
- request.get
67
- end
68
-
69
-
70
- end
71
- end
72
- end
73
- end
@@ -1,96 +0,0 @@
1
- require 'oksky/chat/request'
2
- require 'oksky/chat/api/errors'
3
- require 'base64'
4
- require 'net/http'
5
- require 'openssl'
6
-
7
- module Oksky
8
- module Chat
9
- module Client
10
- class Support < Base
11
-
12
- # Push supports to OK SKY Chat server and to user.
13
- #
14
- # @param user_id [String] User's identifiers
15
- # @param supports [Hash or Array]
16
- #
17
- # @return [Net::HTTPResponse]
18
- def push_support(supports)
19
- raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
20
-
21
- supports = [supports] if supports.is_a?(Hash)
22
-
23
- request = Request.new do |config|
24
- config.httpclient = httpclient
25
- config.endpoint = endpoint
26
- config.endpoint_path = '/supports'
27
- config.credentials = credentials
28
- config.supports = supports
29
- end
30
-
31
- request.post
32
- end
33
-
34
- # Get supports content.
35
- #
36
- # @param identifier [String] Support's identifier
37
- #
38
- # @return Array [Oksky::Chat::Event::Message]
39
- def get_supports_content(option = {}, is_parse = true)
40
- endpoint_path = "/supports"
41
- result = get(endpoint_path, option)
42
-
43
- if is_parse
44
- json = JSON.parse(result.body)
45
- if json.has_key?("data") && !json["data"].empty?
46
- json["data"].map{|d|
47
- Oksky::Chat::Event::Support.new(d)
48
- }
49
- else
50
- return []
51
- end
52
- else
53
- return result
54
- end
55
- end
56
-
57
- # Get support content.
58
- #
59
- # @param identifier [String] Message's identifier
60
- #
61
- # @return [Oksky::Chat::Event::Message]
62
- def get_support_content(support_id, option = {}, is_parse = true)
63
- endpoint_path = "/supports/#{support_id}"
64
- result = get(endpoint_path, option)
65
-
66
- if is_parse
67
- json = JSON.parse(result.body)
68
- Oksky::Chat::Event::Support.new(json["data"])
69
- else
70
- return result
71
- end
72
- end
73
-
74
- # Fetch data, get content of specified URL.
75
- #
76
- # @param endpoint_path [String]
77
- #
78
- # @return [Net::HTTPResponse]
79
- def get(endpoint_path, option = {})
80
- raise Oksky::Chat::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
81
-
82
- request = Request.new do |config|
83
- config.httpclient = httpclient
84
- config.endpoint = endpoint
85
- config.endpoint_path = endpoint_path
86
- config.credentials = credentials
87
- config.payload = option
88
- end
89
-
90
- request.get
91
- end
92
-
93
- end
94
- end
95
- end
96
- end
@@ -1,4 +0,0 @@
1
- require 'oksky/chat/event/base'
2
- require 'oksky/chat/event/message'
3
- require 'oksky/chat/event/room'
4
- require 'oksky/chat/event/support'