megam_api 0.51 → 0.52

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: 2190488497d9f4c3e3d06fed921715e63f354749
4
- data.tar.gz: ac35a2d515f0a8cdbcb9cb680647e8b89d8c6e00
3
+ metadata.gz: efb3b538b59b4202914e5b5258d6116ed2fd3147
4
+ data.tar.gz: 43a27dd9a928bb3428793c5c0e6dd174352e410e
5
5
  SHA512:
6
- metadata.gz: da5463e5e51f4d92c2b33ccb8b90bcb414e8465977b71971349af5d6b3b1ae18f34017f944449f0a2adfa6efe8f6fdd3138ba0828058be2daee19ae96bc25ef2
7
- data.tar.gz: 3d13d853ebaa5368d88d0c6a633fd56da906430ed5b6a48686d047736ca27c33334b061499472550126d148f47cbbed59affbadc63669872fbf2c441fbf247f1
6
+ metadata.gz: 04259a55304074084b0bbbf5951b184bcefddae9bbf2dd459e403d2a0a6f6f1616b862f91377d67665a67e98d9ed5d22be43609c25b6160ad07b29f6d43f25df
7
+ data.tar.gz: ce62a8c7dccf35fa9ac8cc0e342c4f352533c0b3ad2825d65799e4824b85c56e7ef349ab482781e36e845324d295eca97b364bd2f938d20bddfafe1d0300a2d8
@@ -37,6 +37,7 @@ require "megam/api/billings"
37
37
  require "megam/api/credithistories"
38
38
  require "megam/api/discounts"
39
39
  require "megam/api/subscriptions"
40
+ require "megam/api/promos"
40
41
 
41
42
  require "megam/core/server_api"
42
43
  require "megam/core/config"
@@ -75,6 +76,7 @@ require "megam/core/cat_request"
75
76
  require "megam/core/cat_request_collection"
76
77
  require "megam/core/event"
77
78
 
79
+
78
80
  require "megam/core/availableunits_collection"
79
81
  require "megam/core/availableunits"
80
82
  require "megam/core/balances_collection"
@@ -89,6 +91,7 @@ require "megam/core/discounts_collection"
89
91
  require "megam/core/discounts"
90
92
  require "megam/core/subscriptions_collection"
91
93
  require "megam/core/subscriptions"
94
+ require "megam/core/promos"
92
95
 
93
96
  module Megam
94
97
  class API
@@ -0,0 +1,18 @@
1
+ module Megam
2
+ class API
3
+
4
+
5
+ def get_promos(id)
6
+ @options = {:path => "/promos/#{id}", :body => ""}.merge(@options)
7
+
8
+ request(
9
+ :expects => 200,
10
+ :method => :get,
11
+ :body => @options[:body]
12
+ )
13
+ end
14
+
15
+
16
+
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  module Megam
2
2
  class API
3
- VERSION = "0.51"
3
+ VERSION = "0.52"
4
4
  end
5
5
  end
@@ -65,8 +65,9 @@ module Megam
65
65
  MEGAM_SSHKEYCOLLECTION = "Megam::SshKeyCollection".freeze
66
66
  MEGAM_SUBSCRIPTIONS = "Megam::Subscriptions".freeze
67
67
  MEGAM_SUBSCRIPTIONSCOLLECTION = "Megam::SubscriptionsCollection".freeze
68
-
69
-
68
+ MEGAM_PROMOS = "Megam::Promos".freeze
69
+
70
+
70
71
  class <<self
71
72
  # Increase the max nesting for JSON, which defaults
72
73
  # to 19, and isn't enough for some (for example, a Node within a Node)
@@ -225,6 +226,8 @@ module Megam
225
226
  Megam::Subscriptions
226
227
  when MEGAM_SUBSCRIPTIONSCOLLECTION
227
228
  Megam::SubscriptionsCollection
229
+ when MEGAM_PROMOS
230
+ Megam::Promos
228
231
  else
