Backend now retrieves a request, not an Atom ID
[cascardo/atompub.git] / atom / backend.c
index d517748..793d23f 100644 (file)
@@ -25,9 +25,8 @@
 
 struct _atom_backend
 {
-  AtomEntry * (*retrieve_entry) (AtomCtx *, AtomID *);
+  AtomEntry * (*retrieve_entry) (AtomCtx *, char *);
   void (*enumerate_entries) (AtomCtx *, char ***, AtomEntry ***, size_t *);
-  int  (*is_feed) (AtomCtx *, AtomID *);
 };
 
 AtomBackend *
@@ -37,7 +36,6 @@ atom_backend_new ()
   backend = g_slice_new (AtomBackend);
   backend->retrieve_entry = NULL;
   backend->enumerate_entries = NULL;
-  backend->is_feed = NULL;
   return backend;
 }
 
@@ -50,7 +48,7 @@ atom_backend_delete (AtomBackend *backend)
 void
 atom_backend_retrieve_entry_set (AtomBackend *backend,
                                 AtomEntry *retrieve_entry (AtomCtx *,
-                                                           AtomID *))
+                                                           char *))
 {
   backend->retrieve_entry = retrieve_entry;
 }
@@ -65,20 +63,13 @@ atom_backend_enumerate_entries_set (AtomBackend *backend,
   backend->enumerate_entries = enumerate_entries;
 }
 
-void
-atom_backend_is_feed_set (AtomBackend *backend,
-                         int is_feed (AtomCtx *, AtomID *))
-{
-  backend->is_feed = is_feed;
-}
-
 AtomEntry *
-atom_retrieve_entry (AtomCtx *ctx, AtomID *id)
+atom_retrieve_entry (AtomCtx *ctx, char *req)
 {
   AtomBackend *backend;
   backend = atom_backend (ctx);
   if (backend && backend->retrieve_entry)
-    return backend->retrieve_entry (ctx, id);
+    return backend->retrieve_entry (ctx, req);
   return NULL;
 }
 
@@ -122,27 +113,6 @@ atom_backend_enumerate_entries (AtomCtx *ctx, char *** reqs,
     *len = rlen;
 }
 
-int
-atom_is_feed (AtomCtx *ctx, AtomID *id)
-{
-  AtomBackend *backend;
-  AtomError *aerr;
-  backend = atom_backend (ctx);
-  if (backend && backend->is_feed)
-    {
-      return backend->is_feed (ctx, id);
-    }
-  /* Frontend may make the decision of whether the requested resource is
-   * a feed or not. If it is not able to do so and backend isn't either,
-   * it is an error.
-   */
-  aerr = atom_error_new ();
-  atom_error_code_set (aerr, 404);
-  atom_error_message_set (aerr, "Not Found");
-  atom_error_set (ctx, aerr);
-  return 0;
-}
-
 AtomFeed *
 atom_retrieve_feed (AtomCtx *ctx)
 {