onlyoffice_api 0.7 → 0.12.0

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
  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`.