229
232
  raise JSON::ParserError, "Unsupported `json_class` type '#{json_class}'"
230
233
  end
@@ -0,0 +1,161 @@
1
+ ##
2
+ ## Copyright [2013-2015] [Megam Systems]
3
+ ##
4
+ ## Licensed under the Apache License, Version 2.0 (the "License");
5
+ ## you may not use this file except in compliance with the License.
6
+ ## You may obtain a copy of the License at
7
+ ##
8
+ ## http://www.apache.org/licenses/LICENSE-2.0
9
+ ##
10
+ ## Unless required by applicable law or agreed to in writing, software
11
+ ## distributed under the License is distributed on an "AS IS" BASIS,
12
+ ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ ## See the License for the specific language governing permissions and
14
+ ## limitations under the License.
15
+ ##
16
+ module Megam
17
+ class Promos < Megam::ServerAPI
18
+ def initialize(email=nil, api_key=nil)
19
+ @id = nil
20
+ @code = nil
21
+ @amount = nil
22
+ @created_at = nil
23
+ @some_msg = {}
24
+ super(email, api_key)
25
+ end
26
+
27
+ def promos
28
+ self
29
+ end
30
+
31
+ def id(arg=nil)
32
+ if arg != nil
33
+ @id = arg
34
+ else
35
+ @id
36
+ end
37
+ end
38
+
39
+ def code(arg=nil)
40
+ if arg != nil
41
+ @code = arg
42
+ else
43
+ @code
44
+ end
45
+ end
46
+
47
+ def amount(arg=nil)
48
+ if arg != nil
49
+ @amount = arg
50
+ else
51
+ @amount
52
+ end
53
+ end
54
+
55
+ def created_at(arg=nil)
56
+ if arg != nil
57
+ @created_at = arg
58
+ else
59
+ @created_at
60
+ end
61
+ end
62
+
63
+
64
+
65
+ def some_msg(arg=nil)
66
+ if arg != nil
67
+ @some_msg = arg
68
+ else
69
+ @some_msg
70
+ end
71
+ end
72
+
73
+ def error?
74
+ crocked = true if (some_msg.has_key?(:msg_type) && some_msg[:msg_type] == "error")
75
+ end
76
+
77
+ # Transform the ruby obj -> to a Hash
78
+ def to_hash
79
+ index_hash = Hash.new
80
+ index_hash["json_claz"] = self.class.name
81
+ index_hash["id"] = id
82
+ index_hash["code"] = code
83
+ index_hash["amount"] = amount
84
+ index_hash["created_at"] = created_at
85
+ index_hash
86
+ end
87
+
88
+ # Serialize this object as a hash: called from JsonCompat.
89
+ # Verify if this called from JsonCompat during testing.
90
+ def to_json(*a)
91
+ for_json.to_json(*a)
92
+ end
93
+
94
+ def for_json
95
+ result = {
96
+ "id" => id,
97
+ "code" => code,
98
+ "amount" => amount,
99
+ "created_at" => created_at
100
+ }
101
+ result
102
+ end
103
+
104
+ def self.json_create(o)
105
+ promos = new
106
+ promos.id(o["id"]) if o.has_key?("id")
107
+ promos.code(o["code"]) if o.has_key?("code")
108
+ promos.amount(o["amount"]) if o.has_key?("amount")
109
+ promos.created_at(o["created_at"]) if o.has_key?("created_at")
110
+ #success or error
111
+ promos.some_msg[:code] = o["code"] if o.has_key?("code")
112
+ promos.some_msg[:msg_type] = o["msg_type"] if o.has_key?("msg_type")
113
+ promos.some_msg[:msg]= o["msg"] if o.has_key?("msg")
114
+ promos.some_msg[:links] = o["links"] if o.has_key?("links")
115
+ promos
116
+ end
117
+
118
+ def self.from_hash(o,tmp_email=nil, tmp_api_key=nil)
119
+ promos = self.new(tmp_email, tmp_api_key)
120
+ promos.from_hash(o)
121
+ promos
122
+ end
123
+
124
+ def from_hash(o)
125
+ @id = o[:id] if o.has_key?(:id)
126
+ @code = o[:name] if o.has_key?(:name)
127
+ @amount = o[:credit] if o.has_key?(:credit)
128
+ @created_at = o[:created_at] if o.has_key?(:created_at)
129
+ self
130
+ end
131
+
132
+ def self.create(params)
133
+ promo = from_hash(params,params["email"], params["api_key"])
134
+ promo.create
135
+ end
136
+
137
+ # Create the predef via the REST API
138
+ def create
139
+ megam_rest.post_promos(to_hash) #WONT BE USED AS OF NOW
140
+ end
141
+
142
+ def self.list(params)
143
+ promos = self.new(params["email"], params["api_key"])
144
+ promos.megam_rest.get_promos
145
+ end
146
+
147
+ # Show a particular promo by name,
148
+ # Megam::Promos
149
+ def self.show(params)
150
+ pre = self.new(params["email"], params["api_key"])
151
+ pre.megam_rest.get_promos(params["email"])
152
+ end
153
+
154
+
155
+
156
+ def to_s
157
+ Megam::Stuff.styled_hash(to_hash)
158
+ end
159
+
160
+ end
161
+ end
@@ -69,9 +69,9 @@ def sandbox_name
69
69
  end
