dynamicloud 1.0.3 → 1.0.4
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 +4 -4
- data/lib/configuration.rb +4 -2
- data/lib/dynamic_criteria.rb +127 -0
- data/lib/dynamic_service.rb +7 -6
- data/lib/dynamicloud/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bad066e296ec6b170770297df97e75683f39c91
|
4
|
+
data.tar.gz: 6523b783917632f2da2c6ccf500e1e2817e09994
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33e6c218c06e6acfb7e65f1a3441689f08b0397ad451d15ac88b562ff64acea0d47301804603bbfc9e223f421d1069099ccdbd949a85398def8df025aa2000c5
|
7
|
+
data.tar.gz: 7d098f3f194a5bfc3f88339333408f09983469f5bca6574334f4d5c3e514ddf79bb31cb12e432881270ae4554e264cedcae73afae39f8e31e4a5e8d7ade9b7e1
|
data/lib/configuration.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
1
3
|
# This class maintains properties about api configuration.
|
2
4
|
# @author Eleazar Gomez
|
3
5
|
# @version 1.0.0
|
@@ -11,7 +13,7 @@ class Configuration
|
|
11
13
|
# Load the current properties in config.yml.
|
12
14
|
def initialize
|
13
15
|
@config = {
|
14
|
-
:url => 'http://
|
16
|
+
:url => 'http://localhost',
|
15
17
|
# this url must be executed using post method
|
16
18
|
:url_get_records => '/api_models/{csk}/{aci}/get_records/{mid}/{count}/{offset}/',
|
17
19
|
# this url must be executed using post method
|
@@ -40,7 +42,7 @@ class Configuration
|
|
40
42
|
:url_update_selection => '/api_records/{csk}/{aci}/update_using_selection/{mid}',
|
41
43
|
# this url must be executed using post method
|
42
44
|
:url_delete_selection => '/api_records/{csk}/{aci}/delete_using_selection/{mid}',
|
43
|
-
:version => '1.0.
|
45
|
+
:version => '1.0.4'
|
44
46
|
}
|
45
47
|
end
|
46
48
|
|
data/lib/dynamic_criteria.rb
CHANGED
@@ -126,6 +126,105 @@ module Dynamicloud
|
|
126
126
|
end
|
127
127
|
# End of EqualCondition class
|
128
128
|
|
129
|
+
class BetweenCondition < Condition
|
130
|
+
|
131
|
+
# Builds an instance with a specific field whose value should be between left and right
|
132
|
+
#
|
133
|
+
# @param field field in this condition
|
134
|
+
# @param left left part of the between condition
|
135
|
+
# @param right right part of the between condition
|
136
|
+
def initialize(field, left, right)
|
137
|
+
@field = field
|
138
|
+
@left = left
|
139
|
+
@right = right
|
140
|
+
end
|
141
|
+
|
142
|
+
# This method will return a String of this condition
|
143
|
+
# @param parent this is the parent of this condition
|
144
|
+
# @return a json
|
145
|
+
def to_record_string(parent)
|
146
|
+
"\"" + @field + "\": { \"$between\": [" + (transform_left_right) + ']}'
|
147
|
+
end
|
148
|
+
|
149
|
+
private
|
150
|
+
def transform_left_right
|
151
|
+
result = (@left.is_a?(String) ? ("\"" + @left + "\"") : @left.to_s)
|
152
|
+
result += ','
|
153
|
+
result + (@right.is_a?(String) ? ("\"" + @right + "\"") : @right.to_s)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
# End of BetweenCondition class
|
157
|
+
|
158
|
+
class ExistsCondition < Condition
|
159
|
+
# Builds an instance with a specific model an alias
|
160
|
+
#
|
161
|
+
# @param model_id Model ID
|
162
|
+
# @param aliass alias to this model
|
163
|
+
def initialize(model_id, aliass, not_exists)
|
164
|
+
@model_id = model_id
|
165
|
+
@aliass = aliass
|
166
|
+
@not_exists = not_exists
|
167
|
+
@conditions = []
|
168
|
+
@joins = []
|
169
|
+
end
|
170
|
+
|
171
|
+
# This method will add a new condition to this ExistsCondition.
|
172
|
+
# *
|
173
|
+
# @param condition new condition to a list of conditions to use
|
174
|
+
# @return this instance of ExistsCondition
|
175
|
+
def add(condition)
|
176
|
+
@conditions.push(condition)
|
177
|
+
self
|
178
|
+
end
|
179
|
+
|
180
|
+
# Add a join to the list of joins
|
181
|
+
#
|
182
|
+
# @param join join clause
|
183
|
+
# @return this instance of ExistsCondition
|
184
|
+
def join(join)
|
185
|
+
@joins.push(join)
|
186
|
+
self
|
187
|
+
end
|
188
|
+
|
189
|
+
# Sets the related alias to the model
|
190
|
+
#
|
191
|
+
# @param aliass related alias to the model
|
192
|
+
def set_alias(aliass)
|
193
|
+
@alias = aliass
|
194
|
+
end
|
195
|
+
|
196
|
+
# Sets the related model to this exists condition.
|
197
|
+
# With this model, you can
|
198
|
+
#
|
199
|
+
# @param model_id related model
|
200
|
+
def set_model(model_id)
|
201
|
+
@model_id = model_id
|
202
|
+
end
|
203
|
+
|
204
|
+
# This method will return a String of this condition
|
205
|
+
#
|
206
|
+
# @param parent this is the parent of this condition
|
207
|
+
# @return a json
|
208
|
+
def to_record_string(parent)
|
209
|
+
built = (@not_exists ? "\"$nexists\"" : "\"$exists\"") + ': { ' + Dynamicloud::API::DynamicloudHelper.build_join_tag(@joins) + ', ' + (@model_id.nil? ? '' : ("\"model\": " + @model_id.to_s + ', ')) + (@aliass.nil? ? '' : ("\"alias\": \"" + @aliass + "\", ")) + "\"where\": {"
|
210
|
+
|
211
|
+
if @conditions.length > 0
|
212
|
+
global = @conditions[0]
|
213
|
+
if @conditions.length > 1
|
214
|
+
@conditions = @conditions[1..@conditions.length]
|
215
|
+
@conditions.each do |condition|
|
216
|
+
global = Dynamicloud::API::Criteria::ANDCondition.new global, condition
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
built = built + global.to_record_string(Dynamicloud::API::Criteria::Condition::ROOT)
|
221
|
+
end
|
222
|
+
|
223
|
+
built + '}}'
|
224
|
+
end
|
225
|
+
end
|
226
|
+
# End of ExistsCondition class
|
227
|
+
|
129
228
|
class GreaterLesser < Condition
|
130
229
|
def initialize(left, right, greater_lesser)
|
131
230
|
@greater_lesser = greater_lesser
|
@@ -369,6 +468,34 @@ module Dynamicloud
|
|
369
468
|
ORCondition.new(left, right)
|
370
469
|
end
|
371
470
|
|
471
|
+
# Builds a between condition
|
472
|
+
#
|
473
|
+
# @param field field in this condition
|
474
|
+
# @param left left part of the between condition
|
475
|
+
# @param right right part of the between condition
|
476
|
+
# @return a new instance of BetweenCondition
|
477
|
+
def self.between(field, left, right)
|
478
|
+
return BetweenCondition.new(field, left, right)
|
479
|
+
end
|
480
|
+
|
481
|
+
# Creates a new instance of ExistsCondition
|
482
|
+
#
|
483
|
+
# @param model_id model ID
|
484
|
+
# @param aliass alias to this model (optional)
|
485
|
+
# @return a new instance of ExistsCondition
|
486
|
+
def self.exists(model_id = nil, aliass = nil)
|
487
|
+
ExistsCondition.new(model_id, aliass, false)
|
488
|
+
end
|
489
|
+
|
490
|
+
# Creates a new instance of ExistsCondition
|
491
|
+
#
|
492
|
+
# @param model_id model ID
|
493
|
+
# @param aliass alias to this model (optional)
|
494
|
+
# @return a new instance of ExistsCondition
|
495
|
+
def self.not_exists(model_id = nil, aliass = nil)
|
496
|
+
ExistsCondition.new(model_id, aliass, true)
|
497
|
+
end
|
498
|
+
|
372
499
|
# It will an in condition using an array of values.
|
373
500
|
# @param left attribute to compare
|
374
501
|
# @param values character values to build IN condition
|
data/lib/dynamic_service.rb
CHANGED
@@ -18,25 +18,26 @@ module DynamicService
|
|
18
18
|
http.connect_timeout = 10
|
19
19
|
|
20
20
|
headers['User-Agent'] = 'Dynamicloud client'
|
21
|
-
headers['
|
22
|
-
headers['
|
21
|
+
headers['API_Version'] = Configuration::PROPERTIES.get_property :version
|
22
|
+
headers['Dynamicloud_API'] = 'Ruby'
|
23
|
+
headers['Accept-Encoding'] = 'gzip, deflate'
|
23
24
|
|
24
25
|
# download file
|
25
26
|
if destiny
|
26
|
-
destiny.write(http.get_content(service_url))
|
27
|
+
destiny.write(http.get_content(service_url, headers))
|
27
28
|
return
|
28
29
|
end
|
29
30
|
|
30
31
|
if method.eql? 'post'
|
31
|
-
return handle_response(http.post service_url, params)
|
32
|
+
return handle_response(http.post service_url, params, headers)
|
32
33
|
end
|
33
34
|
|
34
35
|
if method.eql? 'get'
|
35
|
-
return handle_response(http.get service_url, params)
|
36
|
+
return handle_response(http.get service_url, params, headers)
|
36
37
|
end
|
37
38
|
|
38
39
|
if method.eql? 'delete'
|
39
|
-
return handle_response(http.delete service_url, params)
|
40
|
+
return handle_response(http.delete service_url, params, headers)
|
40
41
|
else
|
41
42
|
raise 'Unsupported Http Method - "' << method.to_s << '"'
|
42
43
|
end
|
data/lib/dynamicloud/version.rb
CHANGED