first stage

This commit is contained in:
Johannes Nickel 2013-05-29 17:11:11 +02:00
parent acaab690ef
commit 4d8270b84f
4 changed files with 94 additions and 0 deletions

View file

@ -0,0 +1,56 @@
class TaskbarController < ApplicationController
before_filter :authentication_check
def index
current_user_tasks = Taskbar.where(:user_id=>current_user.id)
model_index_render_result(current_user_tasks)
end
def show
taskbar = Taskbar.find(params[:id])
if taskbar.user_id != current_user.id
render :json => { :error => 'Not allowed to show this task.' }, :status => :unprocessable_entity
return
end
model_show_render_item(taskbar)
end
def create
params[:user_id] = current_user.id
model_create_render(taskbar,params)
end
def update
params[:user_id] = current_user.id
taskbar = Taskbar.find(params[:id])
if taskbar.user_id != current_user.id
render :json => { :error => 'Not allowed to update this task.' }, :status => :unprocessable_entity
return
end
model_update_render_item(taskbar, params)
end
def destroy
params[:user_id] = current_user.id
taskbar = Taskbar.find(params[:id])
if taskbar.user_id != current_user.id
render :json => { :error => 'Not allowed to delete this task.' }, :status => :unprocessable_entity
return
end
model_destory_render_item(taskbar)
taskbar.destroy
end
end

11
app/models/taskbar.rb Normal file
View file

@ -0,0 +1,11 @@
class Taskbar < ApplicationModel
store :state, :params
before_create :update_time
before_update :update_time
private
def update_last_contact
self.last_contact = Time.now
end
end

10
config/routes/taskbar.rb Normal file
View file

@ -0,0 +1,10 @@
module ExtraRoutes
def add(map)
map.match '/api/taskbar', :to => 'taskbar#index', :via => :get
map.match '/api/taskbar/:id', :to => 'taskbar#show', :via => :get
map.match '/api/taskbar', :to => 'taskbar#create', :via => :post
map.match '/api/taskbar/:id', :to => 'taskbar#update', :via => :put
map.match '/api/taskbar/:id', :to => 'taskbar#destroy', :via => :delete
end
module_function :add
end

View file

@ -0,0 +1,17 @@
class TaskManagerStates < ActiveRecord::Migration
def up
create_table :taskbars do |t|
t.column :user_id, :integer, :null => false
t.column :last_contact, :datetime, :null => false
t.column :client_id, :string, :null => false
t.column :state, :string, :limit => 8000,:null => true
t.column :params, :string, :limit => 2000,:null => true
t.timestamps
end
end
def down
drop_table :taskbars
end
end