cleaned style on the slice page and fixed menu
[unfold.git] / rest / __init__.py
index c21c5ec..bdf3ee0 100644 (file)
@@ -27,6 +27,7 @@ class ObjectRequest(object):
         self.type = object_type
         self.name = object_name
         self.fields = []
+        self.params = []
         self.filters = {}
         self.options = None
 
@@ -41,12 +42,10 @@ class ObjectRequest(object):
             self.filters['platform'] = '!myslice'
         else :
             self.setKey()
-        
             self.setLocalFields()
         
     
     def setKey(self):
-        print self.type
         # What about key formed of multiple fields???
         query = Query.get('local:object').filter_by('table', '==', self.type).select('key')
         results = execute_query(self.request, query)
@@ -67,16 +66,12 @@ class ObjectRequest(object):
             raise Exception, 'Manifold db error'
     
     def setFields(self, fields):
-        selected_fields = []
-        for p in fields :
-            if p in self.fields :
-                selected_fields.append(p)
-        self.fields = selected_fields
+        selected_fields = []
+        for p in fields :
+            if p in self.fields :
+                selected_fields.append(p)
+        self.fields = fields
         
-        # 
-        if self.id in self.fields :
-            self.fields.remove(self.id)
-            [self.id].extend(self.fields)
     
     def applyFilters(self, query, force_filters = False):
         if (force_filters and not self.filters) :
@@ -98,26 +93,45 @@ class ObjectRequest(object):
         return query
     
     def get(self):
-        query = Query.get(self.type).select(self.fields)
+        query = Query.get(self.type)
+        if (self.id not in self.fields) :
+            query.select(self.fields + [self.id])
+        else :
+            query.select(self.fields)
+        
         query = self.applyFilters(query)
         return execute_query(self.request, query)
-    
+
+    def create(self):
+        query = Query.create(self.type)
+        # No filters for create
+        if self.params :
+            query.set(self.params)
+        else:
+            raise Exception, "Params are required for create"
+        return execute_query(self.request, query)
+   
     def update(self):
         query = Query.update(self.type)
         query = self.applyFilters(query, True)
+        print ">>>>>",self.params
+        
         if self.params :
-            query.set(self.params)
+            query.set({ 'resource' : self.params})
+#             for param in self.params :
+                
         else:
             raise Exception, "Params are required for update"
+        
         return execute_query(self.request, query)
     
     def delete(self):
         query = Query.delete(self.type)
         query = self.applyFilters(query, True)
-        if self.params :
-            query.set(self.params)
+        if self.filters :
+            query.set(self.filters)
         else:
-            raise Exception, "Params are required for update"
+            raise Exception, "Filters are required for update"
         return execute_query(self.request, query)
     
     def json(self):
@@ -135,7 +149,7 @@ class ObjectRequest(object):
             for p in self.fields :
                 d.append(r[p])
             response_data['data'].append(d)
-         
+        
         return HttpResponse(json.dumps(response_data, cls=DecimalEncoder, default=DateEncoder), content_type="application/json")
 
 def error(msg):