summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.de>2010-01-09 18:24:42 +0100
committerChristoph Helma <helma@in-silico.de>2010-01-09 18:24:42 +0100
commit8b7c1006a4502f22575115bedabca15133b424b3 (patch)
treec80c0386a88e2de1c8d7fe323290e872cc35c36b
parentd94decfd1d93b13aad733e5adaad09d676eb691d (diff)
tasks added
-rw-r--r--application.rb37
1 files changed, 20 insertions, 17 deletions
diff --git a/application.rb b/application.rb
index 329b0ac..8c67180 100644
--- a/application.rb
+++ b/application.rb
@@ -4,17 +4,16 @@ require 'opentox-ruby-api-wrapper'
require 'dm-core'
require 'dm-serializer'
require 'dm-timestamps'
-
-set :lock, true
+require 'dm-types'
DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/task.sqlite3")
class Task
include DataMapper::Resource
property :id, Serial
- property :uri, String
- property :resource, String
- property :status, Text
+ property :uri, String, :length => 100
+ property :resource, String, :length => 100
+ property :status, String, :default => "created"
property :created_at, DateTime
property :finished_at, DateTime
end
@@ -37,27 +36,31 @@ get '/:id/:property/?' do
end
post '/?' do
- task = Task.new :resource => params[:resource_uri], :status => "started"
- task.save
+ task = Task.new
+ task.save # needed to create id
task.uri = url_for("/#{task.id}", :full)
task.save
task.uri
end
-put '/:id/completed' do
+put '/:id/:status/?' do
task = Task.get(params[:id])
- task.status = "completed"
- task.finished_at = DateTime.now
- task.save
-end
-
-put '/:id/cancel' do
- task = Task.get(params[:id])
- task.status = "cancelled"
+ task.status = params[:status]
+ if params[:status] == "completed"
+ task.resource = params[:resource]
+ task.finished_at = DateTime.now
+ end
task.save
end
delete '/:id/?' do
- Task.destroy!(params[:id])
+ Task.get(params[:id]).destroy!
+ "Task #{params[:id]} deleted."
end
+delete '/?' do
+ Task.all.each do |task|
+ task.destroy!
+ end
+ "All tasks deleted."
+end