onlyoffice_api 0.7 → 0.12.0

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
  SHA256:
3
- metadata.gz: 1830c70d5adb88be136ed8754fbab4237f09215af5044e0c7fc19b595ee9b7a2
4
- data.tar.gz: 58be0866eede5603be83fd7fcb2e6dc0ea91240c168ef7d2d64640e83f80688b
3
+ metadata.gz: bdbcfc630b8186f0ce844c741c43a3a80873823d5cd826a4499490c1b07600df
4
+ data.tar.gz: 51be328e7d6d9a061baf729481d22b498fd84502d4f74d5e898c6820e9cd9516
5
5
  SHA512:
6
- metadata.gz: 0ccb2919484583fee863be395d0cfa34149e4c8264cb2abd1d665dfcac939a8b6992a11586792693129efd4de9d082749a1048bfbefe656390e004d4079bdb6d
7
- data.tar.gz: 5069dc9a84c740ee1888c3950cb93bc4d10ea8643d3a176ae91bce70855f9b80950500b31b34632f9b02baac393bfee563a26d5e7af6df7820afc5dcf51678ae
6
+ metadata.gz: beddc9c36885235acef44a1b2d2306c18c7d57dd91e94a267d219937e3deadcce2462292409f62dab2a220a5c86629651b997eb30fb996d8766b6c406ec5d960
7
+ data.tar.gz: 944ac964b667783207b6e95541456f1168c2f216f6041e8e97202c4ea99bcde87fa86345878f6b1a654fd4024bbda735900c9f9064b0cc5dcf0e2e1f1505a6e2
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'onlyoffice_api/onlyoffice_api_instance'
3
4
  require_relative 'teamlab/version'
4
5
  require_relative 'teamlab/config'
5
6
  require_relative 'teamlab/request'
@@ -14,6 +15,7 @@ require_relative 'teamlab/modules/crm'
14
15
  require_relative 'teamlab/modules/community'
15
16
  require_relative 'teamlab/modules/calendar'
16
17
  require_relative 'teamlab/modules/mail'
18
+ require_relative 'teamlab/modules/mailserver'
17
19
  require_relative 'teamlab/modules/feed'
18
20
 
19
21
  module Teamlab
@@ -57,6 +59,10 @@ module Teamlab
57
59
  @mail ||= Teamlab::Mail.new
58
60
  end
59
61
 
62
+ def self.mailserver
63
+ @mailserver ||= Teamlab::MailServer.new
64
+ end
65
+
60
66
  def self.feed
61
67
  @feed ||= Teamlab::Feed.new
62
68
  end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../teamlab/config'
4
+
5
+ module Teamlab
6
+ # Class for multiuser instance
7
+ class OnlyofficeApiInstance
8
+ def initialize(params = {})
9
+ @config = Config.new(params)
10
+ auth_response = Teamlab::Request.new(@config, 'authentication').post('', userName: @config.username, password: @config.password).body
11
+ raise "Cannot get response token for #{auth_response}" if auth_response['response'].nil? || auth_response['response']['token'].nil?
12
+
13
+ @config.token = auth_response['response']['token']
14
+ @config.headers = { 'authorization' => @config.token }
15
+ end
16
+
17
+ def people
18
+ @people ||= Teamlab::People.new(@config)
19
+ end
20
+
21
+ def group
22
+ @group ||= Teamlab::Group.new(@config)
23
+ end
24
+
25
+ def settings
26
+ @settings ||= Teamlab::Settings.new(@config)
27
+ end
28
+
29
+ def files
30
+ @files ||= Teamlab::Files.new(@config)
31
+ end
32
+
33
+ def project
34
+ @project ||= Teamlab::Project.new(@config)
35
+ end
36
+
37
+ def portal
38
+ @portal ||= Teamlab::Portal.new(@config)
39
+ end
40
+
41
+ def crm
42
+ @crm ||= Teamlab::Crm.new(@config)
43
+ end
44
+
45
+ def community
46
+ @community ||= Teamlab::Community.new(@config)
47
+ end
48
+
49
+ def calendar
50
+ @calendar ||= Teamlab::Calendar.new(@config)
51
+ end
52
+
53
+ def mail
54
+ @mail ||= Teamlab::Mail.new(@config)
55
+ end
56
+
57
+ def mailserver
58
+ @mailserver ||= Teamlab::MailServer.new(@config)
59
+ end
60
+
61
+ def feed
62
+ @feed ||= Teamlab::Feed.new(@config)
63
+ end
64
+ end
65
+ end
@@ -5,10 +5,10 @@ require_relative 'request'
5
5
  module Teamlab
