frontapp 0.0.9 → 0.0.12

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
- SHA1:
3
- metadata.gz: c84f037b7cc7663aee1d15e20998de2ba93ac6b9
4
- data.tar.gz: '0587e127ce575fd3e15b710e89238dc9064baab4'
2
+ SHA256:
3
+ metadata.gz: 137dd83548a9b04722f92973d145361bc5a9cc54a8f3b4ef7838123fa1d577f2
4
+ data.tar.gz: 2e27f67b3cb694fa4d9d80b7080c5164ade7279ca1882433f3838cfaa3211a21
5
5
  SHA512:
6
- metadata.gz: d93206614d9d0524e19e2322dd77457a39ed0682aad6da9f6e1ea12c4e9b860d2a56a916ee8fb731f72120e3f80af99ae569f845e8e59f3a4699bc88aa7fa50c
7
- data.tar.gz: b5878450b98cd27e239f24748ed8efab4785bc9d57850cf7d36a35be792eeebdf93eb3c76087856faf41f7b34df91cc78ee181a2df79bd5b6f9e857a979aec5c
6
+ metadata.gz: 1c535fe7e6d2576bcff22a3f0b9cad3626d64a7abfd998cb0314b727722a3eec79ad0ea57f34cc46173b7bba7c5a316f7773af8f76d171f7a045d7d76bc73bd9
7
+ data.tar.gz: e59366a309d89dffe65ee6383d79211267ae135883c0c93bbf79941ffcc81942b3826a974e1166ce17f7a66c97d291a4c4443eb929c39da3ba3586e033d5f5b6
@@ -0,0 +1,15 @@
1
+ module Frontapp
2
+ class Client
3
+ module Attachments
4
+
5
+ # Parameters
6
+ # Name Type Description
7
+ # ----------------------------------------------------------
8
+ # attachment_link_id string Id of the requested attachment
9
+ # ----------------------------------------------------------
10
+ def download_attachment(attachment_link_id)
11
+ get_raw("download/#{attachment_link_id}")
12
+ end
13
+ end
14
+ end
15
+ end
@@ -70,6 +70,51 @@ module Frontapp
70
70
  def get_conversation_messages(conversation_id)
71
71
  list("conversations/#{conversation_id}/messages")
72
72
  end
73
+
74
+ # Parameters
75
+ # Name Type Description
76
+ # ----------------------------------------------
77
+ # conversation_id string The conversation Id
78
+ # link_ids array (optional) Link IDs to add Either link_ids or link_external_urls must be specified but not both
79
+ # link_external_urls array (optional) Link external urls to add. Creates links if necessary. Either link_ids or link_external_urls must be specified but not both
80
+ # ----------------------------------------------
81
+ def add_conversation_links!(conversation_id, params = {})
82
+ cleaned = params.permit(:link_ids, :link_external_urls)
83
+ create_without_response("conversations/#{conversation_id}/links", cleaned)
84
+ end
85
+
86
+ # Parameters
87
+ # Name Type Description
88
+ # ----------------------------------------------
89
+ # conversation_id string The conversation Id
90
+ # link_ids array of strings link IDs to remove
91
+ # ----------------------------------------------
92
+ def remove_conversation_links!(conversation_id, params = {})
93
+ cleaned = params.permit(:link_ids)
94
+ delete("conversations/#{conversation_id}/links", cleaned)
95
+ end
96
+
97
+ # Parameters
98
+ # Name Type Description
99
+ # ----------------------------------------------
100
+ # conversation_id string The conversation Id
101
+ # teammate_ids array of strings follower IDs to remove
102
+ # ----------------------------------------------
103
+ def remove_conversation_followers!(conversation_id, params = {})
104
+ cleaned = params.permit(:teammate_ids)
105
+ delete("conversations/#{conversation_id}/followers", cleaned)
106
+ end
107
+
108
+ # Parameters
109
+ # Name Type Description
110
+ # ----------------------------------------------
111
+ # conversation_id string The conversation Id
112
+ # teammate_ids array of strings follower IDs to add
113
+ # ----------------------------------------------
114
+ def add_conversation_followers!(conversation_id, params = {})
115
+ cleaned = params.permit(:teammate_ids)
116
+ create_without_response("conversations/#{conversation_id}/followers", cleaned)
117
+ end
73
118
  end
74
119
  end
