AtomID *id;
AtomEntry *atom;
AtomError *error;
- id = atom_id_new (path);
- atom = atom_retrieve_entry (ctx, id);
- atom_id_delete (id);
+ char *req;
+ id = atom_id_new_from_frontend (ctx, path);
+ if (id == NULL || (req = atom_id_to_backend (ctx, id)) == NULL)
+ {
+ atom = NULL;
+ error = atom_error_new ();
+ atom_error_code_set (error, 404);
+ atom_error_message_set (error, "Resource not found");
+ atom_error_set (ctx, error);
+ }
+ else
+ {
+ atom = atom_retrieve_entry (ctx, req);
+ }
+ if (id != NULL)
+ atom_id_delete (id);
if (atom)
{
char * str;