bit nicer
[rails.git] / app / controllers / node_controller.rb
1 class NodeController < ApplicationController
2   require 'xml/libxml'
3
4   before_filter :authorize
5
6   def create
7     if request.put?
8       node = Node.from_xml(request.raw_post, true)
9
10       if node
11         node.user_id = @user.id
12         if node.save_with_history
13
14           render :text => node.id
15         else
16           render :text => 'truesrgtsrtfgsar', :status => 500
17 #          render :nothing => true, :status => 500
18         end
19         return
20
21       else
22         render :nothing => true, :status => 400 # if we got here the doc didnt parse
23         return
24       end
25     end
26
27           render :text => 'FFFFFFFFFF ', :status => 500
28 #    render :nothing => true, :status => 500 # something went very wrong
29   end
30
31   def rest
32     unless Node.exists?(params[:id])
33       render :nothing => true, :status => 400
34       return
35     end
36
37     node = Node.find(params[:id])
38
39     case request.method
40
41     when :get
42       render :text => node.to_xml.to_s
43       return
44
45     when :delete
46
47       if node.visible
48         node.visible = 0
49
50         node.save_with_history
51
52         render :nothing => true
53       else
54         render :nothing => true, :status => 410
55       end
56
57     when :put
58
59       new_node = Node.from_xml(request.raw_post)
60
61       new_node.timestamp = Time.now
62       new_node.user_id = @user.id
63
64       if node.id == new_node.id and new_node.save_with_history
65         render :text => node.id
66       else
67         render :nothing => true, :status => 500
68       end
69       return
70     end
71
72   end
73
74
75 end