setka-workflow 0.1.0 → 0.1.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: e0098fac4579ad93428e7e9381e6a4c08143a023
4
- data.tar.gz: a88666ec495738c7dae0f8b6613e5184b1997c3d
3
+ metadata.gz: 984c7eb517da01a15112df082649571809af9ba1
4
+ data.tar.gz: 9d37f010305da4fde4af901230b28c82b1eba04e
5
5
  SHA512:
6
- metadata.gz: 7003d0b32b22269d743023462f4068da3d73004f9e1207e5d07d5e6f38e1b3226173d015c6c1451e5ca8f5147d514789e4bad5629541e5918405f85f10e347ca
7
- data.tar.gz: 6ae7842f6ef285f22dbc44d8ed307f6a941812d3e1df92433e6a1d6023c87bf7ce62e9998ed0dc037161d68743b0ebfeca20d1e515c37a463d57ac303802957e
6
+ metadata.gz: cbc377ec10c5a5babdf3c2d320875059f9254ce31761b7767a2dbf56884c4594674a07b60e10ba7e9c6938be622b42e3dffa3001d8c2b76327153230230745bb
7
+ data.tar.gz: ed243ad7a18de82380cfb0b53e6740f3c94a3ce034f905d21f790e5993d16555ca98d0cd6e0b31e4168536c0ce98c99fef523111e4369dc930bb23e4078455b7
@@ -0,0 +1,9 @@
1
+ # v0.1.1 2017-09-01
2
+
3
+ ## Changed
4
+
5
+ * Added rubydoc comments for main methods and points
6
+
7
+ # v0.1.0 2017-09-01
8
+
9
+ First public release
@@ -1,5 +1,13 @@
1
1
  require 'setka/workflow/version'
2
2
 
3
+ # Ruby implementations of Setka Workflow API for integration an external
4
+ # publishing platform written in the Ruby language with Setka Workflow.
5
+ #
6
+ # First of all access token should be obtained. It can be acomplished on
7
+ # Integration page of Settings
8
+ # (https://workflow.setka.io/spacename/settings/api
9
+ # where spacename is name of your space).
10
+
3
11
  module Setka
4
12
  module Workflow
5
13
  autoload :Client, 'setka/workflow/client'
@@ -11,22 +19,36 @@ module Setka
11
19
  autoload :Category, 'setka/workflow/category'
12
20
 
13
21
  BASE_ENDPOINT = 'workflow.setka.io'.freeze
22
+
23
+ # Current default version of API
14
24
  API_VERSION = 3
15
25
 
26
+ # Basic Workflow error
16
27
  Error = Class.new(StandardError)
28
+
29
+ # This error is thrown when your client has not been configured
17
30
  ConfigurationError = Class.new(Error)
31
+
32
+ # This error is thrown when format of the param is wrong
18
33
  WrongParamError = Class.new(Error)
34
+
35
+ # This error is thrown when access token is invalid
19
36
  InvalidAccessToken = Class.new(Error)
37
+
38
+ # This error is thrown when Setka Workflow responds with 500
20
39
  InternalServerError = Class.new(Error)
21
40
 
41
+ # Clears current client
22
42
  def self.reset!
23
43
  @client = nil
24
44
  end
25
45
 
46
+ # Gets current client
26
47
  def self.client
27
48
  @client ||= Setka::Workflow::Client.new
28
49
  end
29
50
 
51
+ # Workflow client configuration in the global manner
30
52
  def self.configure(&block)
31
53
  reset!
32
54
  client.configure(&block)
@@ -36,6 +58,7 @@ module Setka
36
58
  @logger ||= Logger.new(STDOUT)
37
59
  end
38
60
 
61
+ # Sets custom logger
39
62
  def self.logger=(logger)
40
63
  @logger = logger
41
64
  end
@@ -1,15 +1,49 @@
1
1
  module Setka
2
2
  module Workflow
3
3
  class Category < Resource
4
+ # Methods set to work with çategories
4
5
  class << self
6
+ # Creates a category.
7
+ #
8
+ # @param [Hash] body Attributes of a new category.
9
+ #
10
+ # @param [Hash] options Additional options (explicit HTTP headers,
11
+ # specific Client object).
12
+ #
13
+ # @raise [Workflow::Category] If something went wrong during category's
14
+ # creation.
15
+ #
16
+ # @return [Hash] Hash of category's attibutes.
5
17
  def create(body, options = {})
6
18
  collection(:post, nil, body, options)
7
19
  end
8
20
 