6
6
  attr_reader :config
7
7
 
8
- def self.configure(&_block)
8
+ def self.configure(&block)
9
9
  @config ||= Config.new
10
- yield @config if block_given?
11
- auth_response = Teamlab::Request.new('authentication').post('', userName: @config.username, password: @config.password).body
10
+ yield @config if block
11
+ auth_response = Teamlab::Request.new(nil, 'authentication').post('', userName: @config.username, password: @config.password).body
12
12
  raise "Cannot get response token for #{auth_response}" if auth_response['response'].nil? || auth_response['response']['token'].nil?
13
13
 
14
14
  @config.token = auth_response['response']['token']
@@ -24,12 +24,15 @@ module Teamlab
24
24
  # @return [Net::HTTP::Proxy] connection proxy
25
25
  attr_accessor :proxy
26
26
 
27
- def initialize
27
+ def initialize(params = {})
28
28
  default_configuration
29
+ @server = params[:server]
30
+ @username = params[:username]
31
+ @password = params[:password]
29
32
  end
30
33
 
31
34
  def default_configuration
32
- @server = 'https://teamlab.com'
35
+ @server = 'https://onlyoffice.com'
33
36
  @api_path = '/api/2.0/'
34
37
  @api_additive = ''
35
38
  @username = 'user'
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Teamlab
4
4
  class Calendar
5
- def initialize
6
- @request = Teamlab::Request.new('calendar')
5
+ def initialize(config = nil)
6
+ @request = Teamlab::Request.new(config, 'calendar')
7
7
  end
8
8
 
9
9
  def get_default_access
@@ -13,8 +13,8 @@ module Teamlab
13
13
  include CommunityForums
14
14
  include CommunityWiki
15
15
 
16
- def initialize
17
- @request = Teamlab::Request.new('community')
16
+ def initialize(config = nil)
17
+ @request = Teamlab::Request.new(config, 'community')
18
18
  end
19
19
  end
20
20
  end
@@ -28,7 +28,7 @@ module Teamlab
28
28
  end
29
29
 
30
30
  def get_bookmarks_by_tag(tag)
31
- @request.get(['bookmark', 'tag', tag.to_s])
31
+ @request.get(['bookmark', "bytag?tag=#{tag.to_s.gsub(' ', '%20')}"])
32
32
  end
33
33
 
34
34
  def get_recently_added_bookmarks
@@ -25,8 +25,8 @@ module Teamlab
25
25
  include CrmTasks
26
26
  include CrmUserFields
27
27
 
28
- def initialize
29
- @request = Teamlab::Request.new('crm')
28
+ def initialize(config = nil)
29
+ @request = Teamlab::Request.new(config, 'crm')
30
30
  end
31
31
  end
32
32
  end
@@ -62,7 +62,6 @@ module Teamlab
62
62
  end
63
63
 
64
64
  def update_invoice(id, options = {})
65
- options[:id] = id
66
65
  @request.put(['invoice', id.to_s], options)
67
66
  end
68
67
 
@@ -83,7 +82,6 @@ module Teamlab
83
82
  end
84
83
 
85
84
  def update_invoice_line(invoice_line_id, invoice_id, options = {})
86
- options[:id] = invoice_line_id
87
85
  options[:invoiceId] = invoice_id
88
86
  @request.put(['invoiceline', invoice_line_id], options)
89
87
  end
@@ -111,7 +109,7 @@ module Teamlab
111
109
  end
112
110
 
113
111
  def delete_invoice_line(id)
114
- @request.delete(['invoiceline', id.to_s], id: id)
112
+ @request.delete(['invoiceline', id.to_s])
115
113
  end
