oma 0.0.1a
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.
- data/lib/opensrs/oma.rb +133 -0
- metadata +96 -0
data/lib/opensrs/oma.rb
ADDED
@@ -0,0 +1,133 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'net/https'
|
3
|
+
require 'addressable/uri'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module OpenSRS
|
7
|
+
module JsonRPC
|
8
|
+
class Client
|
9
|
+
|
10
|
+
def initialize(url, creds)
|
11
|
+
@base = url
|
12
|
+
@creds = creds
|
13
|
+
end
|
14
|
+
|
15
|
+
def request(method, params = {})
|
16
|
+
params["credentials"] = @creds
|
17
|
+
|
18
|
+
uri = URI.parse( @base + "/" + method.to_s)
|
19
|
+
|
20
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
21
|
+
http.use_ssl = true
|
22
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
23
|
+
|
24
|
+
request = Net::HTTP::Post.new( uri.request_uri )
|
25
|
+
request["Content-Type"] = "application/json"
|
26
|
+
request.body = params.to_json
|
27
|
+
|
28
|
+
response = http.request( request )
|
29
|
+
return JSON.parse(response.read_body)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class InvalidCredentials < Exception; end
|
35
|
+
|
36
|
+
module ErrorHandler
|
37
|
+
def valid?( response )
|
38
|
+
unless response["success"]
|
39
|
+
if response["error"] =~ /Invalid credentials supplied in request/
|
40
|
+
raise InvalidCredentials, response["error"]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
response
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class OMA < JsonRPC::Client
|
48
|
+
VERSION = '0.01'
|
49
|
+
|
50
|
+
include ErrorHandler
|
51
|
+
|
52
|
+
attr_accessor :url
|
53
|
+
attr_accessor :username
|
54
|
+
attr_accessor :password
|
55
|
+
attr_reader :methods
|
56
|
+
|
57
|
+
def initialize( opt={} )
|
58
|
+
OMA.create_methods
|
59
|
+
@methods = METHODS
|
60
|
+
|
61
|
+
@username = opt[:username] || ''
|
62
|
+
@password = opt[:password] || ''
|
63
|
+
|
64
|
+
@url = opt[:url] || 'https://admin.a.hostedemail.com/api'
|
65
|
+
@credentials = { :client => "Ruby OpenSRS::OMA 0.01", :user => @username, :password => @password }
|
66
|
+
super( @url, @credentials )
|
67
|
+
end
|
68
|
+
|
69
|
+
METHODS = %w(
|
70
|
+
add_role
|
71
|
+
authenticate
|
72
|
+
change_company
|
73
|
+
change_company_bulletin
|
74
|
+
change_domain
|
75
|
+
change_domain_bulletin
|
76
|
+
change_user
|
77
|
+
change_brand
|
78
|
+
create_workgroup
|
79
|
+
delete_company
|
80
|
+
delete_domain
|
81
|
+
delete_user
|
82
|
+
delete_workgroup
|
83
|
+
echo
|
84
|
+
generate_token
|
85
|
+
get_company
|
86
|
+
get_company_bulletin
|
87
|
+
get_company_changes
|
88
|
+
get_deleted_contacts
|
89
|
+
get_deleted_messages
|
90
|
+
get_domain
|
91
|
+
get_domain_bulletin
|
92
|
+
get_domain_changes
|
93
|
+
get_user
|
94
|
+
get_user_attribute_history
|
95
|
+
get_user_changes
|
96
|
+
get_user_messages
|
97
|
+
get_valid_languages
|
98
|
+
get_valid_timezones
|
99
|
+
migration_add
|
100
|
+
migration_jobs
|
101
|
+
migration_status
|
102
|
+
migration_threads
|
103
|
+
migration_trace
|
104
|
+
move_user_messages
|
105
|
+
post_domain_bulletin
|
106
|
+
post_company_bulletin
|
107
|
+
remove_role
|
108
|
+
rename_user
|
109
|
+
restore_deleted_contacts
|
110
|
+
restore_deleted_messages
|
111
|
+
restore_domain
|
112
|
+
restore_user
|
113
|
+
search_brand_members
|
114
|
+
search_brands
|
115
|
+
search_companies
|
116
|
+
search_domains
|
117
|
+
search_users
|
118
|
+
search_workgroups
|
119
|
+
set_role
|
120
|
+
stats_summary
|
121
|
+
stats_list
|
122
|
+
stats_snapshot )
|
123
|
+
|
124
|
+
def self.create_methods
|
125
|
+
METHODS.each do |method|
|
126
|
+
define_method method do |*argv|
|
127
|
+
valid?( request method, *argv )
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
metadata
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oma
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3314893
|
5
|
+
prerelease: true
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1a
|
10
|
+
version: 0.0.1a
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Peter Blair
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-11-15 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: addressable
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: json
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id002
|
49
|
+
description: Communicate with OpenSRS' Email Platform using the OMA protocol
|
50
|
+
email: petermblair@gmail.com
|
51
|
+
executables: []
|
52
|
+
|
53
|
+
extensions: []
|
54
|
+
|
55
|
+
extra_rdoc_files: []
|
56
|
+
|
57
|
+
files:
|
58
|
+
- lib/opensrs/oma.rb
|
59
|
+
has_rdoc: true
|
60
|
+
homepage: http://rubygems.org/gems/oma
|
61
|
+
licenses: []
|
62
|
+
|
63
|
+
post_install_message:
|
64
|
+
rdoc_options: []
|
65
|
+
|
66
|
+
require_paths:
|
67
|
+
- lib
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ">"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
hash: 25
|
83
|
+
segments:
|
84
|
+
- 1
|
85
|
+
- 3
|
86
|
+
- 1
|
87
|
+
version: 1.3.1
|
88
|
+
requirements: []
|
89
|
+
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 1.3.7
|
92
|
+
signing_key:
|
93
|
+
specification_version: 3
|
94
|
+
summary: OpenSRS's OMA Ruby client library
|
95
|
+
test_files: []
|
96
|
+
|