You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2010/01/05 11:09:28 UTC

svn commit: r895970 - in /tuscany/sca-cpp/trunk: modules/server/mod-eval.cpp test/store-script/shopping-cart.scm test/store-script/store-script-test.cpp test/store-script/store-script-test.scm test/store-script/store-script.scm test/store-script/store.scm

Author: jsdelfino
Date: Tue Jan  5 10:09:07 2010
New Revision: 895970

URL: http://svn.apache.org/viewvc?rev=895970&view=rev
Log:
Fixed shopping cart delete function. Map HTTP delete with no path info to a deleteall function, to distinguish delete of a resource and delete of the whole collection of resources.

Added:
    tuscany/sca-cpp/trunk/test/store-script/store-script-test.scm
      - copied, changed from r895959, tuscany/sca-cpp/trunk/test/store-script/store-script.scm
Removed:
    tuscany/sca-cpp/trunk/test/store-script/store-script.scm
Modified:
    tuscany/sca-cpp/trunk/modules/server/mod-eval.cpp
    tuscany/sca-cpp/trunk/test/store-script/shopping-cart.scm
    tuscany/sca-cpp/trunk/test/store-script/store-script-test.cpp
    tuscany/sca-cpp/trunk/test/store-script/store.scm

Modified: tuscany/sca-cpp/trunk/modules/server/mod-eval.cpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/server/mod-eval.cpp?rev=895970&r1=895969&r2=895970&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/server/mod-eval.cpp (original)
+++ tuscany/sca-cpp/trunk/modules/server/mod-eval.cpp Tue Jan  5 10:09:07 2010
@@ -111,7 +111,7 @@
         return httpd::writeResult(json::jsonResult(id, content(val), cx), "application/json-rpc", r);
     }
 
-    // Evaluate an ATOM GET request and return an ATOM feed
+    // Evaluate an ATOM GET request and return an ATOM feed representing a collection of resources
     const list<value> path(httpd::pathValues(r->uri));
     if (isNil(cddr(path))) {
         const failable<value> val = failableResult(impl(cons<value>("getall", list<value>())));
@@ -120,7 +120,7 @@
         return httpd::writeResult(atom::writeATOMFeed(atom::feedValuesToElements(content(val))), "application/atom+xml;type=feed", r);
     }
 
-    // Evaluate an ATOM GET and return an ATOM entry
+    // Evaluate an ATOM GET and return an ATOM entry representing a resource
     const failable<value> val = failableResult(impl(cons<value>("get", mklist<value>(caddr(path)))));
     if (!hasContent(val))
         return mkfailure<int>(reason(val));
@@ -156,7 +156,7 @@
         return httpd::writeResult(json::jsonResult(id, content(val), cx), "application/json-rpc", r);
     }
 
-    // Evaluate an ATOM POST request and return the created resource location
+    // Evaluate an ATOM POST request and return the location of the corresponding created resource
     if (contains(ct, "application/atom+xml")) {
 
         // Evaluate the request expression
@@ -182,7 +182,7 @@
     debug(r->uri, "modeval::put::url");
     debug(ls, "modeval::put::input");
 
-    // Evaluate an ATOM PUT request
+    // Evaluate an ATOM PUT request and update the corresponding resource
     const list<value> path(httpd::pathValues(r->uri));
     const value entry = atom::entryValue(content(atom::readEntry(ls)));
     const failable<value> val = failableResult(impl(cons<value>("put", mklist<value>(caddr(path), entry))));
@@ -201,6 +201,18 @@
 
     // Evaluate an ATOM delete request
     const list<value> path(httpd::pathValues(r->uri));
+    if (isNil(cddr(path))) {
+
+        // Delete a collection of resources
+        const failable<value> val = failableResult(impl(cons<value>("deleteall", list<value>())));
+        if (!hasContent(val))
+            return mkfailure<int>(reason(val));
+        if (val == value(false))
+            return HTTP_NOT_FOUND;
+        return OK;
+    }
+
+    // Delete a resource
     const failable<value> val = failableResult(impl(cons<value>("delete", mklist<value>(caddr(path)))));
     if (!hasContent(val))
         return mkfailure<int>(reason(val));

Modified: tuscany/sca-cpp/trunk/test/store-script/shopping-cart.scm
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/test/store-script/shopping-cart.scm?rev=895970&r1=895969&r2=895970&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/test/store-script/shopping-cart.scm (original)
+++ tuscany/sca-cpp/trunk/test/store-script/shopping-cart.scm Tue Jan  5 10:09:07 2010
@@ -39,11 +39,16 @@
   (find id (getcart cartId cache))
 )
 
-; Delete the cart
-(define (delete id cache)
+; Delete the whole cart
+(define (deleteall cache)
   (cache "delete" cartId)
 )
 
+; Delete an item from the  cart
+(define (delete id cache)
+  true
+)
+
 ; Return the price of an item
 (define (price item)
   (cadr (assoc 'price (caddr item)))

Modified: tuscany/sca-cpp/trunk/test/store-script/store-script-test.cpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/test/store-script/store-script-test.cpp?rev=895970&r1=895969&r2=895970&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/test/store-script/store-script-test.cpp (original)
+++ tuscany/sca-cpp/trunk/test/store-script/store-script-test.cpp Tue Jan  5 10:09:07 2010
@@ -39,7 +39,7 @@
 bool testScript() {
     gc_scoped_pool pool;
 
-    ifstream is("store-script.scm");
+    ifstream is("store-script-test.scm");
     ostringstream os;
     scheme::evalDriverRun(is, os, pool);
     assert(contains(str(os), "(\"Sample Feed\" \""));
@@ -52,7 +52,7 @@
 bool testEval() {
     {
         gc_scoped_pool pool;
-        ifstream is("store-script.scm");
+        ifstream is("store-script-test.scm");
         ostringstream os;
         scheme::setupDisplay(os);
         scheme::Env globalEnv = scheme::setupEnvironment(pool);
@@ -66,7 +66,7 @@
 
     {
         gc_scoped_pool pool;
-        ifstream is("store-script.scm");
+        ifstream is("store-script-test.scm");
         ostringstream os;
         scheme::setupDisplay(os);
 

Copied: tuscany/sca-cpp/trunk/test/store-script/store-script-test.scm (from r895959, tuscany/sca-cpp/trunk/test/store-script/store-script.scm)
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/test/store-script/store-script-test.scm?p2=tuscany/sca-cpp/trunk/test/store-script/store-script-test.scm&p1=tuscany/sca-cpp/trunk/test/store-script/store-script.scm&r1=895959&r2=895970&rev=895970&view=diff
==============================================================================
    (empty)

Modified: tuscany/sca-cpp/trunk/test/store-script/store.scm
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/test/store-script/store.scm?rev=895970&r1=895969&r2=895970&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/test/store-script/store.scm (original)
+++ tuscany/sca-cpp/trunk/test/store-script/store.scm Tue Jan  5 10:09:07 2010
@@ -20,6 +20,10 @@
   (shoppingCart "gettotal")
 )
 
+(define (deleteall catalog shoppingCart shoppingTotal)
+  (shoppingCart "deleteall")
+)
+
 (define (delete id catalog shoppingCart shoppingTotal)
   (shoppingCart "delete" id)
 )