Browse Source

first stage

Johannes Nickel 11 years ago
parent
commit
4d8270b84f

+ 56 - 0
app/controllers/taskbar_controller.rb

@@ -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 - 0
app/models/taskbar.rb

@@ -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 - 0
config/routes/taskbar.rb

@@ -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

+ 17 - 0
db/migrate/20130529124443_task_manager_states.rb

@@ -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