116
114
 
117
115
  # @param invoice_item_id [Integer] id of invoice
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Teamlab
4
4
  class Feed
5
- def initialize
6
- @request = Teamlab::Request.new('feed')
5
+ def initialize(config = nil)
6
+ @request = Teamlab::Request.new(config, 'feed')
7
7
  end
8
8
 
9
9
  # TODO: find out how it should work api.onlyoffice.com missing documentation
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Teamlab
4
4
  class Files
5
- def initialize
6
- @request = Teamlab::Request.new('files')
5
+ def initialize(config = nil)
6
+ @request = Teamlab::Request.new(config, 'files')
7
7
  end
8
8
 
9
9
  # region File Creation
@@ -6,8 +6,8 @@ module Teamlab
6
6
  class Group
7
7
  include GroupHelper
8
8
 
9
- def initialize
10
- @request = Teamlab::Request.new('group')
9
+ def initialize(config = nil)
10
+ @request = Teamlab::Request.new(config, 'group')
11
11
  end
12
12
 
13
13
  def get_groups
@@ -25,8 +25,13 @@ module Teamlab
25
25
  include MailSettings
26
26
  include MailTags
27
27
 
28
- def initialize
29
- @request = Teamlab::Request.new('mail')
28
+ def initialize(config = nil)
29
+ @request = Teamlab::Request.new(config, 'mail')
30
+ end
31
+
32
+ # @return [Teamlab::Response] Returns all Mail running operations (only complex)
33
+ def operations
34
+ @request.get(%w[operations])
30
35
  end
31
36
  end
32
37
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'mailserver/domains'
4
+ require_relative 'mailserver/mailboxes'
5
+
6
+ module Teamlab
7
+ # API for MailServer api namespace
8
+ # For example
9
+ # https://api.onlyoffice.com/portals/section/mailserver/addressdata
10
+ class MailServer
11
+ include MailserverDomains
12
+ include MailserverMailboxes
13
+
14
+ def initialize(config = nil)
15
+ @request = Teamlab::Request.new(config, 'mailserver')
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Teamlab
4
+ # Methods for working with mailserver domains
5
+ module MailserverDomains
6
+ # @return [Hash] Returns list of the web domains associated with tenant
7
+ def tenant_domain_list
8
+ @request.get(%w[domains get])
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Teamlab
4
+ # Methods for working with mailserver mailboxes
5
+ module MailserverMailboxes
6
+ # @param name [String] name of mailbox
7
+ # @param local_part [String] local part of mailbox
8
+ # @param domain_id [Integer] id of domain
9
+ # @param user_id [Integer] id of user
10
+ # @param notify_current [True, False] Send message to creating mailbox's address
11
+ # @param notify_profile [True, False] Send message to email from user profile
12
+ # @return [Hash] Add mailbox
13
+ def add_mailbox(name: nil,
14
+ local_part: nil,
15
+ domain_id: nil,
16
+ user_id: nil,
17
+ notify_current: true,
18
+ notify_profile: true)
19
+ @request.post(%w[mailboxes add],
20
+ name: name,
21
+ local_part: local_part,
22
+ domain_id: domain_id,
23
+ user_id: user_id,
24
+ notifyCurrent: notify_current,
25
+ notifyProfile: notify_profile)
26
+ end
27
+
28
+ # @return [Hash] mailboxes list
29
+ def mailboxes
30
+ @request.get(%w[mailboxes get])
31
+ end
32
+
33
+ # Deletes the selected mailbox
34
+ # @param id [Integer] id of mailbox
35
+ # @return [Hash] result of mailbox deletion
36
+ def delete_mailbox(id)
37
+ @request.delete(['mailboxes', 'remove', id.to_s])
38
+ end
39
+ end
40
+ end
@@ -5,8 +5,8 @@ module Teamlab
5
5
  class People
6
6
  include PeopleReassign
7
7
 
8
- def initialize
9
- @request = Teamlab::Request.new('people')
8
+ def initialize(config = nil)
9
+ @request = Teamlab::Request.new(config, 'people')
10
10
  end
