refworks 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +15 -0
  2. data/README.md +120 -0
  3. data/lib/refworks.rb +183 -0
  4. data/lib/refworks/authentication/authentication_request.rb +17 -0
  5. data/lib/refworks/authentication/authentication_response.rb +3 -0
  6. data/lib/refworks/authentication/delsess/authentication_delsess_request.rb +20 -0
  7. data/lib/refworks/authentication/delsess/authentication_delsess_response.rb +3 -0
  8. data/lib/refworks/authentication/newsess/authentication_newsess_request.rb +37 -0
  9. data/lib/refworks/authentication/newsess/authentication_newsess_response.rb +10 -0
  10. data/lib/refworks/authentication/newtempusersess/authentication_newtempusersess_request.rb +21 -0
  11. data/lib/refworks/authentication/newtempusersess/authentication_newtempusersess_response.rb +9 -0
  12. data/lib/refworks/authentication/ping/authentication_ping_request.rb +21 -0
  13. data/lib/refworks/authentication/ping/authentication_ping_response.rb +3 -0
  14. data/lib/refworks/authentication/userexists/authentication_userexists_request.rb +37 -0
  15. data/lib/refworks/authentication/userexists/authentication_userexists_response.rb +3 -0
  16. data/lib/refworks/authors/all/authors_all_request.rb +29 -0
  17. data/lib/refworks/authors/all/authors_all_response.rb +3 -0
  18. data/lib/refworks/authors/author.rb +10 -0
  19. data/lib/refworks/authors/authors_request.rb +23 -0
  20. data/lib/refworks/authors/authors_response.rb +32 -0
  21. data/lib/refworks/authors/search/authors_search_request.rb +23 -0
  22. data/lib/refworks/authors/search/authors_search_response.rb +3 -0
  23. data/lib/refworks/descriptors/all/descriptors_all_request.rb +21 -0
  24. data/lib/refworks/descriptors/all/descriptors_all_response.rb +3 -0
  25. data/lib/refworks/descriptors/descriptor.rb +8 -0
  26. data/lib/refworks/descriptors/descriptors_request.rb +17 -0
  27. data/lib/refworks/descriptors/descriptors_response.rb +31 -0
  28. data/lib/refworks/descriptors/search/descriptors_search_request.rb +24 -0
  29. data/lib/refworks/descriptors/search/descriptors_search_response.rb +3 -0
  30. data/lib/refworks/folders/all/folders_all_request.rb +20 -0
  31. data/lib/refworks/folders/all/folders_all_response.rb +3 -0
  32. data/lib/refworks/folders/folder.rb +10 -0
  33. data/lib/refworks/folders/folders_request.rb +17 -0
  34. data/lib/refworks/folders/folders_response.rb +32 -0
  35. data/lib/refworks/folders/search/folders_search_request.rb +21 -0
  36. data/lib/refworks/folders/search/folders_search_response.rb +3 -0
  37. data/lib/refworks/importfilter/allavailable/importfilter_allavailable_request.rb +20 -0
  38. data/lib/refworks/importfilter/allavailable/importfilter_allavailable_response.rb +3 -0
  39. data/lib/refworks/importfilter/allglobal/importfilter_allglobal_request.rb +20 -0
  40. data/lib/refworks/importfilter/allglobal/importfilter_allglobal_response.rb +3 -0
  41. data/lib/refworks/importfilter/favorites/importfilter_favorites_request.rb +20 -0
  42. data/lib/refworks/importfilter/favorites/importfilter_favorites_response.rb +3 -0
  43. data/lib/refworks/importfilter/importfilter.rb +18 -0
  44. data/lib/refworks/importfilter/importfilter_request.rb +16 -0
  45. data/lib/refworks/importfilter/importfilter_response.rb +35 -0
  46. data/lib/refworks/importfilter/search/importfilter_search_request.rb +22 -0
  47. data/lib/refworks/importfilter/search/importfilter_search_response.rb +3 -0
  48. data/lib/refworks/manuscript/all/manuscript_all_request.rb +22 -0
  49. data/lib/refworks/manuscript/all/manuscript_all_response.rb +13 -0
  50. data/lib/refworks/manuscript/baseurl/manuscript_baseurl_request.rb +22 -0
  51. data/lib/refworks/manuscript/baseurl/manuscript_baseurl_response.rb +13 -0
  52. data/lib/refworks/manuscript/byid/manuscript_byid_request.rb +32 -0
  53. data/lib/refworks/manuscript/byid/manuscript_byid_response.rb +3 -0
  54. data/lib/refworks/manuscript/file/manuscript_file_request.rb +22 -0
  55. data/lib/refworks/manuscript/file/manuscript_file_response.rb +18 -0
  56. data/lib/refworks/manuscript/folder/manuscript_folder_request.rb +22 -0
  57. data/lib/refworks/manuscript/folder/manuscript_folder_response.rb +14 -0
  58. data/lib/refworks/manuscript/manuscript_request.rb +20 -0
  59. data/lib/refworks/manuscript/manuscript_response.rb +3 -0
  60. data/lib/refworks/manuscript/mylist/manuscript_mylist_request.rb +21 -0
  61. data/lib/refworks/manuscript/mylist/manuscript_mylist_response.rb +14 -0
  62. data/lib/refworks/periodicals/all/periodicals_all_request.rb +21 -0
  63. data/lib/refworks/periodicals/all/periodicals_all_response.rb +3 -0
  64. data/lib/refworks/periodicals/periodical.rb +9 -0
  65. data/lib/refworks/periodicals/periodicals_request.rb +17 -0
  66. data/lib/refworks/periodicals/periodicals_response.rb +31 -0
  67. data/lib/refworks/periodicals/search/periodicals_search_request.rb +22 -0
  68. data/lib/refworks/periodicals/search/periodicals_search_response.rb +3 -0
  69. data/lib/refworks/properties/encoding/encoding.rb +3 -0
  70. data/lib/refworks/properties/encoding/properties_encoding_request.rb +20 -0
  71. data/lib/refworks/properties/encoding/properties_encoding_response.rb +3 -0
  72. data/lib/refworks/properties/fieldlabels/fieldlabel.rb +13 -0
  73. data/lib/refworks/properties/fieldlabels/properties_fieldlabels_request.rb +22 -0
  74. data/lib/refworks/properties/fieldlabels/properties_fieldlabels_response.rb +20 -0
  75. data/lib/refworks/properties/fieldlabels/reftypeFieldlabels.rb +11 -0
  76. data/lib/refworks/properties/languages/language.rb +8 -0
  77. data/lib/refworks/properties/languages/properties_languages_request.rb +22 -0
  78. data/lib/refworks/properties/languages/properties_languages_response.rb +20 -0
  79. data/lib/refworks/properties/outputlanguage/outputlanguage.rb +8 -0
  80. data/lib/refworks/properties/outputlanguage/properties_outputlanguage_request.rb +22 -0
  81. data/lib/refworks/properties/outputlanguage/properties_outputlanguage_response.rb +20 -0
  82. data/lib/refworks/properties/properties_request.rb +15 -0
  83. data/lib/refworks/properties/properties_response.rb +3 -0
  84. data/lib/refworks/properties/sortlocales/properties_sortlocales_request.rb +20 -0
  85. data/lib/refworks/properties/sortlocales/properties_sortlocales_response.rb +20 -0
  86. data/lib/refworks/properties/sortlocales/sortlocale.rb +8 -0
  87. data/lib/refworks/properties/sourcetypes/properties_sourcetypes_request.rb +21 -0
  88. data/lib/refworks/properties/sourcetypes/properties_sourcetypes_response.rb +20 -0
  89. data/lib/refworks/properties/sourcetypes/sourcetype.rb +8 -0
  90. data/lib/refworks/properties/typelabels/properties_typelabels_request.rb +21 -0
  91. data/lib/refworks/properties/typelabels/properties_typelabels_response.rb +20 -0
  92. data/lib/refworks/properties/typelabels/typelabel.rb +8 -0
  93. data/lib/refworks/reference.rb +526 -0
  94. data/lib/refworks/reference/get/reference_get_request.rb +21 -0
  95. data/lib/refworks/reference/get/reference_get_response.rb +7 -0
  96. data/lib/refworks/reference/reference_request.rb +15 -0
  97. data/lib/refworks/reference/reference_response.rb +3 -0
  98. data/lib/refworks/request.rb +50 -0
  99. data/lib/refworks/response.rb +12 -0
  100. data/lib/refworks/retrieve/advancesearch/retrieve_advancesearch_request.rb +41 -0
  101. data/lib/refworks/retrieve/advancesearch/retrieve_advancesearch_response.rb +3 -0
  102. data/lib/refworks/retrieve/all/retrieve_all_request.rb +21 -0
  103. data/lib/refworks/retrieve/all/retrieve_all_response.rb +3 -0
  104. data/lib/refworks/retrieve/author/retrieve_author_request.rb +23 -0
  105. data/lib/refworks/retrieve/author/retrieve_author_response.rb +3 -0
  106. data/lib/refworks/retrieve/byid/retrieve_byid_request.rb +22 -0
  107. data/lib/refworks/retrieve/byid/retrieve_byid_response.rb +3 -0
  108. data/lib/refworks/retrieve/count/retrieve_count_request.rb +21 -0
  109. data/lib/refworks/retrieve/count/retrieve_count_response.rb +16 -0
  110. data/lib/refworks/retrieve/descriptor/retrieve_descriptor_request.rb +22 -0
  111. data/lib/refworks/retrieve/descriptor/retrieve_descriptor_response.rb +3 -0
  112. data/lib/refworks/retrieve/dup/retrieve_dup_request.rb +21 -0
  113. data/lib/refworks/retrieve/dup/retrieve_dup_response.rb +3 -0
  114. data/lib/refworks/retrieve/folder/retrieve_folder_request.rb +21 -0
  115. data/lib/refworks/retrieve/folder/retrieve_folder_response.rb +3 -0
  116. data/lib/refworks/retrieve/modsince/retrieve_modsince_request.rb +23 -0
  117. data/lib/refworks/retrieve/modsince/retrieve_modsince_response.rb +3 -0
  118. data/lib/refworks/retrieve/nofolder/retrieve_nofolder_request.rb +20 -0
  119. data/lib/refworks/retrieve/nofolder/retrieve_nofolder_response.rb +3 -0
  120. data/lib/refworks/retrieve/periodical/retrieve_periodical_request.rb +22 -0
  121. data/lib/refworks/retrieve/periodical/retrieve_periodical_response.rb +3 -0
  122. data/lib/refworks/retrieve/quick/retrieve_quick_request.rb +23 -0
  123. data/lib/refworks/retrieve/quick/retrieve_quick_response.rb +3 -0
  124. data/lib/refworks/retrieve/retrieve_request.rb +22 -0
  125. data/lib/refworks/retrieve/retrieve_response.rb +34 -0
  126. data/lib/refworks/retrieve/saved/retrieve_saved_request.rb +22 -0
  127. data/lib/refworks/retrieve/saved/retrieve_saved_response.rb +3 -0
  128. data/lib/refworks/retrieve/specialfolder/retrieve_specialfolder_request.rb +21 -0
  129. data/lib/refworks/retrieve/specialfolder/retrieve_specialfolder_response.rb +3 -0
  130. data/lib/refworks/savedsearch/all/savedsearch_all_request.rb +21 -0
  131. data/lib/refworks/savedsearch/all/savedsearch_all_response.rb +3 -0
  132. data/lib/refworks/savedsearch/get/savedsearch_get_request.rb +22 -0
  133. data/lib/refworks/savedsearch/get/savedsearch_get_response.rb +3 -0
  134. data/lib/refworks/savedsearch/savedsearch.rb +21 -0
  135. data/lib/refworks/savedsearch/savedsearch_parameter.rb +18 -0
  136. data/lib/refworks/savedsearch/savedsearch_parameter_component.rb +10 -0
  137. data/lib/refworks/savedsearch/savedsearch_request.rb +15 -0
  138. data/lib/refworks/savedsearch/savedsearch_response.rb +24 -0
  139. data/lib/refworks/version.rb +3 -0
  140. 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,3 @@
1
+ class ReferenceResponse < Response
2
+
3
+ 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,3 @@
1
+ class RetrieveAdvancesearchResponse < RetrieveResponse
2
+
3
+ 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,3 @@
1
+ class RetrieveAllResponse < RetrieveResponse
2
+
3
+ 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,3 @@
1
+ class RetrieveAuthorResponse < RetrieveResponse
2
+
3
+ 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,3 @@
1
+ class RetrieveByidResponse < RetrieveResponse
2
+
3
+ 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,3 @@
1
+ class RetrieveDescriptorResponse < RetrieveResponse
2
+
3
+ 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,3 @@
1
+ class RetrieveDupResponse < RetrieveResponse
2
+
3
+ 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,3 @@
1
+ class RetrieveFolderResponse < RetrieveResponse
2
+
3
+ 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,3 @@
1
+ class RetrieveModsinceResponse < RetrieveResponse
2
+
3
+ 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,3 @@
1
+ class RetrieveNofolderResponse < RetrieveResponse
2
+
3
+ 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