2012-10-14 02:22:13 +00:00
class ApiUsersController < ApplicationController
2012-10-14 04:29:49 +00:00
before_filter :signed_in_user , only : [ :index , :edit , :update , :delete ,
2012-10-15 12:46:51 +00:00
:friend_request_index , :friend_request_show ,
:friend_request_create , :friend_request_update ,
2012-10-14 04:29:49 +00:00
:friend_index , :friend_destroy ]
2012-10-14 02:22:13 +00:00
respond_to :json
def index
@users = User . paginate ( page : params [ :page ] )
end
2012-10-15 12:46:51 +00:00
def show
@user = User . find ( params [ :id ] )
end
2012-10-14 02:22:13 +00:00
def create
@user = User . new ( )
2012-10-15 12:46:51 +00:00
@user . email = params [ :email ]
2012-10-14 02:22:13 +00:00
@user . creator = current_user
@user . description = params [ :description ]
@user . save
respond_with @user , responder : ApiResponder , :location = > api_user_detail_url ( @user )
end
def delete
@user = User . find ( params [ :id ] )
@user . delete
respond_with @user , responder : ApiResponder
end
def friend_request_index
2012-10-15 12:46:51 +00:00
# get all outgoing and incoming friend requests
@friend_requests = FriendRequest . where ( " (friend_id=' #{ params [ :id ] } ' OR user_id=' #{ params [ :id ] } ') AND accepted is null " )
2012-10-14 02:22:13 +00:00
end
2012-10-15 12:46:51 +00:00
def friend_request_show
@friend_request = FriendRequest . find ( params [ :id ] )
2012-10-14 02:22:13 +00:00
end
2012-10-15 12:46:51 +00:00
def friend_request_create
@friend_request = FriendRequest . new ( )
@friend_request . user_id = params [ :user_id ]
@friend_request . friend_id = params [ :friend_id ]
@friend_request . save
respond_with @friend_request , responder : ApiResponder , :location = > api_friend_request_detail_url ( @friend_request )
2012-10-14 02:22:13 +00:00
end
2012-10-14 04:29:49 +00:00
def friend_request_update
2012-10-15 12:46:51 +00:00
@friend_request = FriendRequest . find ( params [ :id ] )
@friend_request . accepted = params [ :accepted ]
@friend_request . save
# create both records for this friendship
if @friend_request . accepted?
@friendship = Friendship . new ( )
@friendship . user_id = @friend_request . user_id
@friendship . friend_id = @friend_request . friend_id
@friendship . save
@friendship = Friendship . new ( )
@friendship . user_id = @friend_request . friend_id
@friendship . friend_id = @friend_request . user_id
@friendship . save
end
respond_with @friend_request , responder : ApiResponder
2012-10-14 02:22:13 +00:00
end
2012-10-14 04:29:49 +00:00
def friend_index
# NOTE: friend_index.rabl template references the friends property
@user = User . find ( params [ :id ] )
2012-10-14 02:22:13 +00:00
end
def friend_destroy
2012-10-15 12:46:51 +00:00
# clean up both records representing this "friendship"
2012-10-14 04:29:49 +00:00
JamRuby :: Friendship . delete_all " (user_id = ' #{ params [ :id ] } ' AND friend_id = ' #{ params [ :friend_id ] } ') OR (user_id = ' #{ params [ :friend_id ] } ' AND friend_id = ' #{ params [ :id ] } ') "
2012-10-15 12:46:51 +00:00
respond_with responder : ApiResponder
2012-10-14 02:22:13 +00:00
end
end