75
- end
120
+ end
@@ -0,0 +1,64 @@
1
+ module Frontapp
2
+ class Client
3
+ module Links
4
+
5
+ def links(params = {})
6
+ cleaned = params.permit({ q: [:statuses] })
7
+ list("links", cleaned)
8
+ end
9
+
10
+ # Parameters
11
+ # Name Type Description
12
+ # -------------------------------
13
+ # link_id string Id of the requested link
14
+ # -------------------------------
15
+ def get_link(link_id)
16
+ get("links/#{link_id}")
17
+ end
18
+
19
+ # Allowed attributes:
20
+ # Name Type Description
21
+ # ------------------------------------
22
+ # name string (optional) Name of the link. If none is specified, the external_url is used as a default
23
+ # external_url string Underlying identifying link/url of the link
24
+ # ------------------------------------
25
+ def create_link!(params = {})
26
+ cleaned = params.permit(:name, :external_url)
27
+ create("links", cleaned)
28
+ end
29
+
30
+ # Parameters
31
+ # Name Type Description
32
+ # -----------------------------
33
+ # link_id string Id of the requested link
34
+ # -----------------------------
35
+ #
36
+ # Allowed attributes:
37
+ # Name Type Description
38
+ # ------------------------------------
39
+ # name string New name of the link
40
+ # ------------------------------------
41
+ def update_link!(link_id, params = {})
42
+ cleaned = params.permit(:name)
43
+ update("links/#{link_id}", cleaned)
44
+ end
45
+
46
+ # Parameters
47
+ # Name Type Description
48
+ # -----------------------------
49
+ # link_id string Id of the requested link
50
+ # -----------------------------
51
+ #
52
+ # Allowed params:
53
+ # Name Type Description
54
+ # ------------------------------------------
55
+ # q object (optional) Search query.
56
+ # q.statuses array (optional) List of the statuses of the conversations you want to list
57
+ # ------------------------------------------
58
+ def get_link_conversations(link_id, params = {})
59
+ cleaned = params.permit({ q: [:statuses] })
60
+ list("links/#{link_id}/conversations", cleaned)
61
+ end
62
+ end
63
+ end
64
+ end
@@ -15,9 +15,10 @@ module Frontapp
15
15
  # q.statuses array (optional) List of the statuses of the conversations you want to list
16
16
  # ------------------------------------------
17
17
  def get_topic_conversations(topic_id, params = {})
18
- cleaned = params.permit({ q: [:statuses] })
19
- list("topics/#{topic_id}/conversations", cleaned)
18
+ warn "[DEPRECATION] `Topics` is deprecated. Please use `Links` instead."
19
+
20
+ get_link_conversations(topic_id, params)
20
21
  end
21
22
  end
22
23
  end
23
- end
24
+ end
@@ -1,6 +1,7 @@
1
1
  require 'uri'
2
2
  require 'http'
3
3
  require 'json'
4
+ require_relative 'client/attachments.rb'
4
5
  require_relative 'client/channels.rb'
5
6
  require_relative 'client/comments.rb'
6
7
  require_relative 'client/contact_groups.rb'
@@ -14,6 +15,7 @@ require_relative 'client/tags.rb'
14
15
  require_relative 'client/teammates.rb'
15
16
  require_relative 'client/teams.rb'
16
17
  require_relative 'client/topics.rb'
18
+ require_relative 'client/links.rb'
17
19
  require_relative 'client/exports.rb'
18
20
  require_relative 'error'
19
21
  require_relative 'version'
@@ -21,6 +23,7 @@ require_relative 'version'
21
23
  module Frontapp
22
24
  class Client
23
25
 
26
+ include Frontapp::Client::Attachments
24
27
  include Frontapp::Client::Channels
25
28
  include Frontapp::Client::Comments
26
29
  include Frontapp::Client::ContactGroups
@@ -34,6 +37,7 @@ module Frontapp
34
37
  include Frontapp::Client::Teammates
35
38
  include Frontapp::Client::Teams
36
39
  include Frontapp::Client::Topics
40
+ include Frontapp::Client::Links
37
41
  include Frontapp::Client::Exports
38
42
 
39
43
  def initialize(options={})
@@ -75,7 +79,7 @@ module Frontapp
75
79
  end
76
80
  JSON.parse(res.to_s)
77
81
  end
78
-
82
+
79
83
  def get_plain(path)
80
84
  headers_copy = @headers.dup
81
85
  res = @headers.accept("text/plain").get("#{base_url}#{path}")
@@ -85,6 +89,15 @@ module Frontapp
85
89
  res.to_s
86
90
  end
87
91
 
92
+ def get_raw(path)
93
+ headers_copy = @headers.dup
94
+ res = @headers.get("#{base_url}#{path}")
95
+ if !res.status.success?
96
+ raise Error.from_response(res)
97
+ end
98
+ res
99
+ end
100
+
88
101
  def create(path, body)
89
102
  res = @headers.post("#{base_url}#{path}", json: body)
90
103
  response = JSON.parse(res.to_s)
@@ -1,3 +1,3 @@
1
1
  module Frontapp
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.12"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frontapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niels van der Zanden
@@ -74,6 +74,7 @@ extra_rdoc_files: []
74
74
  files:
75
75
  - lib/frontapp.rb
76
76
  - lib/frontapp/client.rb
77
+ - lib/frontapp/client/attachments.rb
77
78
  - lib/frontapp/client/channels.rb
78
79
  - lib/frontapp/client/comments.rb
79
80
  - lib/frontapp/client/contact_groups.rb
@@ -82,6 +83,7 @@ files:
82
83
  - lib/frontapp/client/events.rb
83
84
  - lib/frontapp/client/exports.rb
84
85
  - lib/frontapp/client/inboxes.rb
86
+ - lib/frontapp/client/links.rb
85
87
  - lib/frontapp/client/messages.rb
86
88
  - lib/frontapp/client/rules.rb
87
89
  - lib/frontapp/client/tags.rb
@@ -110,8 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
112
  - !ruby/object:Gem::Version
111
113
  version: '0'
112
114
  requirements: []
113
- rubyforge_project:
114
- rubygems_version: 2.5.2.1
115
+ rubygems_version: 3.1.6
115
116
  signing_key:
116
117
  specification_version: 4
117
118
  summary: Ruby client for Frontapp API