{
AtomError *error;
/* Publish requests go to the same IRI as the feed IRI */
- if (!atom_is_feed (ctx, atom_request_request (request)))
+ char *content = NULL;
+ size_t len = 0;
+ AtomEntry *entry;
+ atom_request_content (request, &content, &len);
+ /* TODO: If the content is not an Atom Entry, consider it a media
+ * publish request */
+ entry = atom_entry_new_data_len (content, len);
+ if (entry == NULL)
{
error = atom_error_new ();
atom_error_code_set (error, 400);
}
else
{
- char *content = NULL;
- size_t len = 0;
- AtomEntry *entry;
- atom_request_content (request, &content, &len);
- /* TODO: If the content is not an Atom Entry, consider it a media
- * publish request */
- entry = atom_entry_new_data_len (content, len);
- if (entry == NULL)
- {
- error = atom_error_new ();
- atom_error_code_set (error, 400);
- atom_error_message_set (error, "Bad Request");
- atom_error_set (ctx, error);
- }
- else
- {
- atom_publish_entry (ctx, atom_request_request (request), entry);
- /* TODO: Entry should be the backend representation and more
- * information should be given to the frontend */
- if (!atom_error_get (ctx))
- atom_handle_publish (ctx, entry);
- }
+ atom_publish_entry (ctx, atom_request_request (request), entry);
+ /* TODO: Entry should be the backend representation and more
+ * information should be given to the frontend */
+ if (!atom_error_get (ctx))
+ atom_handle_publish (ctx, entry);
}
}
return NULL;
}
if (path == NULL || *path == '\0')
- path = "/";
+ {
+ if (!strcmp (method, "POST"))
+ {
+ error = atom_error_new ();
+ atom_error_code_set (error, 400);
+ atom_error_message_set (error, "Bad Request");
+ atom_error_set (ctx, error);
+ return NULL;
+ }
+ path = "/";
+ }
if (!strcmp (method, "GET"))
{
/* Remove the leading slash before mapping */