myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [2089] trunk: cleaned up REST get routine


From: noreply
Subject: [myexperiment-hackers] [2089] trunk: cleaned up REST get routine
Date: Thu, 5 Feb 2009 13:27:11 -0500 (EST)

Revision
2089
Author
dgc
Date
2009-02-05 13:27:11 -0500 (Thu, 05 Feb 2009)

Log Message

cleaned up REST get routine

Modified Paths

Diff

Modified: trunk/config/tables.xml


(Binary files differ)

Modified: trunk/lib/rest.rb (2088 => 2089)


--- trunk/lib/rest.rb	2009-02-05 18:06:59 UTC (rev 2088)
+++ trunk/lib/rest.rb	2009-02-05 18:27:11 UTC (rev 2089)
@@ -104,114 +104,103 @@
     end
 
     if (model_data['Read'][i] == 'yes')
+
       accessor = model_data['Accessor'][i]
 
-      text = ''
+      text  = ''
+      attrs = {}
 
       case model_data['Encoding'][i]
 
-        when 'file-column'
+        when 'list'
 
-          # Do nothing
+          list_element = XML::Node.new(model_data['REST Attribute'][i])
 
-        when 'xml'
-
-          if query['version'] and model_data['Versioned'][i] == 'yes'
-            text = eval("ob.versions[#{(query['version'].to_i - 1).to_s}].#{accessor}")
-          else
-            text = eval("ob.#{accessor}")
+          attrs.each do |key,value|
+            list_element[key] = value
           end
 
-        else 
+          root << list_element
 
-          if query['version'] and model_data['Versioned'][i] == 'yes'
-            text = eval("ob.versions[#{(query['version'].to_i - 1).to_s}].#{accessor}").to_s
-          else
-            text = eval("ob.#{accessor}").to_s
+          collection = eval("ob.#{model_data['Accessor'][i]}")
+
+          # filter out things that the user cannot see
+          collection = collection.select do |c|
+            not c.respond_to?('contribution') or Authorization.is_authorized?("view", nil, c, user)
           end
-      end
 
-      attrs = {}
+          collection.each do |item|
 
-      case model_data['Encoding'][i]
+            item_attrs = { }
 
-        when 'base64'
+            item_uri = rest_resource_uri(item)
+            item_attrs['resource'] = item_uri if item_uri
+            item_attrs['uri'] = rest_access_uri(item)
 
-          text = Base64.encode64(text)
-          attrs = { 'type' => 'binary', 'encoding' => 'base64' }
+            list_element_accessor = model_data['List Element Accessor'][i]
+            list_element_text     = list_element_accessor ? eval("item.#{model_data['List Element Accessor'][i]}") : item
 
-        when 'file-column';
+            if list_element_text.instance_of?(String)
+              el = XML::Node.new(model_data['List Element Name'][i])
 
-          text = file_column_url(ob, model_data['Accessor'][i])
-      end
+              item_attrs.each do |key,value|
+                el[key] = value
+              end
 
-      case model_data['Encoding'][i]
+              el << list_element_text.to_s if list_element_text
 
-        when 'list'
+              list_element << el
+            else
+              list_element << rest_reference(list_element_text, query)
+            end
+          end
 
-        list_element = XML::Node.new(model_data['REST Attribute'][i])
+        when 'xml'
 
-        attrs.each do |key,value|
-          list_element[key] = value
-        end
+          if query['version'] and model_data['Versioned'][i] == 'yes'
+            text = eval("ob.versions[#{(query['version'].to_i - 1).to_s}].#{accessor}")
+          else
+            text = eval("ob.#{accessor}")
+          end
 
-        root << list_element
+          root << text
 
-        collection = eval("ob.#{model_data['Accessor'][i]}")
+        else 
 
-        # filter out things that the user cannot see
-        collection = collection.select do |c|
-          not c.respond_to?('contribution') or Authorization.is_authorized?("view", nil, c, user)
-        end
+          if model_data['Encoding'][i] == 'file-column'
 
-        collection.each do |item|
+            text = file_column_url(ob, model_data['Accessor'][i])
 
-          item_attrs = { }
+          else
 
-          item_uri = rest_resource_uri(item)
-          item_attrs['resource'] = item_uri if item_uri
-          item_attrs['uri'] = rest_access_uri(item)
+            if query['version'] and model_data['Versioned'][i] == 'yes'
+              text = eval("ob.versions[#{(query['version'].to_i - 1).to_s}].#{accessor}").to_s
+            else
+              text = eval("ob.#{accessor}").to_s
+            end
 
-          list_element_accessor = model_data['List Element Accessor'][i]
-          list_element_text     = list_element_accessor ? eval("item.#{model_data['List Element Accessor'][i]}") : item
-
-          if list_element_text.instance_of?(String)
-            el = XML::Node.new(model_data['List Element Name'][i])
-
-            item_attrs.each do |key,value|
-              el[key] = value
+            if (model_data['Encoding'][i] == 'base64')
+              text = Base64.encode64(text)
+              attrs = { 'type' => 'binary', 'encoding' => 'base64' }
             end
 
-            el << list_element_text.to_s if list_element_text
-
-            list_element << el
-          else
-            list_element << rest_reference(list_element_text, query)
+            if model_data['Foreign Accessor'][i]
+              resource_uri = eval("rest_resource_uri(ob.#{model_data['Foreign Accessor'][i]})")
+              attrs['resource'] = resource_uri if resource_uri
+              attrs['uri'] = eval("rest_access_uri(ob.#{model_data['Foreign Accessor'][i]})")
+            end
           end
-        end
 
-      when 'xml'
+  #        puts "ATTRIBUTE = #{model_data['REST Attribute'][i]}, ATTRS = #{attrs.inspect}, text = #{text.inspect}"
 
-        root << text
+          el = XML::Node.new(model_data['REST Attribute'][i])
 
-      else
+          attrs.each do |key,value|
+            el[key] = value if value
+          end
 
-        if model_data['Foreign Accessor'][i]
-          resource_uri = eval("rest_resource_uri(ob.#{model_data['Foreign Accessor'][i]})")
-          attrs['resource'] = resource_uri if resource_uri
-          attrs['uri'] = eval("rest_access_uri(ob.#{model_data['Foreign Accessor'][i]})")
-        end
-
-#        puts "ATTRIBUTE = #{model_data['REST Attribute'][i]}, ATTRS = #{attrs.inspect}, text = #{text.inspect}"
-
-        el = XML::Node.new(model_data['REST Attribute'][i])
-
-        attrs.each do |key,value|
-          el[key] = value if value
-        end
-
-        el << text
-        root << el
+          el << text
+          root << el
       end
     end
   end

reply via email to

[Prev in Thread] Current Thread [Next in Thread]