1class ProjectsController < ApplicationController |
|
|
|
3 before_action :authenticate |
|
4 skip_before_action :verify_authenticity_token, :only => [ |
|
5 :index, |
|
6 :create, |
|
7 :addUsers, |
|
8 :detail, |
|
9 :update, |
|
10 :deleteUsers |
|
11 ]
|
|
13 #=============================================>user_idsession. |
|
14 def index |
|
15 #Todo |
|
16 uid = session[:user_id] |
|
17 data=[]
|
|
18 Projects_user.where(:user_id => uid).each do |i| |
|
19 pid=i.project_id
|
|
20 p=Project.find_by(id:pid) |
|
21 mc = Mission.where(:project_id => pid).size |
|
22 uc = Projects_user.where(:project_id => pid).size |
|
23 sc = Share.where(:project_id => pid).size |
|
24 data+=[{
|
|
25 :id => pid, |
|
26 :name => p.name, |
|
27 :content => p.content, |
|
28 :mission_count => mc, |
|
29 :users_count => uc, |
|
30 :shares_count => sc |
|
31 }]
|
|
32 end |
|
33 render :json => { |
|
34 :code => 0, |
|
35 :data => data |
|
36 }
|
|
37 end |
|
39 #=============================================> |
|
41 def create |
|
42 uid = session[:user_id] |
|
43 project = Project.new(project_params) |
|
44 if project.save |
|
45 Projects_user.create(project_id:project.id,user_id:uid) |
|
46 render status: :created, nothing: true |
|
47 else |
|
48 render json: project.errors, status: :unprocessable_entity |
|
49 end |
|
50 end |
|
53 #=============================================> |
|
55 def addUsers |
|
56 uid = User.find_by(email:params[:email]).id# |
|
57 register = session[:user_id]# |
|
58 pid = params[:project_id] |
|
59 # |
|
60 pu_exist=Projects_user.find_by(project_id:pid,user_id:uid) |
|
61 if pu_exist.nil?# |
|
62 params_pu = {project_id: pid,user_id: uid} |
|
63 pu = Projects_user.new(params_pu) |
|
64 pu.save
|
|
66 content = "<a>"+User.find_by(id: register).name + "</a> <a>" + Project.find_by(id: pid).name+"</a>" |
|
67 puts content
|
|
68 params_note = {user_id: uid,content: content,category: 2,project_id: pid} |
|
69 note = Note.new(params_note) |
|
70 note.save!
|
|
71 render :json => {:code => 0} |
|
72 else# |
|
73 render json:current_user.errors, status: :unprocessable_entity |
|
74 end |
|
75 end |
|
77 #=============================================> |
|
78 def deleteUsers |
|
79 uid = params[:user_id]# |
|
80 register = session[:user_id]# |
|
81 pid = params[:project_id] |
|
82 # |
|
83 projects_user=Projects_user.find_by(project_id:pid,user_id:uid) |
|
84 if projects_user.nil?# |
|
85 render json:current_user.errors, status: :unprocessable_entity |
|
86 end |
|
87 # |
|
88 puts projects_user.user_id
|
|
89 puts projects_user.project_id
|
|
90 Projects_user.where(project_id:pid,user_id:uid).delete_all |
|
92 content ="<a>"+ User.find_by(id: register).name + "</a> <a>" + Project.find_by(id: pid).name+"</a> " |
|
93 puts content
|
|
94 params_note = {user_id: uid,content: content,category: 2,project_id: pid} |
|
95 note = Note.new(params_note) |
|
96 note.save!
|
|
98 render :json => {:code => 0} |
|
99 end |
|
101 #=============================================> |
|
103 def detail |
|
104 #Todo |
|
105 pid = params[:id] |
|
106 project = Project.find_by(id: pid) |
|
107 #uid = Projects_user.where(:project_id => pid) |
|
108 users = []
|
|
109 projects_users = Projects_user.where("project_id = ?",pid).all |
|
111 projects_users.each do |projects_user| |
|
112 uid = projects_user.user_id
|
|
113 i = User.find_by(id: uid) |
|
114 users += [{
|
|
115 :name => i.name, |
|
116 :id => i.id |
|
117 }]
|
|
118 end |
|
119 #puts users.inspect |
|
120 # Users.find(uid).each do |i| |
|
121 # users += [{ |
|
122 # :nickname => i.name, |
|
123 # :id => i.id |
|
124 # }] |
|
125 # end |
|
126 render :json => { |
|
127 :code => 0, |
|
128 :data => { |
|
129 :name => project.name, |
|
130 :content => project.content, |
|
131 :users => users |
|
132 }
|
|
133 }
|
|
134 end |
|
136 #=============================================> |
|
137 def update |
|
138 project = Project.find_by(:id => params[:project][:id]) |
|
139 if project.update(project_params) |
|
140 render :json => {:code => 0} |
|
141 else |
|
142 render json:current_user.errors, status: :unprocessable_entity |
|
143 end |
|
144 end |
|
146 private
|
|
147 def project_params |
|
148 params.require(:project).permit(:name,:content,:id) |
|
149 end |
|
150end |