Browse Source

add ui payload

Andrii Zadorozhnii 11 years ago
parent
commit
1f166ec233
3 changed files with 26 additions and 18 deletions
  1. 16 15
      src/kvs_feed.erl
  2. 4 3
      src/kvs_product.erl
  3. 6 0
      src/kvs_user.erl

+ 16 - 15
src/kvs_feed.erl

@@ -126,14 +126,14 @@ user_likes(UserId, {Page, PageAmount}) ->
 %% MQ API
 %% MQ API
 
 
 handle_notice([kvs_feed, _, Owner, entry, Eid, add],
 handle_notice([kvs_feed, _, Owner, entry, Eid, add],
-              [#entry{feed_id=Fid}=Entry|_],
+              [#entry{feed_id=Fid}=Entry|Rest],
               #state{owner=Owner} = S) ->
               #state{owner=Owner} = S) ->
     case lists:keyfind(Fid,2, S#state.feeds) of false -> skip;
     case lists:keyfind(Fid,2, S#state.feeds) of false -> skip;
     {_,_} ->
     {_,_} ->
-        error_logger:info_msg("[kvs_feed] => Add entry ~p to feed ~p.", [Eid, Fid]),
+        error_logger:info_msg("[kvs_feed] => Add entry ~p to feed ~p. Ui payload:~p", [Eid, Fid, Rest]),
         E = Entry#entry{id = {Eid, Fid}, entry_id = Eid, feeds=[comments]},
         E = Entry#entry{id = {Eid, Fid}, entry_id = Eid, feeds=[comments]},
         Added = case kvs:add(E) of {error, Err}-> {error,Err}; {ok, En} -> En end,
         Added = case kvs:add(E) of {error, Err}-> {error,Err}; {ok, En} -> En end,
-        msg:notify([kvs_feed, entry, {Eid, Fid}, added], [Added]) end,
+        msg:notify([kvs_feed, entry, {Eid, Fid}, added], [Added,Rest]) end,
     {noreply, S};
     {noreply, S};
 
 
 handle_notice([kvs_feed,_, Owner, entry, {Eid, FeedName}, edit],
 handle_notice([kvs_feed,_, Owner, entry, {Eid, FeedName}, edit],
@@ -152,26 +152,27 @@ handle_notice([kvs_feed,_, Owner, entry, {Eid, FeedName}, edit],
             msg:notify([kvs_feed, entry, {Eid, Fid}, updated], [Upd]) end end,
             msg:notify([kvs_feed, entry, {Eid, Fid}, updated], [Upd]) end end,
     {noreply, S};
     {noreply, S};
 
 
-handle_notice([kvs_feed,_, Owner, entry, {Eid,Fid}=Id, delete],
-              [],
-              #state{owner=Owner, feeds=Feeds} = State) ->
-    case lists:keyfind(Fid,2,Feeds) of false -> skip;
+handle_notice([kvs_feed, Owner, entry, delete],
+              [#entry{id=Id,feed_id=Fid}=E|Rest],
+              #state{owner=Owner, feeds=Feeds}=State) ->
+    case lists:keyfind(Fid,2,Feeds) of false -> ok;
     _ ->
     _ ->
         error_logger:info_msg("[kvs_feed] => Remove entry ~p from feed ~p", [Id, Fid]),
         error_logger:info_msg("[kvs_feed] => Remove entry ~p from feed ~p", [Id, Fid]),
-        kvs:remove(entry, Id),
-        msg:notify([kvs_feed, entry, Id, deleted], [#entry{id=Id, entry_id=Eid, feed_id=Fid}]) end,
-  {noreply, State};
+        Removed = case kvs:remove(entry, Id) of {error,E}->{error, E}; ok -> E end,
+        msg:notify([kvs_feed, entry, Id, deleted], [Removed|Rest]) end,
+
+    {noreply,State};
 
 
 handle_notice([kvs_feed, Owner, delete],
 handle_notice([kvs_feed, Owner, delete],
-              [#entry{entry_id=Eid}=E],
+              [#entry{entry_id=Eid}=E|Rest],
               #state{owner=Owner}=State) ->
               #state{owner=Owner}=State) ->
-    error_logger:info_msg("[kvs_feed] Delete all entries ~p ~p", [E#entry.id, Owner]),
+    error_logger:info_msg("[kvs_feed] Delete all entries ~p ~p", [E#entry.entry_id, Owner]),
 
 
-    [msg:notify([kvs_feed, RoutingType, To, entry, {Eid,Fid}, delete],[])
-        || #entry{feed_id=Fid, to={RoutingType, To}} <- kvs:all_by_index(entry, entry_id, Eid)],
+    [msg:notify([kvs_feed, To, entry, delete],[Ed|Rest])
+        || #entry{to={_, To}}=Ed <- kvs:all_by_index(entry, entry_id, Eid)],
 
 
     Removed = case kvs:remove(entry, {Eid, ?FEED(entry)}) of {error,E} -> {error,E}; ok -> E end,
     Removed = case kvs:remove(entry, {Eid, ?FEED(entry)}) of {error,E} -> {error,E}; ok -> E end,
-    msg:notify([kvs_feed, entry, {Eid, ?FEED(entry)}, deleted], [Removed]),
+    msg:notify([kvs_feed, entry, {Eid, ?FEED(entry)}, deleted], [Removed|Rest]),
 
 
     {noreply, State};
     {noreply, State};
 
 

+ 4 - 3
src/kvs_product.erl

@@ -109,7 +109,7 @@ handle_notice([kvs_product, Owner, create],
             [msg:notify([kvs_group, join, Gid], [{products, Id}, Entry]) || {Type, Gid} <- Recipients, Type==group],
             [msg:notify([kvs_group, join, Gid], [{products, Id}, Entry]) || {Type, Gid} <- Recipients, Type==group],
 
 
             case lists:keyfind(products, 1, Feeds) of false -> skip;
             case lists:keyfind(products, 1, Feeds) of false -> skip;
-            {_,Fid} -> msg:notify([kvs_feed, user, Owner, entry, Id, add], [Entry#entry{feed_id=Fid}]) end,
+            {_,Fid} -> msg:notify([kvs_feed, user, Owner, entry, Id, add], [Entry#entry{feed_id=Fid, to={user, Owner}}]) end,
             P
             P
         end end,
         end end,
 
 
@@ -158,7 +158,8 @@ handle_notice([kvs_product, Owner, delete],
             || #group_subscription{where=Gid} <- kvs_group:participate(P#product.id)],
             || #group_subscription{where=Gid} <- kvs_group:participate(P#product.id)],
 
 
         case lists:keyfind(products, 1, Feeds) of false -> skip;
         case lists:keyfind(products, 1, Feeds) of false -> skip;
-        {_,Fid} -> msg:notify([kvs_feed, user, Owner, entry, {P#product.id, Fid}, delete], []) end,
+        {_,Fid} -> case kvs:get(entry, {P#product.id, Fid}) of {error,_} -> ok;
+            {ok, E} -> msg:notify([kvs_feed, Owner, delete], [E]) end end,
 
 
         supervisor:terminate_child(workers_sup, {product, P#product.id}),
         supervisor:terminate_child(workers_sup, {product, P#product.id}),
         supervisor:delete_child(workers_sup, {product, P#product.id}),
         supervisor:delete_child(workers_sup, {product, P#product.id}),
@@ -170,7 +171,7 @@ handle_notice([kvs_product, Owner, delete],
 handle_notice(_Route, _Message, State) -> {noreply, State}.
 handle_notice(_Route, _Message, State) -> {noreply, State}.
 
 
 to_entry(#product{}=P) ->
 to_entry(#product{}=P) ->
-    Media = case P#product.cover of undefined -> [];
+    Media = case P#product.cover of undefined -> #media{};
         File ->
         File ->
             Thumbnail = filename:join([ filename:dirname(File), "thumbnail", filename:basename(File)]),
             Thumbnail = filename:join([ filename:dirname(File), "thumbnail", filename:basename(File)]),
             [#media{url=File, thumbnail_url = Thumbnail}] end,
             [#media{url=File, thumbnail_url = Thumbnail}] end,

+ 6 - 0
src/kvs_user.erl

@@ -131,6 +131,12 @@ handle_notice([kvs_user, user, registered], {_,_,#user{id=Who}=U}, #state{owner=
     kvs_account:transaction(Who, quota, DefaultQuota, #tx_default_assignment{}),
     kvs_account:transaction(Who, quota, DefaultQuota, #tx_default_assignment{}),
     {noreply, State};
     {noreply, State};
 
 
+handle_notice([kvs_user, user, Owner, delete],
+              [#user{}=U],
+              #state{owner=Owner}=State) ->
+    error_logger:info_msg("[kvs_user]Delete user ~p", [U]),
+    {noreply, State};
+
 handle_notice([kvs_user, login, user, Who, update_status],
 handle_notice([kvs_user, login, user, Who, update_status],
               Message,
               Message,
               #state{owner=Who} = State) ->
               #state{owner=Who} = State) ->