11
11
 
12
12
  def get_people
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Teamlab
4
4
  class Portal
5
- def initialize
6
- @request = Teamlab::Request.new('portal')
5
+ def initialize(config = nil)
6
+ @request = Teamlab::Request.new(config, 'portal')
7
7
  end
8
8
 
9
9
  def invite_user_url
@@ -30,8 +30,8 @@ module Teamlab
30
30
  include ProjectsTemplates
31
31
  include ProjectsTime
32
32
 
33
- def initialize
34
- @request = Teamlab::Request.new('project')
33
+ def initialize(config = nil)
34
+ @request = Teamlab::Request.new(config, 'project')
35
35
  end
36
36
  end
37
37
  end
@@ -5,8 +5,8 @@ module Teamlab
5
5
  # @return [String] id of global admin of portal
6
6
  GLOBAL_ADMIN_ID = '00000000-0000-0000-0000-000000000000'
7
7
 
8
- def initialize
9
- @request = Teamlab::Request.new('settings')
8
+ def initialize(config = nil)
9
+ @request = Teamlab::Request.new(config, 'settings')
10
10
  end
11
11
 
12
12
  def get_settings
@@ -9,7 +9,8 @@ module Teamlab
9
9
  class Request
10
10
  include HTTParty
11
11
 
12
- def initialize(api_additive)
12
+ def initialize(config, api_additive)
13
+ @config = config
13
14
  @api_additive = api_additive.to_s
14
15
  end
15
16
 
@@ -49,16 +50,32 @@ module Teamlab
49
50
  response
50
51
  end
51
52
 
53
+ def server
54
+ @config&.server || Teamlab.config.server
55
+ end
56
+
57
+ def api_path
58
+ @config&.api_path || Teamlab.config.api_path
59
+ end
60
+
61
+ def headers
62
+ @config&.headers || Teamlab.config.headers
63
+ end
64
+
65
+ def proxy
66
+ @config&.proxy || Teamlab.config.proxy
67
+ end
68
+
52
69
  def generate_request_url(command)
53
- Teamlab.config.server + Teamlab.config.api_path + @api_additive + command
70
+ server + api_path + @api_additive + command
54
71
  end
55
72
 
56
73
  def parse_args(args, type)
57
- command = args.first.instance_of?(Array) ? '/' + args.shift.join('/') : args.shift.to_s
74
+ command = args.first.instance_of?(Array) ? "/#{args.shift.join('/')}" : args.shift.to_s
58
75
  opts = {}
59
76
  opts[:body] = args.last.instance_of?(Hash) ? args.pop : {}
60
77
  opts[:body].delete_if { |_key, value| value == [] }
61
- opts[:headers] = Teamlab.config.headers
78
+ opts[:headers] = headers
62
79
  opts = init_proxy(opts)
63
80
  opts[:query] = opts.delete(:body) if type == :get
64
81
  [command, opts]
@@ -67,12 +84,12 @@ module Teamlab
67
84
  # @param opts [Hash] options to init
68
85
  # @return [Hash] options
69
86
  def init_proxy(opts)
70
- return opts unless Teamlab.config.proxy
87
+ return opts unless proxy
71
88
 
72
- opts[:http_proxyaddr] ||= Teamlab.config.proxy.proxy_address
73
- opts[:http_proxyport] ||= Teamlab.config.proxy.proxy_port
74
- opts[:http_proxyuser] ||= Teamlab.config.proxy.proxy_user
75
- opts[:http_proxypass] ||= Teamlab.config.proxy.proxy_pass
89
+ opts[:http_proxyaddr] ||= proxy.proxy_address
90
+ opts[:http_proxyport] ||= proxy.proxy_port
91
+ opts[:http_proxyuser] ||= proxy.proxy_user
92
+ opts[:http_proxypass] ||= proxy.proxy_pass
76
93
  opts
77
94
  end
78
95
  end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Teamlab
4
+ # Exception if in response no JSON body
5
+ class NoJsonInResponce < StandardError; end
6
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'responce/custom_exceptions'
4
+
3
5
  module Teamlab
4
6
  class Response