21
+ # Updates a category.
22
+ # @param [Integer] id Category's id
23
+ #
24
+ # @param [Hash] body Category's attributes to update.
25
+ #
26
+ # @param [Hash] options Additional options (explicit HTTP headers,
27
+ # specific Client object).
28
+ #
29
+ # @raise [Workflow::Category] If something went wrong during category's
30
+ # updating.
31
+ #
32
+ # @return [Hash] Hash of category's attibutes.
9
33
  def update(id, body, options = {})
10
34
  member(:patch, id, nil, body, options)
11
35
  end
12
36
 
37
+ # Deletes a category.
38
+ # @param [Integer] id Category's id
39
+ #
40
+ # @param [Hash] options Additional options (explicit HTTP headers,
41
+ # specific Client object).
42
+ #
43
+ # @raise [Workflow::Category] If something went wrong during category's
44
+ # deleting.
45
+ #
46
+ # @return [Hash] Hash of category's attibutes.
13
47
  def delete(id, options = {})
14
48
  member(:delete, id, nil, nil, options)
15
49
  end
@@ -2,10 +2,14 @@ module Setka
2
2
  module Workflow
3
3
  class Resource
4
4
  class << self
5
+ # Abstract operation's execution over a member of a resource.
6
+ #
5
7
  def member(http_verb, id, action = nil, body = nil, options)
6
8
  actual_client(options).send(http_verb, path(action, id), body, options)
7
9
  end
8
10
 
11
+ # Abstract operation's execution over a collection of a resource.
12
+ #
9
13
  def collection(http_verb, action = nil, body = nil, options)
10
14
  actual_client(options).send(http_verb, path(action), body, options)
11
15
  end
@@ -1,19 +1,64 @@
1
1
  module Setka
2
2
  module Workflow
3
3
  class Ticket < Resource
4
+ # Methods set to work with tickets
4
5
  class << self
6
+ # Publishes a ticket.
7
+ #
8
+ # @param [Integer] id Ticket's id.
9
+ #
10
+ # @param [Hash] options Additional options (explicit HTTP headers,
11
+ # specific Client object).
12
+ #
13
+ # @raise [Workflow::Ticket] if a ticket with the given ID could not be found,
14
+ # if the ticket is already published.
15
+ #
16
+ # @return [Hash] Hash of ticket's attibutes.
5
17
  def publish(id, options = {})
6
18
  member(:patch, id, :publish, nil, options)
7
19
  end
8
20
 
21
+ # Unpublishes a ticket.
22
+ #
23
+ # @param [Integer] id Ticket's id.
24
+ #
25
+ # @param [Hash] options Additional options (explicit HTTP headers,
26
+ # specific Client object).
27
+ #
28
+ # @raise [Workflow::Ticket] if a ticket with the given ID could not be found,
29
+ # if the ticket is already unpublished.
30
+ #
31
+ # @return [Hash] Hash of ticket's attibutes.
9
32
  def unpublish(id, options = {})
10
33
  member(:patch, id, :unpublish, nil, options)
11
34
  end
12
35
 
36
+ # Updates a ticket.
37
+ #
38
+ # @param [Integer] id Ticket's id.
39
+ #
40
+ # @param [Hash] body Hash with ticket's attributes to update.
41
+ #
42
+ # @param [Hash] options Additional options (explicit HTTP headers,
43
+ # specific Client object).
44
+ #
45
+ # @raise [Workflow::Ticket] if a ticket with the given ID could not be found,
46
+ # if format of some attribute(s) is wrong (e.g. date and published_at
47
+ # should be passed as unix timestamps).
48
+ # @return [Hash] Hash of ticket's attibutes.
13
49
  def update(id, body, options = {})
14
50
  member(:patch, id, nil, body, options)
15
51
  end
16
52
 
53
+ # Sync ticket's analytics.
54
+ #
55
+ # @param [Hash] body Hash with ticket's attributes to update.
56
+ #
57
+ # @param [Hash] options Additional options (explicit HTTP headers,
58
+ # specific Client object).
59
+ #
60
+ # @return [Array] Array of hashes with ticket's views and comment counts
61
+ # and the result of syncing.
17
62
  def sync_analytics(body, options = {})
18
63
  collection(:patch, :sync_analytics, body, options)
19
64
  end
@@ -1,5 +1,5 @@
1
1
  module Setka
2
2
  module Workflow
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: setka-workflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Kovalevsky
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-01 00:00:00.000000000 Z
11
+ date: 2017-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -90,6 +90,7 @@ files:
90
90
  - ".gitignore"
91
91
  - ".rspec"
92
92
  - ".travis.yml"
93
+ - CHANGELOG.md
93
94
  - CODE_OF_CONDUCT.md
94
95
  - Gemfile
95
96
  - LICENSE.txt