VRFS-281 initial dev for notification framework

This commit is contained in:
Brian Smith 2013-03-21 20:17:28 -04:00
parent 123b772d23
commit eecbbdcbd4
7 changed files with 26 additions and 12 deletions

View File

@ -117,14 +117,15 @@
$('div[layout=sidebar] div[user-id=' + val.id + ']').find('#btn-connect-friend').click(sendFriendRequest); $('div[layout=sidebar] div[user-id=' + val.id + ']').find('#btn-connect-friend').click(sendFriendRequest);
}); });
// show header
$('#sidebar-search-header').show(); $('#sidebar-search-header').show();
hidePanels();
$('#sidebar-search-results').height(getHeight() + 'px');
}
function hidePanels() { // hide panels
$('[layout-panel="contents"]').hide(); $('[layout-panel="contents"]').hide();
$('[layout-panel="contents"]').css({"height": "1px"}); $('[layout-panel="contents"]').css({"height": "1px"});
// resize search results area
$('#sidebar-search-results').height(getHeight() + 'px');
} }
function getHeight() { function getHeight() {

View File

@ -49,8 +49,9 @@ class ApiInvitationsController < ApiController
unless @invitation.errors.any? unless @invitation.errors.any?
User.save_session_settings(current_user, music_session) User.save_session_settings(current_user, music_session)
invitation_notification = @message_factory.session_invitation(receiver.id, @invitation.id)
@mq_router.publish_to_user(receiver.id, invitation_notification) # send notification
Notification.send_session_invitation(receiver.id, @invitation.id)
respond_with @invitation, :responder => ApiResponder, :location => api_invitation_detail_url(@invitation) respond_with @invitation, :responder => ApiResponder, :location => api_invitation_detail_url(@invitation)
else else

View File

@ -34,8 +34,8 @@ class ApiJoinRequestsController < ApiController
response.status = :unprocessable_entity response.status = :unprocessable_entity
respond_with @join_request respond_with @join_request
else else
join_request_notification = @message_factory.join_request(music_session.id, @join_request.id, sender.name, text) # send notification
@mq_router.server_publish_to_session(music_session, join_request_notification) Notification.send_join_request(music_session, @join_request, sender, text)
respond_with @join_request, :responder => ApiResponder, :location => api_join_request_detail_url(@join_request) respond_with @join_request, :responder => ApiResponder, :location => api_join_request_detail_url(@join_request)
end end
end end

View File

@ -8,6 +8,7 @@ class ApiUsersController < ApiController
:favorite_create, :favorite_destroy, # favorites :favorite_create, :favorite_destroy, # favorites
:friend_request_index, :friend_request_show, :friend_request_create, :friend_request_update, # friend requests :friend_request_index, :friend_request_show, :friend_request_create, :friend_request_update, # friend requests
:friend_index, :friend_destroy, # friends :friend_index, :friend_destroy, # friends
:notification_index, # notifications
:band_invitation_index, :band_invitation_show, :band_invitation_update, # band invitations :band_invitation_index, :band_invitation_show, :band_invitation_update, # band invitations
:set_password] :set_password]
@ -338,6 +339,12 @@ class ApiUsersController < ApiController
respond_with responder: ApiResponder, :status => 204 respond_with responder: ApiResponder, :status => 204
end end
###################### NOTIFICATIONS ####################
def notification_index
@notifications = @user.formatted_notifications
respond_with @notifications, responder: ApiResponder, :status => 200
end
##################### BAND INVITATIONS ################## ##################### BAND INVITATIONS ##################
def band_invitation_index def band_invitation_index
@invitations = @user.received_band_invitations @invitations = @user.received_band_invitations

View File

@ -121,6 +121,9 @@ SampleApp::Application.routes.draw do
match '/users/:id/friends' => 'api_users#friend_index', :via => :get match '/users/:id/friends' => 'api_users#friend_index', :via => :get
match '/users/:id/friends/:friend_id' => 'api_users#friend_destroy', :via => :delete match '/users/:id/friends/:friend_id' => 'api_users#friend_destroy', :via => :delete
# notifications
match '/users/:id/notifications' => 'api_users#notification_index', :via => :get
# user band invitations # user band invitations
match '/users/:id/band_invitations' => 'api_users#band_invitation_index', :via => :get match '/users/:id/band_invitations' => 'api_users#band_invitation_index', :via => :get
match '/users/:id/band_invitations/:invitation_id' => 'api_users#band_invitation_show', :via => :get, :as => 'api_user_band_invitation_detail' match '/users/:id/band_invitations/:invitation_id' => 'api_users#band_invitation_show', :via => :get, :as => 'api_user_band_invitation_detail'

View File

@ -102,8 +102,9 @@ class MusicSessionManager < BaseManager
else else
# send out notification to queue to the rest of the session # send out notification to queue to the rest of the session
# TODO: also this isn't necessarily a user leaving; it's a client leaving' # TODO: also this isn't necessarily a user leaving; it's a client leaving'
user_joined = @message_factory.user_joined_music_session(connection.music_session.id, user.id, user.name)
@mq_router.server_publish_to_session(connection.music_session, user_joined, sender = {:client_id => connection.client_id}) # send notification
Notification.send_session_joined(connection, user)
end end
end end
@ -122,8 +123,9 @@ class MusicSessionManager < BaseManager
# send out notification to queue to the rest of the session # send out notification to queue to the rest of the session
# TODO: we should rename the notification to music_session_participants_change or something # TODO: we should rename the notification to music_session_participants_change or something
# TODO: also this isn't necessarily a user leaving; it's a client leaving' # TODO: also this isn't necessarily a user leaving; it's a client leaving'
user_left = @message_factory.user_left_music_session(music_session.id, user.id, user.first_name + " " + user.last_name)
@mq_router.server_publish_to_session(music_session, user_left, sender = {:client_id => connection.client_id}) # send notification
Notification.send_session_left(music_session, connection, user)
end end
end end
end end