5
7
  attr_reader :body, :error, :code, :success
@@ -9,7 +11,7 @@ module Teamlab
9
11
  @success = @code < 400
10
12
  err_msg = generate_err_msg(http_response) if @code >= 400
11
13
  if @success
12
- @body = http_response.to_hash
14
+ handle_success_responce(http_response)
13
15
  else
14
16
  raise TimeoutError, 'Portal is warming up' if http_response.parsed_response.include?('portal is being warmed')
15
17
  raise "Error #{@code}\n#{err_msg}" if @code >= 400
@@ -21,10 +23,10 @@ module Teamlab
21
23
 
22
24
  def generate_err_msg(http_response)
23
25
  "API request failed\n\noriginal request:\n"\
24
- "#{http_response.request.http_method} #{http_response.request.path}\nbody: "\
25
- "#{JSON.pretty_generate(http_response.request.options[:body])}"\
26
- "\n\nresponse:\n"\
27
- "#{prettify_response(http_response.parsed_response)}"
26
+ "#{http_response.request.http_method} #{http_response.request.path}\nbody: "\
27
+ "#{JSON.pretty_generate(http_response.request.options[:body])}"\
28
+ "\n\nresponse:\n"\
29
+ "#{prettify_response(http_response.parsed_response)}"
28
30
  end
29
31
 
30
32
  def prettify_response(msg)
@@ -37,5 +39,42 @@ module Teamlab
37
39
  def data
38
40
  @body['response']
39
41
  end
42
+
43
+ private
44
+
45
+ # Sometime in strange situation, like maybe nginx errors
46
+ # API requests return not JSON, but html or other data
47
+ # @param [Teamlab::Responce] responce to check
48
+ # @return [Nil] is body responce correct and raise exception in any other situation
49
+ def check_responce_body(responce)
50
+ return if stream_data_request?(responce)
51
+
52
+ JSON.parse(responce.body)
53
+ rescue JSON::ParserError => e
54
+ request_info = "#{responce.request.http_method} #{responce.request.uri}"
55
+ raise NoJsonInResponce, "Request `#{request_info}` responce body is not a json\n "\
56
+ "Parsing error: \n#{e}\n"
57
+ end
58
+
59
+ # Handle success responce
60
+ # @param [Teamlab::Responce] responce to handle
61
+ # @return [nil] if everything is fine or exception
62
+ def handle_success_responce(responce)
63
+ check_responce_body(responce)
64
+ @body = responce.to_hash
65
+ end
66
+
67
+ # Check if request for stream data
68
+ # Those request has no body, but data stream in responce
69
+ # @param [Teamlab::Responce] responce to check
70
+ # @return [Boolean] result of check
71
+ def stream_data_request?(responce)
72
+ calendar_ical_request_regexp = %r{.*/calendar/\d*/ical/\S*}
73
+ uri = responce.request.uri.to_s
74
+
75
+ return true if calendar_ical_request_regexp.match?(uri)
76
+
77
+ false
78
+ end
40
79
  end
41
80
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Teamlab
4
- VERSION = '0.7'
4
+ VERSION = '0.12.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onlyoffice_api
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.7'
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ONLYOFFICE
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-04-30 00:00:00.000000000 Z
14
+ date: 2021-07-12 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: httparty
@@ -27,20 +27,146 @@ dependencies:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0.16'
30
+ - !ruby/object:Gem::Dependency
31
+ name: codecov
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ - !ruby/object:Gem::Dependency
45
+ name: faker
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '2'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '2'
58
+ - !ruby/object:Gem::Dependency
59
+ name: overcommit
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
30
72
  - !ruby/object:Gem::Dependency
31
73
  name: rake
32
74
  requirement: !ruby/object:Gem::Requirement
33
75
  requirements:
34
76
  - - "~>"
35
77
  - !ruby/object:Gem::Version
36
- version: '13.0'
78
+ version: '13'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '13'
86
+ - !ruby/object:Gem::Dependency
87
+ name: rspec
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '3'
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '3'
100
+ - !ruby/object:Gem::Dependency
101
+ name: rubocop
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.49.0
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: 0.49.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: rubocop-performance
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '1'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '1'
128
+ - !ruby/object:Gem::Dependency
129
+ name: rubocop-rake
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: rubocop-rspec
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '2'
37
149
  type: :development
