idobata_graph_ql 0.0.1 → 0.0.2

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: 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