diff --git a/server/harp_blog/post.rb b/server/harp_blog/post.rb index 371922f..84994a8 100644 --- a/server/harp_blog/post.rb +++ b/server/harp_blog/post.rb @@ -77,12 +77,11 @@ class HarpBlog end def url - @url ||= - if draft? - "/posts/drafts/#{id}" - else - "/posts/#{time.year}/#{padded_month}/#{slug}" - end + if draft? + "/posts/drafts/#{id}" + else + "/posts/#{time.year}/#{padded_month}/#{slug}" + end end def slug diff --git a/server/server.rb b/server/server.rb index 5d0f13d..5231e57 100755 --- a/server/server.rb +++ b/server/server.rb @@ -186,7 +186,7 @@ get '/posts/drafts/:id' do |id| end end -# make a draft +# make a draft, and optionally publish it immediately post '/posts/drafts' do unless authenticated?(request.env['HTTP_AUTH']) status 403 @@ -196,6 +196,10 @@ post '/posts/drafts' do id, title, body, link = @fields.values_at('id', 'title', 'body', 'link') begin if post = blog.create_post(title, body, link, id: id, draft: true) + if @fields['publish'] == 'true' + post = blog.publish_post(post) + blog.publish(@fields['env']) + end url = url_for(post.url) status 201 headers 'Location' => url, 'Content-Type' => 'application/json'