38
150
  prerelease: false
39
151
  version_requirements: !ruby/object:Gem::Requirement
40
152
  requirements:
41
153
  - - "~>"
42
154
  - !ruby/object:Gem::Version
43
- version: '13.0'
155
+ version: '2'
156
+ - !ruby/object:Gem::Dependency
157
+ name: yard
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 0.9.20
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: 0.9.20
44
170
  description: Ruby Framework to interact with OnlyOffice API 2.0
45
171
  email:
46
172
  - rzagudaev@gmail.com
@@ -51,6 +177,7 @@ extensions: []
51
177
  extra_rdoc_files: []
52
178
  files:
53
179
  - lib/onlyoffice_api.rb
180
+ - lib/onlyoffice_api/onlyoffice_api_instance.rb
54
181
  - lib/teamlab/config.rb
55
182
  - lib/teamlab/modules/calendar.rb
56
183
  - lib/teamlab/modules/community.rb
@@ -87,6 +214,9 @@ files:
87
214
  - lib/teamlab/modules/mail/mail_settings.rb
88
215
  - lib/teamlab/modules/mail/mail_signature.rb
89
216
  - lib/teamlab/modules/mail/mail_tags.rb
217
+ - lib/teamlab/modules/mailserver.rb
218
+ - lib/teamlab/modules/mailserver/domains.rb
219
+ - lib/teamlab/modules/mailserver/mailboxes.rb
90
220
  - lib/teamlab/modules/people.rb
91
221
  - lib/teamlab/modules/people/people_reassign.rb
92
222
  - lib/teamlab/modules/portals.rb
@@ -107,17 +237,18 @@ files:
107
237
  - lib/teamlab/modules/settings.rb
108
238
  - lib/teamlab/name.rb
109
239
  - lib/teamlab/request.rb
240
+ - lib/teamlab/responce/custom_exceptions.rb
110
241
  - lib/teamlab/response.rb
111
242
  - lib/teamlab/version.rb
112
- homepage: https://github.com/ONLYOFFICE/onlyoffice_api
243
+ homepage: https://github.com/ONLYOFFICE/onlyoffice_api_gem
113
244
  licenses:
114
245
  - AGPL-3.0
115
246
  metadata:
116
- bug_tracker_uri: https://github.com/ONLYOFFICE/onlyoffice_api/issues
117
- changelog_uri: https://github.com/ONLYOFFICE/onlyoffice_api/blob/master/CHANGELOG.md
247
+ bug_tracker_uri: https://github.com/ONLYOFFICE/onlyoffice_api_gem/issues
248
+ changelog_uri: https://github.com/ONLYOFFICE/onlyoffice_api_gem/blob/master/CHANGELOG.md
118
249
  documentation_uri: https://www.rubydoc.info/gems/onlyoffice_api
119
- homepage_uri: https://github.com/ONLYOFFICE/onlyoffice_api
120
- source_code_uri: https://github.com/ONLYOFFICE/onlyoffice_api
250
+ homepage_uri: https://github.com/ONLYOFFICE/onlyoffice_api_gem
251
+ source_code_uri: https://github.com/ONLYOFFICE/onlyoffice_api_gem
121
252
  post_install_message:
122
253
  rdoc_options: []
123
254
  require_paths:
@@ -126,14 +257,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
257
  requirements:
127
258
  - - ">="
128
259
  - !ruby/object:Gem::Version
129
- version: '0'
260
+ version: '2.5'
130
261
  required_rubygems_version: !ruby/object:Gem::Requirement
131
262
  requirements:
132
263
  - - ">="
133
264
  - !ruby/object:Gem::Version
134
265
  version: '0'
135
266
  requirements: []
136
- rubygems_version: 3.1.2
267
+ rubygems_version: 3.2.21
137
268
  signing_key:
138
269
  specification_version: 4
139
270
  summary: Ruby gem for OnlyOffice. Formerly known as `teamlab`.