70
70
 
71
71
  def sandbox_apikey
72
- "uAqN7PFR5MyCoV6XR7xjrQ=="
72
+ "er0zMGyO2-IN9VovVccYgA=="
73
73
  end
74
74
 
75
75
  def sandbox_email
76
- "dvader082@gmail.com"
76
+ "morpheyesh@gmail.com"
77
77
  end
@@ -0,0 +1,12 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/test_helper")
2
+
3
+ class TestApps < MiniTest::Unit::TestCase
4
+
5
+ def test_get_promos()
6
+ response = megams.get_promos("megamiscool")
7
+ assert_equal(200, response.status)
8
+
9
+ end
10
+
11
+ end
12
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: megam_api
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.51'
4
+ version: '0.52'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rajthilak, Kishorekumar Neelamegam, Thomas Alrin, Yeshwanth Kumar, Subash Sethurajan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-10 00:00:00.000000000 Z
11
+ date: 2015-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon
@@ -151,6 +151,7 @@ files:
151
151
  - lib/megam/api/marketplaces.rb
152
152
  - lib/megam/api/organizations.rb
153
153
  - lib/megam/api/predef_clouds.rb
154
+ - lib/megam/api/promos.rb
154
155
  - lib/megam/api/requests.rb
155
156
  - lib/megam/api/sshkeys.rb
156
157
  - lib/megam/api/subscriptions.rb
@@ -197,6 +198,7 @@ files:
197
198
  - lib/megam/core/organizations_collection.rb
198
199
  - lib/megam/core/predefcloud.rb
199
200
  - lib/megam/core/predefcloud_collection.rb
201
+ - lib/megam/core/promos.rb
200
202
  - lib/megam/core/request.rb
201
203
  - lib/megam/core/request_collection.rb
202
204
  - lib/megam/core/server_api.rb
@@ -231,6 +233,7 @@ files:
231
233
  - test/test_marketplaces.rb
232
234
  - test/test_organizations.rb
233
235
  - test/test_predefclouds.rb
236
+ - test/test_promos.rb
234
237
  - test/test_requests.rb
235
238
  - test/test_sshkeys.rb
236
239
  - test/test_subscriptions.rb
@@ -281,6 +284,7 @@ test_files:
281
284
  - test/test_marketplaces.rb
282
285
  - test/test_organizations.rb
283
286
  - test/test_predefclouds.rb
287
+ - test/test_promos.rb
284
288
  - test/test_requests.rb
285
289
  - test/test_sshkeys.rb
286
290
  - test/test_subscriptions.rb