]> gitweb.fluxo.info Git - semanticscuttle.git/commitdiff
delicious returns a proper error message when deleting non-existant items, which...
authorcweiske <cweiske@b3834d28-1941-0410-a4f8-b48e95affb8f>
Wed, 29 Sep 2010 20:49:14 +0000 (20:49 +0000)
committercweiske <cweiske@b3834d28-1941-0410-a4f8-b48e95affb8f>
Wed, 29 Sep 2010 20:49:14 +0000 (20:49 +0000)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@770 b3834d28-1941-0410-a4f8-b48e95affb8f

doc/developers/api [new file with mode: 0644]
tests/Api/PostsDeleteTest.php
www/api/posts_delete.php

diff --git a/doc/developers/api b/doc/developers/api
new file mode 100644 (file)
index 0000000..efa05fe
--- /dev/null
@@ -0,0 +1,10 @@
+SemanticScuttle API
+===================
+
+SemanticScuttle tries to implement the delicious API v1 as closely as sensible.
+
+Where it makes sense and the delicious API just does things plainly wrong
+(i.e. when returning a wrong status code on an error), we do it better.
+
+- http://www.delicious.com/help/api
+- http://support.delicious.com/forum/comments.php?DiscussionID=5286&page=1
index 626746fb01bfa068c5a6d0b59f3e2f5907a57855..d9fb6cd4724c782f6f38f3521a4e7b3be73f8cf0 100644 (file)
@@ -215,7 +215,7 @@ class Api_PostsDeleteTest extends TestBaseApi
         $this->assertTag(
             array(
                 'tag'        => 'result',
-                'attributes' => array('code' => 'something went wrong')
+                'attributes' => array('code' => 'item not found')
             ),
             $res->getBody(),
             '', false
index 982b686bbb7a54ba103a7ffc9b158289e2e65b87..03cc968ef71f6cdcad0036511dcfe3f4981788bb 100644 (file)
@@ -4,8 +4,6 @@
  * The delicious API is implemented here.
  *
  * The delicious API behaves like that:
- * - returns "done" even if the bookmark doesn't exist
- *   - we do it correctly
  * - does NOT allow the hash for the url parameter
  * - doesn't set the Content-Type to text/xml
  *   - we do it correctly, too
@@ -35,26 +33,24 @@ $uId = $userservice->getCurrentUserId();
 if (!isset($_REQUEST['url'])
     || $_REQUEST['url'] == ''
 ) {
-    $deleted = false;
+    $msg = 'something went wrong';
 } else if (!$bs->bookmarkExists($_REQUEST['url'], $uId)) {
     //the user does not have such a bookmark
-    // Note that del.icio.us only errors out if no URL was passed in;
-    // there's no error on attempting to delete a bookmark you don't have.
-    // this sucks, and I don't care about being different but correct here.
     header('HTTP/1.0 404 Not Found');
-    $deleted = false;
-
+    $msg = 'item not found';
 } else {
     $bookmark = $bs->getBookmarkByAddress($_REQUEST['url'], false);
     $bId      = $bookmark['bId'];
     $deleted  = $bs->deleteBookmark($bId);
+    $msg      = 'done';
     if (!$deleted) {
         //something really went wrong
         header('HTTP/1.0 500 Internal Server Error');
+        $msg = 'something really went wrong';
     }
 }
 
 // Set up the XML file and output the result.
 echo '<?xml version="1.0" standalone="yes" ?' . ">\r\n";
-echo '<result code="' . ($deleted ? 'done' : 'something went wrong') . '" />';
+echo '<result code="' . $msg . '" />';
 ?>
\ No newline at end of file