oksky-chat-api 0.1.4 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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'