idobata_graph_ql 0.0.1 → 0.0.2

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: bdb02a0be04a675e6d2d74f584b0129ef227bf6d
4
- data.tar.gz: 89b9714ca7ae508213608efca7a7f9263410f449
3
+ metadata.gz: 8019eda8aa81053a59386a7f63be94c22da2fdd0
4
+ data.tar.gz: 907577d99275aeac59a1ff857781c1653c7f1ddc
5
5
  SHA512:
6
- metadata.gz: 33314516a1d8a4f6fb477095ffc9c053a33497f3a5db4fccb76c8bcf34070da901e28fa37f46f632819c669757cac8e43d88ae89e752437094a0771cdb5b8c23
7
- data.tar.gz: 75f18096280ecb8441ecc2a3c3bdd4c4c41a3e6e4b1ffc9c6bd60b589e9df380fe782273f6f042a645aac5899ac3ab3ece074f7014ad06a68218a69e536e8924
6
+ metadata.gz: 6a99532d94f556ab60c5d3a9f838d0d7106bcd826c0b5d334f9bc66d6d347183dc43cd583d26611aecf11ceb204408bdc44dd797d546d56f7e410de53d9af53d
7
+ data.tar.gz: bd61518fb775ecba3a8a2e23c53a961b8ba60e456d286bf1af9ad7babc03959b3aab08ac9b34af92dd58e975769f4ca2514a947e0cd28170543cc654515c2b17
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/idobata_graph_ql.rb CHANGED
@@ -2,11 +2,27 @@ require "json"
2
2
  require "net/http"
3
3
 
4
4
  class IdobataGraphQL
5
+ class Room < Struct.new(:id, :name, :organization); end
6
+
5
7
  IDOBATA_PUBLIC_API_URI = URI.parse("https://api.idobata.io/graphql")
6
8
 
7
9
  class << self
8
10
  def query(query)
9
- new(IDOBATA_PUBLIC_API_URI, default_token).query(query)
11
+ default.query(query)
12
+ end
13
+
14
+ def rooms
15
+ default.rooms
16
+ end
17
+
18
+ def create_message(room_id, source, format = 'MARKDOWN')
19
+ default.create_message(room_id, source, format)
20
+ end
21
+
22
+ private
23
+
24
+ def default
25
+ new(IDOBATA_PUBLIC_API_URI, default_token)
10
26
  end
11
27
 
12
28
  def default_token
@@ -19,13 +35,34 @@ class IdobataGraphQL
19
35
  @token = token
20
36
  end
21
37
 
22
- def query(query)
23
- body = JSON.generate(query: query)
38
+ def query(query, variables = nil)
39
+ body = JSON.generate({ query: query, variables: variables }.compact)
24
40
  res = start { |http| http.post(@uri.path, body, headers) }
25
41
  res.value
26
42
  JSON.parse(res.body).fetch('data')
27
43
  end
28
44
 
45
+ def create_message(room_id, source, format)
46
+ variables = { input: { roomId: room_id, source: source, format: format } }
47
+ query(<<~MUTATION, variables)
48
+ mutation Mutation($input: CreateMessageInput!) {
49
+ createMessage(input: $input) {
50
+ clientMutationId
51
+ }
52
+ }
53
+ MUTATION
54
+ end
55
+
56
+ def rooms
57
+ fetch_rooms.dig('viewer', 'rooms', 'edges').map do |room_edge|
58
+ Room.new(
59
+ room_edge.dig('node', 'id'),
60
+ room_edge.dig('node', 'name'),
61
+ room_edge.dig('node', 'organization', 'name'),
62
+ )
63
+ end
64
+ end
65
+
29
66
  private
30
67
 
31
68
  def start
@@ -47,4 +84,9 @@ class IdobataGraphQL
47
84
  def scheme
48
85
  @uri.scheme
49
86
  end
87
+
88
+ def fetch_rooms
89
+ query('query { viewer { rooms { edges { node { id, name, organization { name } } } } } }')
90
+ end
91
+
50
92
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: idobata_graph_ql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seiei Miyagi
metadata.gz.sig CHANGED
@@ -1,3 +1,2 @@
1
- |.��b-<��a�d�
2
- �����C܃��Qi&� BRޚ����ʣn��FH�=F)6�ɬWȳ�,=��"4i�2K��^���� {`CPSt��F�!ݑ�-��$rnVORX.�$�� ��%��ubU
3
- Q2�����>Ή:�0!� !]�pYe��~%�+�xfn+��6g�\������w���:k(� �V-D6}�[p�y�x-_Bi ��Q�s���"yy��i��1e,����#m��%��h��n"�
1
+ ��
2
+ p8Ux��P]�˽��1��ޜ�i���6q|��rDYA8F