refworks 0.0.2
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 +15 -0
- data/README.md +120 -0
- data/lib/refworks.rb +183 -0
- data/lib/refworks/authentication/authentication_request.rb +17 -0
- data/lib/refworks/authentication/authentication_response.rb +3 -0
- data/lib/refworks/authentication/delsess/authentication_delsess_request.rb +20 -0
- data/lib/refworks/authentication/delsess/authentication_delsess_response.rb +3 -0
- data/lib/refworks/authentication/newsess/authentication_newsess_request.rb +37 -0
- data/lib/refworks/authentication/newsess/authentication_newsess_response.rb +10 -0
- data/lib/refworks/authentication/newtempusersess/authentication_newtempusersess_request.rb +21 -0
- data/lib/refworks/authentication/newtempusersess/authentication_newtempusersess_response.rb +9 -0
- data/lib/refworks/authentication/ping/authentication_ping_request.rb +21 -0
- data/lib/refworks/authentication/ping/authentication_ping_response.rb +3 -0
- data/lib/refworks/authentication/userexists/authentication_userexists_request.rb +37 -0
- data/lib/refworks/authentication/userexists/authentication_userexists_response.rb +3 -0
- data/lib/refworks/authors/all/authors_all_request.rb +29 -0
- data/lib/refworks/authors/all/authors_all_response.rb +3 -0
- data/lib/refworks/authors/author.rb +10 -0
- data/lib/refworks/authors/authors_request.rb +23 -0
- data/lib/refworks/authors/authors_response.rb +32 -0
- data/lib/refworks/authors/search/authors_search_request.rb +23 -0
- data/lib/refworks/authors/search/authors_search_response.rb +3 -0
- data/lib/refworks/descriptors/all/descriptors_all_request.rb +21 -0
- data/lib/refworks/descriptors/all/descriptors_all_response.rb +3 -0
- data/lib/refworks/descriptors/descriptor.rb +8 -0
- data/lib/refworks/descriptors/descriptors_request.rb +17 -0
- data/lib/refworks/descriptors/descriptors_response.rb +31 -0
- data/lib/refworks/descriptors/search/descriptors_search_request.rb +24 -0
- data/lib/refworks/descriptors/search/descriptors_search_response.rb +3 -0
- data/lib/refworks/folders/all/folders_all_request.rb +20 -0
- data/lib/refworks/folders/all/folders_all_response.rb +3 -0
- data/lib/refworks/folders/folder.rb +10 -0
- data/lib/refworks/folders/folders_request.rb +17 -0
- data/lib/refworks/folders/folders_response.rb +32 -0
- data/lib/refworks/folders/search/folders_search_request.rb +21 -0
- data/lib/refworks/folders/search/folders_search_response.rb +3 -0
- data/lib/refworks/importfilter/allavailable/importfilter_allavailable_request.rb +20 -0
- data/lib/refworks/importfilter/allavailable/importfilter_allavailable_response.rb +3 -0
- data/lib/refworks/importfilter/allglobal/importfilter_allglobal_request.rb +20 -0
- data/lib/refworks/importfilter/allglobal/importfilter_allglobal_response.rb +3 -0
- data/lib/refworks/importfilter/favorites/importfilter_favorites_request.rb +20 -0
- data/lib/refworks/importfilter/favorites/importfilter_favorites_response.rb +3 -0
- data/lib/refworks/importfilter/importfilter.rb +18 -0
- data/lib/refworks/importfilter/importfilter_request.rb +16 -0
- data/lib/refworks/importfilter/importfilter_response.rb +35 -0
- data/lib/refworks/importfilter/search/importfilter_search_request.rb +22 -0
- data/lib/refworks/importfilter/search/importfilter_search_response.rb +3 -0
- data/lib/refworks/manuscript/all/manuscript_all_request.rb +22 -0
- data/lib/refworks/manuscript/all/manuscript_all_response.rb +13 -0
- data/lib/refworks/manuscript/baseurl/manuscript_baseurl_request.rb +22 -0
- data/lib/refworks/manuscript/baseurl/manuscript_baseurl_response.rb +13 -0
- data/lib/refworks/manuscript/byid/manuscript_byid_request.rb +32 -0
- data/lib/refworks/manuscript/byid/manuscript_byid_response.rb +3 -0
- data/lib/refworks/manuscript/file/manuscript_file_request.rb +22 -0
- data/lib/refworks/manuscript/file/manuscript_file_response.rb +18 -0
- data/lib/refworks/manuscript/folder/manuscript_folder_request.rb +22 -0
- data/lib/refworks/manuscript/folder/manuscript_folder_response.rb +14 -0
- data/lib/refworks/manuscript/manuscript_request.rb +20 -0
- data/lib/refworks/manuscript/manuscript_response.rb +3 -0
- data/lib/refworks/manuscript/mylist/manuscript_mylist_request.rb +21 -0
- data/lib/refworks/manuscript/mylist/manuscript_mylist_response.rb +14 -0
- data/lib/refworks/periodicals/all/periodicals_all_request.rb +21 -0
- data/lib/refworks/periodicals/all/periodicals_all_response.rb +3 -0
- data/lib/refworks/periodicals/periodical.rb +9 -0
- data/lib/refworks/periodicals/periodicals_request.rb +17 -0
- data/lib/refworks/periodicals/periodicals_response.rb +31 -0
- data/lib/refworks/periodicals/search/periodicals_search_request.rb +22 -0
- data/lib/refworks/periodicals/search/periodicals_search_response.rb +3 -0
- data/lib/refworks/properties/encoding/encoding.rb +3 -0
- data/lib/refworks/properties/encoding/properties_encoding_request.rb +20 -0
- data/lib/refworks/properties/encoding/properties_encoding_response.rb +3 -0
- data/lib/refworks/properties/fieldlabels/fieldlabel.rb +13 -0
- data/lib/refworks/properties/fieldlabels/properties_fieldlabels_request.rb +22 -0
- data/lib/refworks/properties/fieldlabels/properties_fieldlabels_response.rb +20 -0
- data/lib/refworks/properties/fieldlabels/reftypeFieldlabels.rb +11 -0
- data/lib/refworks/properties/languages/language.rb +8 -0
- data/lib/refworks/properties/languages/properties_languages_request.rb +22 -0
- data/lib/refworks/properties/languages/properties_languages_response.rb +20 -0
- data/lib/refworks/properties/outputlanguage/outputlanguage.rb +8 -0
- data/lib/refworks/properties/outputlanguage/properties_outputlanguage_request.rb +22 -0
- data/lib/refworks/properties/outputlanguage/properties_outputlanguage_response.rb +20 -0
- data/lib/refworks/properties/properties_request.rb +15 -0
- data/lib/refworks/properties/properties_response.rb +3 -0
- data/lib/refworks/properties/sortlocales/properties_sortlocales_request.rb +20 -0
- data/lib/refworks/properties/sortlocales/properties_sortlocales_response.rb +20 -0
- data/lib/refworks/properties/sortlocales/sortlocale.rb +8 -0
- data/lib/refworks/properties/sourcetypes/properties_sourcetypes_request.rb +21 -0
- data/lib/refworks/properties/sourcetypes/properties_sourcetypes_response.rb +20 -0
- data/lib/refworks/properties/sourcetypes/sourcetype.rb +8 -0
- data/lib/refworks/properties/typelabels/properties_typelabels_request.rb +21 -0
- data/lib/refworks/properties/typelabels/properties_typelabels_response.rb +20 -0
- data/lib/refworks/properties/typelabels/typelabel.rb +8 -0
- data/lib/refworks/reference.rb +526 -0
- data/lib/refworks/reference/get/reference_get_request.rb +21 -0
- data/lib/refworks/reference/get/reference_get_response.rb +7 -0
- data/lib/refworks/reference/reference_request.rb +15 -0
- data/lib/refworks/reference/reference_response.rb +3 -0
- data/lib/refworks/request.rb +50 -0
- data/lib/refworks/response.rb +12 -0
- data/lib/refworks/retrieve/advancesearch/retrieve_advancesearch_request.rb +41 -0
- data/lib/refworks/retrieve/advancesearch/retrieve_advancesearch_response.rb +3 -0
- data/lib/refworks/retrieve/all/retrieve_all_request.rb +21 -0
- data/lib/refworks/retrieve/all/retrieve_all_response.rb +3 -0
- data/lib/refworks/retrieve/author/retrieve_author_request.rb +23 -0
- data/lib/refworks/retrieve/author/retrieve_author_response.rb +3 -0
- data/lib/refworks/retrieve/byid/retrieve_byid_request.rb +22 -0
- data/lib/refworks/retrieve/byid/retrieve_byid_response.rb +3 -0
- data/lib/refworks/retrieve/count/retrieve_count_request.rb +21 -0
- data/lib/refworks/retrieve/count/retrieve_count_response.rb +16 -0
- data/lib/refworks/retrieve/descriptor/retrieve_descriptor_request.rb +22 -0
- data/lib/refworks/retrieve/descriptor/retrieve_descriptor_response.rb +3 -0
- data/lib/refworks/retrieve/dup/retrieve_dup_request.rb +21 -0
- data/lib/refworks/retrieve/dup/retrieve_dup_response.rb +3 -0
- data/lib/refworks/retrieve/folder/retrieve_folder_request.rb +21 -0
- data/lib/refworks/retrieve/folder/retrieve_folder_response.rb +3 -0
- data/lib/refworks/retrieve/modsince/retrieve_modsince_request.rb +23 -0
- data/lib/refworks/retrieve/modsince/retrieve_modsince_response.rb +3 -0
- data/lib/refworks/retrieve/nofolder/retrieve_nofolder_request.rb +20 -0
- data/lib/refworks/retrieve/nofolder/retrieve_nofolder_response.rb +3 -0
- data/lib/refworks/retrieve/periodical/retrieve_periodical_request.rb +22 -0
- data/lib/refworks/retrieve/periodical/retrieve_periodical_response.rb +3 -0
- data/lib/refworks/retrieve/quick/retrieve_quick_request.rb +23 -0
- data/lib/refworks/retrieve/quick/retrieve_quick_response.rb +3 -0
- data/lib/refworks/retrieve/retrieve_request.rb +22 -0
- data/lib/refworks/retrieve/retrieve_response.rb +34 -0
- data/lib/refworks/retrieve/saved/retrieve_saved_request.rb +22 -0
- data/lib/refworks/retrieve/saved/retrieve_saved_response.rb +3 -0
- data/lib/refworks/retrieve/specialfolder/retrieve_specialfolder_request.rb +21 -0
- data/lib/refworks/retrieve/specialfolder/retrieve_specialfolder_response.rb +3 -0
- data/lib/refworks/savedsearch/all/savedsearch_all_request.rb +21 -0
- data/lib/refworks/savedsearch/all/savedsearch_all_response.rb +3 -0
- data/lib/refworks/savedsearch/get/savedsearch_get_request.rb +22 -0
- data/lib/refworks/savedsearch/get/savedsearch_get_response.rb +3 -0
- data/lib/refworks/savedsearch/savedsearch.rb +21 -0
- data/lib/refworks/savedsearch/savedsearch_parameter.rb +18 -0
- data/lib/refworks/savedsearch/savedsearch_parameter_component.rb +10 -0
- data/lib/refworks/savedsearch/savedsearch_request.rb +15 -0
- data/lib/refworks/savedsearch/savedsearch_response.rb +24 -0
- data/lib/refworks/version.rb +3 -0
- metadata +224 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class ReferenceGetRequest < ReferenceRequest
|
|
2
|
+
def self.call_method
|
|
3
|
+
'get'
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.generate_request_info(params)
|
|
7
|
+
|
|
8
|
+
# get common Reference parameters
|
|
9
|
+
class_params = generate_class_params(params)
|
|
10
|
+
|
|
11
|
+
# query parameters for the get call
|
|
12
|
+
method_params = { :method => call_method,
|
|
13
|
+
:id => params[:id],
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
query_string_params = class_params.merge(method_params)
|
|
17
|
+
|
|
18
|
+
# return the request info
|
|
19
|
+
{:params => query_string_params}
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
class ReferenceGetResponse < RetrieveResponse
|
|
2
|
+
# Note the weirdness here, that ReferenceGetResponse is a child of RetrieveResponse (not ReferenceResponse).
|
|
3
|
+
# That's because the get method returns one or more references, which is exactly what Retrieve class is designed
|
|
4
|
+
# to do, whereas the rest of the Reference class has to do with -modifying- references.
|
|
5
|
+
|
|
6
|
+
# In other words, there probably shouldn't be a get method in the Reference class, but that's how the API is done.
|
|
7
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class ReferenceRequest < Request
|
|
2
|
+
def self.call_class
|
|
3
|
+
"reference"
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.generate_class_params(params)
|
|
7
|
+
# handle params common to all Reference calls
|
|
8
|
+
class_name = call_class()
|
|
9
|
+
|
|
10
|
+
# query parameters common to all Reference calls
|
|
11
|
+
{
|
|
12
|
+
:class => class_name,
|
|
13
|
+
}
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
|
|
2
|
+
# The base abstract Request class. Universal request logic is captured here.
|
|
3
|
+
# @abstract
|
|
4
|
+
# @api private
|
|
5
|
+
class Request
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
require 'base64'
|
|
8
|
+
require 'openssl'
|
|
9
|
+
|
|
10
|
+
# Returns the verb which should be used to request a particular API method. Since most of the API
|
|
11
|
+
# is based on GET requests, we define that as the default behavior here and override in
|
|
12
|
+
# subclasses where necessary.
|
|
13
|
+
# @return [String] The string 'GET'
|
|
14
|
+
def self.http_request_verb
|
|
15
|
+
'GET'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Generates a signature for the API call per the Refworks API signature specification.
|
|
19
|
+
# @param [String] call_class The name of the class being called.
|
|
20
|
+
# @param [String] access_key The user's access key.
|
|
21
|
+
# @param [String] secret_key The user's secret key.
|
|
22
|
+
# @return [String] A Refworks signature.
|
|
23
|
+
def self.generate_signature(call_class, access_key, secret_key)
|
|
24
|
+
|
|
25
|
+
# Construct the RW-required signature using the algorithm from their docs
|
|
26
|
+
# expires should be the current time represented in microseconds since the epoch
|
|
27
|
+
expires = Time.now.to_i * 1000
|
|
28
|
+
|
|
29
|
+
# RW formula for signature message
|
|
30
|
+
signature = call_class + access_key + expires.to_s.chomp
|
|
31
|
+
|
|
32
|
+
# Run it through HMAC SHA1 using secret key
|
|
33
|
+
hmacsig = OpenSSL::HMAC.digest('sha1', secret_key, signature)
|
|
34
|
+
|
|
35
|
+
# Base64 encode it
|
|
36
|
+
# Ruby 1.8 way
|
|
37
|
+
#encodedsig = Base64.encode64(hmacsig)
|
|
38
|
+
# Ruby 1.9.2 way
|
|
39
|
+
encodedsig = Base64.strict_encode64(hmacsig)
|
|
40
|
+
|
|
41
|
+
# Base64.encode64 adds a newline at end of string if not present. This strips it.
|
|
42
|
+
# Otherwise, you get an Invalid Signature error from RW
|
|
43
|
+
# Do this if you are using Ruby 1.8 and don't have access to strict_encode64 as used above
|
|
44
|
+
#encodedsig.gsub!(/%0A/,'')
|
|
45
|
+
|
|
46
|
+
# Return hash
|
|
47
|
+
{:signature => encodedsig, :accesskeyid => access_key, :expires => expires}
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
class Response
|
|
3
|
+
attr_reader :body, :parsed_response, :result_code, :result_msg, :process_time
|
|
4
|
+
|
|
5
|
+
def initialize(raw_response)
|
|
6
|
+
@body = raw_response.body
|
|
7
|
+
@parsed_response = raw_response.parsed_response
|
|
8
|
+
@result_code = parsed_response["refworks"]["RWResult"]["result"]
|
|
9
|
+
@process_time = parsed_response["refworks"]["RWResult"]["processTime"]
|
|
10
|
+
@result_msg = parsed_response["refworks"]["RWResult"]["resultMsg"]
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
class RetrieveAdvancesearchRequest < RetrieveRequest
|
|
2
|
+
|
|
3
|
+
def self.call_method
|
|
4
|
+
'advancesearch'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.http_request_verb
|
|
8
|
+
'POST'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.generate_request_info(params)
|
|
12
|
+
|
|
13
|
+
# get common Retrieve parameters
|
|
14
|
+
class_params = generate_class_params(params)
|
|
15
|
+
|
|
16
|
+
# query parameters for the advancesearch call
|
|
17
|
+
method_params = { :method => call_method,
|
|
18
|
+
:classic => params[:classic] || 'true',
|
|
19
|
+
:search => params[:search],
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
query_string_params = class_params.merge(method_params)
|
|
23
|
+
# advancesearch also has a POST payload
|
|
24
|
+
|
|
25
|
+
# construct ParameterList
|
|
26
|
+
parameter_list = "<ParameterList>"
|
|
27
|
+
params[:parameter_list].each do |param|
|
|
28
|
+
connector = param[:connector] || "and"
|
|
29
|
+
field = param[:field] || "ALL"
|
|
30
|
+
searchempty = param[:searchempty] || "false"
|
|
31
|
+
parameter_list << "<Parameter connector=\"#{connector}\" field=\"#{field}\" searchempty=\"#{searchempty}\">#{param[:search]}</Parameter>"
|
|
32
|
+
end
|
|
33
|
+
parameter_list << "</ParameterList>"
|
|
34
|
+
|
|
35
|
+
message_body = parameter_list
|
|
36
|
+
|
|
37
|
+
# return the request info
|
|
38
|
+
{:params => query_string_params, :body => message_body, :headers => {'Content-type' => 'text/xml'}}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class RetrieveAllRequest < RetrieveRequest
|
|
2
|
+
|
|
3
|
+
def self.call_method
|
|
4
|
+
'all'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.generate_request_info(params)
|
|
8
|
+
|
|
9
|
+
# get common Retrieve parameters
|
|
10
|
+
class_params = generate_class_params(params)
|
|
11
|
+
|
|
12
|
+
# query parameters for the all call
|
|
13
|
+
method_params = { :method => call_method,
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
query_string_params = class_params.merge(method_params)
|
|
17
|
+
|
|
18
|
+
# return the request info
|
|
19
|
+
{:params => query_string_params}
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
class RetrieveAuthorRequest < RetrieveRequest
|
|
2
|
+
|
|
3
|
+
def self.call_method
|
|
4
|
+
'author'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.generate_request_info(params)
|
|
8
|
+
|
|
9
|
+
# get common Retrieve parameters
|
|
10
|
+
class_params = generate_class_params(params)
|
|
11
|
+
|
|
12
|
+
# query parameters for the author call
|
|
13
|
+
method_params = { :method => call_method,
|
|
14
|
+
:search => params[:search],
|
|
15
|
+
:folder => params[:folder], # this is optional, if nil entire account is searched
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
query_string_params = class_params.merge(method_params)
|
|
19
|
+
|
|
20
|
+
# return the request info
|
|
21
|
+
{:params => query_string_params}
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class RetrieveByidRequest < RetrieveRequest
|
|
2
|
+
|
|
3
|
+
def self.call_method
|
|
4
|
+
'byid'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.generate_request_info(params)
|
|
8
|
+
|
|
9
|
+
# get common Retrieve parameters
|
|
10
|
+
class_params = generate_class_params(params)
|
|
11
|
+
|
|
12
|
+
# query parameters for the byid call
|
|
13
|
+
method_params = { :method => call_method,
|
|
14
|
+
:id => params[:id],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
query_string_params = class_params.merge(method_params)
|
|
18
|
+
|
|
19
|
+
# return the request info
|
|
20
|
+
{:params => query_string_params}
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class RetrieveCountRequest < RetrieveRequest
|
|
2
|
+
def self.call_method
|
|
3
|
+
'count'
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.generate_request_info(params)
|
|
7
|
+
|
|
8
|
+
# get common Retrieve parameters
|
|
9
|
+
class_params = generate_class_params(params)
|
|
10
|
+
|
|
11
|
+
# query parameters for the count call
|
|
12
|
+
method_params = { :method => call_method,
|
|
13
|
+
:attachonly => params[:attachonly] || 'false',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
query_string_params = class_params.merge(method_params)
|
|
17
|
+
|
|
18
|
+
# return the request info
|
|
19
|
+
{:params => query_string_params}
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
class RetrieveCountResponse < Response
|
|
2
|
+
|
|
3
|
+
attr_reader :count
|
|
4
|
+
|
|
5
|
+
def initialize(raw_response)
|
|
6
|
+
super(raw_response)
|
|
7
|
+
if result_code != "200"
|
|
8
|
+
return
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# If results returned, process the references and metadata
|
|
12
|
+
|
|
13
|
+
@count = self.parsed_response["refworks"]["RWResult"]["RetrieveCount"]["count"]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class RetrieveDescriptorRequest < RetrieveRequest
|
|
2
|
+
|
|
3
|
+
def self.call_method
|
|
4
|
+
'descriptor'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.generate_request_info(params)
|
|
8
|
+
|
|
9
|
+
# get common Retrieve parameters
|
|
10
|
+
class_params = generate_class_params(params)
|
|
11
|
+
|
|
12
|
+
# query parameters for the descriptor call
|
|
13
|
+
method_params = { :method => call_method,
|
|
14
|
+
:search => params[:search],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
query_string_params = class_params.merge(method_params)
|
|
18
|
+
|
|
19
|
+
# return the request info
|
|
20
|
+
{:params => query_string_params}
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class RetrieveDupRequest < RetrieveRequest
|
|
2
|
+
def self.call_method
|
|
3
|
+
'dup'
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.generate_request_info(params)
|
|
7
|
+
|
|
8
|
+
# get common Retrieve parameters
|
|
9
|
+
class_params = generate_class_params(params)
|
|
10
|
+
|
|
11
|
+
# query parameters for the dup call
|
|
12
|
+
method_params = { :method => call_method,
|
|
13
|
+
:search => params[:search],
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
query_string_params = class_params.merge(method_params)
|
|
17
|
+
|
|
18
|
+
# return the request info
|
|
19
|
+
{:params => query_string_params}
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class RetrieveFolderRequest < RetrieveRequest
|
|
2
|
+
def self.call_method
|
|
3
|
+
'folder'
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.generate_request_info(params)
|
|
7
|
+
|
|
8
|
+
# get common Retrieve parameters
|
|
9
|
+
class_params = generate_class_params(params)
|
|
10
|
+
|
|
11
|
+
# query parameters for the search call
|
|
12
|
+
method_params = { :method => call_method,
|
|
13
|
+
:search => params[:search],
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
query_string_params = class_params.merge(method_params)
|
|
17
|
+
|
|
18
|
+
# return the request info
|
|
19
|
+
{:params => query_string_params}
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
class RetrieveModsinceRequest < RetrieveRequest
|
|
2
|
+
def self.call_method
|
|
3
|
+
'modsince'
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.generate_request_info(params)
|
|
7
|
+
|
|
8
|
+
# get common Retrieve parameters
|
|
9
|
+
class_params = generate_class_params(params)
|
|
10
|
+
|
|
11
|
+
# query parameters for the byid call
|
|
12
|
+
method_params = { :method => call_method,
|
|
13
|
+
:search => params[:search],
|
|
14
|
+
:skipref => params[:skipref] || 0,
|
|
15
|
+
:attachonly => params[:attachonly] || "false",
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
query_string_params = class_params.merge(method_params)
|
|
19
|
+
|
|
20
|
+
# return the request info
|
|
21
|
+
{:params => query_string_params}
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
class RetrieveNofolderRequest < RetrieveRequest
|
|
2
|
+
def self.call_method
|
|
3
|
+
'nofolder'
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def self.generate_request_info(params)
|
|
7
|
+
|
|
8
|
+
# get common Retrieve parameters
|
|
9
|
+
class_params = generate_class_params(params)
|
|
10
|
+
|
|
11
|
+
# query parameters for the nofolder call
|
|
12
|
+
method_params = { :method => call_method,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
query_string_params = class_params.merge(method_params)
|
|
16
|
+
|
|
17
|
+
# return the request info
|
|
18
|
+
{:params => query_string_params}
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class RetrievePeriodicalRequest < RetrieveRequest
|
|
2
|
+
|
|
3
|
+
def self.call_method
|
|
4
|
+
'periodical'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.generate_request_info(params)
|
|
8
|
+
|
|
9
|
+
# get common Retrieve parameters
|
|
10
|
+
class_params = generate_class_params(params)
|
|
11
|
+
|
|
12
|
+
# query parameters for the periodical call
|
|
13
|
+
method_params = { :method => call_method,
|
|
14
|
+
:search => params[:search],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
query_string_params = class_params.merge(method_params)
|
|
18
|
+
|
|
19
|
+
# return the request info
|
|
20
|
+
{:params => query_string_params}
|
|
21
|
+
end
|
|
22
|
+
end
|