Browse Source

accept code review

Maxim Sokhatsky 12 years ago
parent
commit
9040fa566a

+ 1 - 1
include/attachments.hrl

@@ -6,4 +6,4 @@
         file,
         file,
         thumb,
         thumb,
         owner,
         owner,
-        create_data}).
+        data}).

+ 3 - 6
include/feeds.hrl

@@ -10,8 +10,7 @@
         from, %% author
         from, %% author
         to,
         to,
         description,
         description,
-        raw_description,
-        created_time,
+        created, % time
         hidden,
         hidden,
         access,
         access,
         shared,
         shared,
@@ -28,8 +27,7 @@
         next,
         next,
         prev}).
         prev}).
 
 
--record(id_seq, {thing, %% feed, user, group, ...
-                 id = 100000}).
+-record(id_seq, {thing, id}).
 
 
 -record(media, {
 -record(media, {
         id,
         id,
@@ -47,10 +45,9 @@
         id,          %% {comment_id, entry_id}
         id,          %% {comment_id, entry_id}
         comment_id,  %% generowane przez id_seq
         comment_id,  %% generowane przez id_seq
         entry_id,    %% index
         entry_id,    %% index
-        raw_content, %% raw text of comment
         content,     %% text of comment
         content,     %% text of comment
         author_id,
         author_id,
-        create_time,
+        creation_time,
         media = [],  %% for oembed
         media = [],  %% for oembed
         parent,
         parent,
         comments,
         comments,

+ 3 - 5
include/groups.hrl

@@ -1,17 +1,16 @@
 -include("types.hrl").
 -include("types.hrl").
 
 
 -record(group,{
 -record(group,{
-        username,  % this is an id, has nothing to do with users or name
+        id,
         name,
         name,
         description,
         description,
-        publicity,
+        scope :: public | private,
         creator,
         creator,
         created,
         created,
         owner,
         owner,
         feed,
         feed,
         users_count = 0 :: integer(),   % we have to store this, counting would be very expensive and this number is sufficient for sorting and stuff
         users_count = 0 :: integer(),   % we have to store this, counting would be very expensive and this number is sufficient for sorting and stuff
-        entries_count = 0 :: integer()  
-        }).
+        entries_count = 0 :: integer() }).
 
 
 -record(group_subscription, {
 -record(group_subscription, {
         key,
         key,
@@ -22,4 +21,3 @@
         }).
         }).
 
 
 -define(GROUP_EXCHANGE(GroupId), list_to_binary("group_exchange."++GroupId++".fanout")).
 -define(GROUP_EXCHANGE(GroupId), list_to_binary("group_exchange."++GroupId++".fanout")).
-

+ 2 - 3
include/meetings.hrl

@@ -10,7 +10,7 @@
         game_type,
         game_type,
         description,
         description,
         creator,
         creator,
-        created,
+        created, % time
         start_date,
         start_date,
         start_time,
         start_time,
         end_date,
         end_date,
@@ -34,6 +34,5 @@
         game_id, % { game id that user played under that team }
         game_id, % { game id that user played under that team }
         realname,
         realname,
         points, % [{money,Point},{bonus,Points}]
         points, % [{money,Point},{bonus,Points}]
-        quota,
-        other }).
+        quota }).
 
 

+ 0 - 4
include/purchases.hrl

@@ -3,7 +3,3 @@
         timestamp,
         timestamp,
         product_id }).
         product_id }).
 
 
--record(user_basket, {
-        username,
-        timestamp,
-        product_id }).

+ 1 - 3
include/users.hrl

@@ -52,8 +52,7 @@
         district = "",
         district = "",
         postal_code = "",
         postal_code = "",
         phone = "",
         phone = "",
-        personal_id = ""
-        }).
+        personal_id = "" }).
 
 
 -record(user_type,{
 -record(user_type,{
         id,
         id,
@@ -88,7 +87,6 @@
 -record(user_ignores, {who, whom}).
 -record(user_ignores, {who, whom}).
 -record(user_ignores_rev, {whom, who}).
 -record(user_ignores_rev, {whom, who}).
 
 
--record(user_count, {count}).
 -record(twitter_oauth, {user_id, token, secret}).
 -record(twitter_oauth, {user_id, token, secret}).
 -record(facebook_oauth, {user_id, access_token}).
 -record(facebook_oauth, {user_id, access_token}).
 
 

+ 7 - 8
src/kvs.erl

@@ -41,11 +41,11 @@ init_db() ->
             kvs_account:create_account(system),
             kvs_account:create_account(system),
             add_sample_users(),
             add_sample_users(),
             add_sample_packages(),
             add_sample_packages(),
-            add_payments(),
+            add_sample_payments(),
             add_translations();
             add_translations();
         {ok,_} -> ignore end.
         {ok,_} -> ignore end.
 
 
-add_payments() ->
+add_sample_payments() ->
     {ok, Pkg1} = kvs:get(membership,1),
     {ok, Pkg1} = kvs:get(membership,1),
     {ok, Pkg2} = kvs:get(membership,2),
     {ok, Pkg2} = kvs:get(membership,2),
     {ok, Pkg3} = kvs:get(membership,3),
     {ok, Pkg3} = kvs:get(membership,3),
@@ -90,9 +90,9 @@ add_translations() ->
 
 
 add_sample_users() ->
 add_sample_users() ->
 
 
-    Groups = [ #group{username="Clojure"},
-               #group{username="Haskell"},
-               #group{username="Erlang"} ],
+    Groups = [ #group{id="Clojure"},
+               #group{id="Haskell"},
+               #group{id="Erlang"} ],
 
 
     UserList = [
     UserList = [
         #user{username = "maxim", password="pass", name = "Maxim", surname = "Sokhatsky",
         #user{username = "maxim", password="pass", name = "Maxim", surname = "Sokhatsky",
@@ -114,7 +114,7 @@ add_sample_users() ->
     {ok, Quota} = kvs:get(config,"accounts/default_quota", 300),
     {ok, Quota} = kvs:get(config,"accounts/default_quota", 300),
 
 
     [ begin
     [ begin
-        [ kvs_group:join(Me#user.username,G#group.username) || G <- Groups ],
+        [ kvs_group:join(Me#user.username,G#group.id) || G <- Groups ],
           kvs_account:create_account(Me#user.username),
           kvs_account:create_account(Me#user.username),
           kvs_account:transaction(Me#user.username, quota, Quota, #tx_default_assignment{}),
           kvs_account:transaction(Me#user.username, quota, Quota, #tx_default_assignment{}),
           kvs:put(Me#user{password = kvs:sha(Me#user.password), starred = kvs_feed:create(), pinned = kvs_feed:create()})
           kvs:put(Me#user{password = kvs:sha(Me#user.password), starred = kvs_feed:create(), pinned = kvs_feed:create()})
@@ -238,8 +238,7 @@ coalesce(undefined, B) -> B;
 coalesce(A, _) -> A.
 coalesce(A, _) -> A.
 
 
 sha(Raw) ->
 sha(Raw) ->
-    lists:flatten(
-      [io_lib:format("~2.16.0b", [N]) || <<N>> <= crypto:sha(Raw)]).
+    lists:flatten([io_lib:format("~2.16.0b", [N]) || <<N>> <= crypto:sha(Raw)]).
 
 
 sha_upper(Raw) ->
 sha_upper(Raw) ->
     SHA = sha(Raw),
     SHA = sha(Raw),

+ 10 - 24
src/kvs_account.erl

@@ -7,7 +7,7 @@
 -compile(export_all).
 -compile(export_all).
 
 
 transaction(Account, Currency, 0, TransactionInfo) -> ok;
 transaction(Account, Currency, 0, TransactionInfo) -> ok;
-transaction(Account, Currency, Amount, TransactionInfo) when Amount /= 0->
+transaction(Account, Currency, Amount, TransactionInfo) when Amount /= 0 ->
     {Remitter, Acceptor} = if Amount > 0 -> {system, Account}; true -> {Account, system} end,
     {Remitter, Acceptor} = if Amount > 0 -> {system, Account}; true -> {Account, system} end,
     transaction(Remitter, Acceptor, Currency, abs(Amount), TransactionInfo).
     transaction(Remitter, Acceptor, Currency, abs(Amount), TransactionInfo).
 transaction(Remitter, Acceptor, Currency, Amount, TransactionInfo) ->
 transaction(Remitter, Acceptor, Currency, Amount, TransactionInfo) ->
@@ -36,8 +36,7 @@ create_account(AccountId) ->
     catch _:_ -> {error, unable_create_account} end.
     catch _:_ -> {error, unable_create_account} end.
 
 
 create_account(AccountId, Currency) ->
 create_account(AccountId, Currency) ->
-    Account = #account{id = {AccountId, Currency},
-                       credit = 0, debet = 0, last_change = 0},
+    Account = #account{id = {AccountId, Currency}, credit = 0, debet = 0, last_change = 0},
 
 
     case kvs:put(Account) of
     case kvs:put(Account) of
          ok -> ok;
          ok -> ok;
@@ -49,18 +48,11 @@ check_quota(User, Amount) ->
     SoftLimit = kvs:get_config("accounts/quota_limit/soft",  -20),
     SoftLimit = kvs:get_config("accounts/quota_limit/soft",  -20),
     {ok, Balance} = balance(User, quota),
     {ok, Balance} = balance(User, quota),
     BalanceAfterChange = Balance - Amount,
     BalanceAfterChange = Balance - Amount,
-    if
-        BalanceAfterChange > SoftLimit ->
-            ok;
+    if  BalanceAfterChange > SoftLimit -> ok;
         true ->
         true ->
             HardLimit = kvs:get(config, "accounts/quota_limit/hard",  -100),
             HardLimit = kvs:get(config, "accounts/quota_limit/hard",  -100),
-            if
-                BalanceAfterChange =< HardLimit ->
-                    {error, hard_limit};
-                true ->
-                    {error, soft_limit}
-            end
-    end.
+            if  BalanceAfterChange =< HardLimit -> {error, hard_limit};
+                true -> {error, soft_limit} end end.
 
 
 commit_transaction(#transaction{remitter = R, acceptor = A,  currency = Currency, amount = Amount} = TX) ->
 commit_transaction(#transaction{remitter = R, acceptor = A,  currency = Currency, amount = Amount} = TX) ->
     case change_accounts(R, A, Currency, Amount) of
     case change_accounts(R, A, Currency, Amount) of
@@ -68,6 +60,8 @@ commit_transaction(#transaction{remitter = R, acceptor = A,  currency = Currency
                mqs:notify([transaction, user, A, add_transaction], TX);
                mqs:notify([transaction, user, A, add_transaction], TX);
          Error -> skip end.
          Error -> skip end.
 
 
+check_remitter_balance(RA, Amount) -> ok.
+
 change_accounts(Remitter, Acceptor, Currency, Amount) ->
 change_accounts(Remitter, Acceptor, Currency, Amount) ->
     case {kvs:get(account,{Remitter, Currency}), kvs:get(account,{Acceptor, Currency})} of
     case {kvs:get(account,{Remitter, Currency}), kvs:get(account,{Acceptor, Currency})} of
         {{ok, RA = #account{}}, {ok, AA = #account{}}}  ->
         {{ok, RA = #account{}}, {ok, AA = #account{}}}  ->
@@ -81,16 +75,8 @@ change_accounts(Remitter, Acceptor, Currency, Amount) ->
         {#account{}, {error, Reason}} -> {error, {acceptor_account_unavailable, Reason}};
         {#account{}, {error, Reason}} -> {error, {acceptor_account_unavailable, Reason}};
         {RE, AE} -> {error, both_accounts_unavailable} end.
         {RE, AE} -> {error, both_accounts_unavailable} end.
 
 
-check_remitter_balance(#account{id = {system, _}}, _) -> ok;
-check_remitter_balance(_Account, _Amount) -> ok.
-
 get_currencies() -> [internal, currency, money, quota, points].
 get_currencies() -> [internal, currency, money, quota, points].
-
-generate_id() ->
-    {MegSec, Sec, MicroSec} = now(),
-    H = erlang:phash2(make_ref()),
-    lists:concat([MegSec*1000000000000, Sec*1000000, MicroSec, "-", H]).
-
+generate_id() -> {now(),make_ref()}.
 transactions(UserId) -> tx_list(UserId, undefined, 10000).
 transactions(UserId) -> tx_list(UserId, undefined, 10000).
 
 
 tx_list(UserId, undefined, PageAmount) ->
 tx_list(UserId, undefined, PageAmount) ->
@@ -116,7 +102,7 @@ handle_notice(Route, Message, State) -> error_logger:info_msg("Unknown ACCOUNTS
 %%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 add_transaction_to_user(UserId,Purchase) ->
 add_transaction_to_user(UserId,Purchase) ->
-    {ok,Team} = case kvs:get(user_transaction, UserId) of
+    {ok,Top} = case kvs:get(user_transaction, UserId) of
                      {ok,T} -> {ok,T};
                      {ok,T} -> {ok,T};
                      _ -> ?INFO("user_transaction not found"),
                      _ -> ?INFO("user_transaction not found"),
                           Head = #user_transaction{ user = UserId, top = undefined},
                           Head = #user_transaction{ user = UserId, top = undefined},
@@ -125,7 +111,7 @@ add_transaction_to_user(UserId,Purchase) ->
 
 
     EntryId = Purchase#transaction.id, %kvs:next_id("membership_purchase",1),
     EntryId = Purchase#transaction.id, %kvs:next_id("membership_purchase",1),
     Prev = undefined,
     Prev = undefined,
-    case Team#user_transaction.top of
+    case Top#user_transaction.top of
         undefined -> Next = undefined;
         undefined -> Next = undefined;
         X -> case kvs:get(transaction, X) of
         X -> case kvs:get(transaction, X) of
                  {ok, TopEntry} ->
                  {ok, TopEntry} ->

+ 3 - 3
src/kvs_acl.erl

@@ -25,7 +25,7 @@ check_access(#user{username = UId, type = UType}, #feed{id = FId}) ->
     Query = [ {{user, UId}, Feed}, {{user_type, UType}, Feed}, {default, Feed}],
     Query = [ {{user, UId}, Feed}, {{user_type, UType}, Feed}, {default, Feed}],
     check(Query);
     check(Query);
 
 
-check_access(#user{username = UId, type = UType}, #group{username = GId}) ->
+check_access(#user{username = UId, type = UType}, #group{id = GId}) ->
     Group = {group, GId},
     Group = {group, GId},
     Query = [ {{user, UId}, Group}, {{user_type, UType}, Group}, {default, Group}],
     Query = [ {{user, UId}, Group}, {{user_type, UType}, Group}, {default, Group}],
     check(Query);
     check(Query);
@@ -46,7 +46,7 @@ check_access({user_type, Type}, #feed{id = FId}) ->
     Query = [ {{user_type, Type}, Feed}, {default, Feed} ],
     Query = [ {{user_type, Type}, Feed}, {default, Feed} ],
     check(Query);
     check(Query);
 
 
-check_access({user_type, Type}, #group{username = GId}) ->
+check_access({user_type, Type}, #group{id = GId}) ->
     Group = {group, GId},
     Group = {group, GId},
     Query = [{{user_type, Type}, Group}, {default, Group}],
     Query = [{{user_type, Type}, Group}, {default, Group}],
     check(Query);
     check(Query);
@@ -66,7 +66,7 @@ check_access(UId, {feature, _Feature} = Resource) ->
     end.
     end.
 
 
 select_type(#user{username = UId}) -> {user, UId};
 select_type(#user{username = UId}) -> {user, UId};
-select_type(#group{username = GId}) -> {group, GId};
+select_type(#group{id = GId}) -> {group, GId};
 select_type(#feed{id = FId}) -> {feed, FId};
 select_type(#feed{id = FId}) -> {feed, FId};
 select_type({user, UId}) -> {user, UId};
 select_type({user, UId}) -> {user, UId};
 select_type({group, name = GId}) -> {group, GId};
 select_type({group, name = GId}) -> {group, GId};

+ 1 - 3
src/kvs_comment.erl

@@ -1,6 +1,5 @@
 -module(kvs_comment).
 -module(kvs_comment).
 -copyright('Synrc Research Center s.r.o.').
 -copyright('Synrc Research Center s.r.o.').
--author('Alexander Kalenuk').
 -include_lib("kvs/include/feeds.hrl").
 -include_lib("kvs/include/feeds.hrl").
 -include_lib("kvs/include/config.hrl").
 -include_lib("kvs/include/config.hrl").
 -compile(export_all).
 -compile(export_all).
@@ -37,10 +36,9 @@ add(FId, User, EntryId, ParentComment, CommentId, Content, Medias, _) ->
                        author_id = User,
                        author_id = User,
                        comment_id = CommentId,
                        comment_id = CommentId,
                        entry_id = EntryId,
                        entry_id = EntryId,
-                       raw_content = Content,
                        content = Content,
                        content = Content,
                        media = Medias,
                        media = Medias,
-                       create_time = now(),
+                       creation_time = now(),
                        prev = Prev,
                        prev = Prev,
                        next = undefined},
                        next = undefined},
 
 

+ 14 - 12
src/kvs_feed.erl

@@ -10,6 +10,8 @@
 -include_lib("kvs/include/feed_state.hrl").
 -include_lib("kvs/include/feed_state.hrl").
 -include_lib("kvs/include/log.hrl").
 -include_lib("kvs/include/log.hrl").
 
 
+-define(CACHED_ENTRIES, 20).
+
 create() ->
 create() ->
     FId = kvs:next_id("feed", 1),
     FId = kvs:next_id("feed", 1),
     ok = kvs:put(#feed{id = FId} ),
     ok = kvs:put(#feed{id = FId} ),
@@ -34,8 +36,8 @@ add_entry(FId, User, To, EntryId, Desc, Medias, Type, SharedBy, _) ->
     kvs:put(#feed{id = FId, top = {EntryId, FId}}), % update feed top with current
     kvs:put(#feed{id = FId, top = {EntryId, FId}}), % update feed top with current
 
 
     Entry  = #entry{id = {EntryId, FId}, entry_id = EntryId, feed_id = FId, from = User,
     Entry  = #entry{id = {EntryId, FId}, entry_id = EntryId, feed_id = FId, from = User,
-                    to = To, type = Type, media = Medias, created_time = now(),
-                    description = Desc, raw_description = Desc, shared = SharedBy,
+                    to = To, type = Type, media = Medias, created = now(),
+                    description = Desc, shared = SharedBy,
                     next = Next, prev = Prev},
                     next = Next, prev = Prev},
 
 
     ModEntry = case catch feedformat:format(Entry) of
     ModEntry = case catch feedformat:format(Entry) of
@@ -129,7 +131,6 @@ remove_entry(FeedId, EId) ->
     {ok, #feed{top = TopId} = Feed} = kvs:get(feed,FeedId),
     {ok, #feed{top = TopId} = Feed} = kvs:get(feed,FeedId),
     case kvs:get(entry, {EId, FeedId}) of
     case kvs:get(entry, {EId, FeedId}) of
         {ok, #entry{prev = Prev, next = Next}}->
         {ok, #entry{prev = Prev, next = Next}}->
-            ?INFO("P: ~p, N: ~p", [Prev, Next]),
             case kvs:get(entry, Next) of {ok, NE} -> kvs:put(NE#entry{prev = Prev});  _ -> ok end,
             case kvs:get(entry, Next) of {ok, NE} -> kvs:put(NE#entry{prev = Prev});  _ -> ok end,
             case kvs:get(entry, Prev) of {ok, PE} -> kvs:put(PE#entry{next = Next});  _ -> ok end,
             case kvs:get(entry, Prev) of {ok, PE} -> kvs:put(PE#entry{next = Next});  _ -> ok end,
             case TopId of {EId, FeedId} -> kvs:put(Feed#feed{top = Prev}); _ -> ok end;
             case TopId of {EId, FeedId} -> kvs:put(Feed#feed{top = Prev}); _ -> ok end;
@@ -140,7 +141,7 @@ remove_entry(FeedId, EId) ->
 edit_entry(FeedId, EId, NewDescription) ->
 edit_entry(FeedId, EId, NewDescription) ->
     case kvs:get(entry,{EId, FeedId}) of
     case kvs:get(entry,{EId, FeedId}) of
         {ok, OldEntry} ->
         {ok, OldEntry} ->
-            NewEntryRaw =  OldEntry#entry{description = NewDescription, raw_description = NewDescription},
+            NewEntryRaw =  OldEntry#entry{description = NewDescription},
             NewEntry = feedformat:format(NewEntryRaw),
             NewEntry = feedformat:format(NewEntryRaw),
             kvs:put(NewEntry);
             kvs:put(NewEntry);
         {error, Reason}-> {error, Reason} end.
         {error, Reason}-> {error, Reason} end.
@@ -201,9 +202,10 @@ handle_notice(["kvs_feed", "group", GroupId, "entry", EntryId, "add"] = Route, [
             SE = Subs#group_subscription.posts_count,
             SE = Subs#group_subscription.posts_count,
             kvs:put(Subs#group_subscription{posts_count = SE+1})
             kvs:put(Subs#group_subscription{posts_count = SE+1})
     end,
     end,
-    self() ! {feed_refresh,Feed,20},
+    self() ! {feed_refresh,Feed, ?CACHED_ENTRIES},
     {noreply, State};
     {noreply, State};
 
 
+
 handle_notice(["kvs_feed", "user", FeedOwner, "entry", EntryId, "add"] = Route,
 handle_notice(["kvs_feed", "user", FeedOwner, "entry", EntryId, "add"] = Route,
     [From|_] = Message, #state{owner = WorkerOwner, feed = Feed, direct = Direct} = State) ->
     [From|_] = Message, #state{owner = WorkerOwner, feed = Feed, direct = Direct} = State) ->
     ?INFO("feed(~p): message: Owner=~p, Route=~p, Message=~p", [self(), WorkerOwner, Route, Message]),
     ?INFO("feed(~p): message: Owner=~p, Route=~p, Message=~p", [self(), WorkerOwner, Route, Message]),
@@ -215,22 +217,22 @@ handle_notice(["kvs_feed", "user", FeedOwner, "entry", EntryId, "add"] = Route,
         FeedOwner == From andalso FeedOwner == WorkerOwner->
         FeedOwner == From andalso FeedOwner == WorkerOwner->
             FilteredDst = [D || {_, group} = D <- Destinations],
             FilteredDst = [D || {_, group} = D <- Destinations],
             kvs_feed:add_entry(Feed, From, FilteredDst, EntryId, Desc, Medias, {user, normal},""),
             kvs_feed:add_entry(Feed, From, FilteredDst, EntryId, Desc, Medias, {user, normal},""),
-            self() ! {feed_refresh,Feed,20};
+            self() ! {feed_refresh,Feed, ?CACHED_ENTRIES};
 
 
         %% friend added message to public feed
         %% friend added message to public feed
         FeedOwner == From -> 
         FeedOwner == From -> 
             kvs_feed:add_entry(Feed, From, [], EntryId, Desc, Medias, {user, normal},""),
             kvs_feed:add_entry(Feed, From, [], EntryId, Desc, Medias, {user, normal},""),
-            self() ! {feed_refresh,Feed,20};
+            self() ! {feed_refresh,Feed, ?CACHED_ENTRIES};
 
 
         %% direct message to worker owner
         %% direct message to worker owner
         FeedOwner == WorkerOwner -> 
         FeedOwner == WorkerOwner -> 
             kvs_feed:add_entry(Direct, From, [{FeedOwner, user}], EntryId, Desc, Medias, {user,direct}, ""),
             kvs_feed:add_entry(Direct, From, [{FeedOwner, user}], EntryId, Desc, Medias, {user,direct}, ""),
-            self() ! {direct_refresh,Direct,20};
+            self() ! {direct_refresh,Direct, ?CACHED_ENTRIES};
 
 
         %% user sent direct message to friend, add copy to his direct feed
         %% user sent direct message to friend, add copy to his direct feed
         From == WorkerOwner ->
         From == WorkerOwner ->
             kvs_feed:add_entry(Direct, WorkerOwner, Destinations, EntryId, Desc, Medias, {user, direct}, ""),
             kvs_feed:add_entry(Direct, WorkerOwner, Destinations, EntryId, Desc, Medias, {user, direct}, ""),
-            self() ! {direct_refresh,Direct,20};
+            self() ! {direct_refresh,Direct, ?CACHED_ENTRIES};
 
 
         true -> ?INFO("not matched case in entry->add")
         true -> ?INFO("not matched case in entry->add")
     end,
     end,
@@ -261,7 +263,7 @@ handle_notice(["feed", "user", UId, "post_note"] = Route,
     {noreply, State};
     {noreply, State};
 
 
 handle_notice(["kvs_feed", _, WhoShares, "entry", NewEntryId, "share"] = Route,
 handle_notice(["kvs_feed", _, WhoShares, "entry", NewEntryId, "share"] = Route,
-                #entry{entry_id = _EntryId, raw_description = Desc, media = Medias, to = Destinations,
+                #entry{entry_id = _EntryId, description = Desc, media = Medias, to = Destinations,
                 from = From} = E, #state{feed = Feed, type = user} = State) ->
                 from = From} = E, #state{feed = Feed, type = user} = State) ->
     %% FIXME: sharing is like posting to the wall
     %% FIXME: sharing is like posting to the wall
     ?INFO("share: ~p, WhoShares: ~p", [E, WhoShares]),
     ?INFO("share: ~p, WhoShares: ~p", [E, WhoShares]),
@@ -274,7 +276,7 @@ handle_notice(["kvs_feed", "group", _Group, "entry", EntryId, "delete"] = Route,
           [self(), Owner, Route, Message]),
           [self(), Owner, Route, Message]),
     %% all group subscribers shold delete entry from their feeds
     %% all group subscribers shold delete entry from their feeds
     kvs_feed:remove_entry(Feed, EntryId),
     kvs_feed:remove_entry(Feed, EntryId),
-    self() ! {feed_refresh,Feed,20},
+    self() ! {feed_refresh,Feed, ?CACHED_ENTRIES},
     {noreply, State};
     {noreply, State};
 
 
 handle_notice(["kvs_feed", _Type, EntryOwner, "entry", EntryId, "delete"] = Route,
 handle_notice(["kvs_feed", _Type, EntryOwner, "entry", EntryId, "delete"] = Route,
@@ -292,7 +294,7 @@ handle_notice(["kvs_feed", _Type, EntryOwner, "entry", EntryId, "delete"] = Rout
             kvs_feed:remove_entry(Direct, EntryId);
             kvs_feed:remove_entry(Direct, EntryId);
         %% one of the friends has deleted some entry from his feed. Ignore
         %% one of the friends has deleted some entry from his feed. Ignore
         _ -> ok end,
         _ -> ok end,
-    self() ! {feed_refresh, State#state.feed,20},
+    self() ! {feed_refresh, State#state.feed, ?CACHED_ENTRIES},
     {noreply, State};
     {noreply, State};
 
 
 handle_notice(["kvs_feed", _Type, _EntryOwner, "entry", EntryId, "edit"] = Route,
 handle_notice(["kvs_feed", _Type, _EntryOwner, "entry", EntryId, "edit"] = Route,

+ 7 - 7
src/kvs_group.erl

@@ -23,7 +23,7 @@ retrieve_groups(User) ->
 create(Creator, GroupName, GroupFullName, Desc, Publicity) ->
 create(Creator, GroupName, GroupFullName, Desc, Publicity) ->
     Feed = kvs_feed:create(),
     Feed = kvs_feed:create(),
     Time = erlang:now(),
     Time = erlang:now(),
-    Group = #group{username = GroupName, name = GroupFullName, description = Desc, publicity = Publicity,
+    Group = #group{id = GroupName, name = GroupFullName, description = Desc, scope = Publicity,
                    creator = Creator, created = Time, owner = Creator, feed = Feed},
                    creator = Creator, created = Time, owner = Creator, feed = Feed},
     kvs:put(Group),
     kvs:put(Group),
     init_mq(Group),
     init_mq(Group),
@@ -73,10 +73,10 @@ add(UserName, GroupName, Type) ->
 
 
 join(UserName,GroupName) ->
 join(UserName,GroupName) ->
     case kvs:get(group,GroupName) of
     case kvs:get(group,GroupName) of
-        {ok, #group{username = GroupName, publicity = public}} ->
+        {ok, #group{id = GroupName, scope = public}} ->
             add(UserName, GroupName, member),
             add(UserName, GroupName, member),
             {ok, joined};
             {ok, joined};
-        {ok, #group{username = GroupName}} ->
+        {ok, #group{id = GroupName}} ->
             case member_type(UserName, GroupName) of
             case member_type(UserName, GroupName) of
                 member -> {ok, joined};
                 member -> {ok, joined};
                 req -> {error, already_sent};
                 req -> {error, already_sent};
@@ -103,7 +103,7 @@ coalesce(A, _) -> A.
 publicity(GroupName) ->
 publicity(GroupName) ->
     case kvs:get(group,GroupName) of
     case kvs:get(group,GroupName) of
         {error,_} -> no_such_group;
         {error,_} -> no_such_group;
-        {ok,Group} -> Group#group.publicity end.
+        {ok,Group} -> Group#group.scope end.
 
 
 members_count(GroupName) ->
 members_count(GroupName) ->
     case kvs:get(group,GroupName) of
     case kvs:get(group,GroupName) of
@@ -115,7 +115,7 @@ user_has_access(UserName, GroupName) ->
     case kvs:get(group, GroupName) of
     case kvs:get(group, GroupName) of
         {error,_} -> false;
         {error,_} -> false;
         {ok,Group} ->
         {ok,Group} ->
-            Publicity = Group#group.publicity,
+            Publicity = Group#group.scope,
             case {Publicity, Type} of
             case {Publicity, Type} of
                 {public, _} -> true;
                 {public, _} -> true;
                 {private, member} -> true;
                 {private, member} -> true;
@@ -136,7 +136,7 @@ handle_notice(["kvs_group", "update", GroupName] = Route,
         {ok, Group} ->
         {ok, Group} ->
             NewGroup = Group#group{name = coalesce(Name,Group#group.name),
             NewGroup = Group#group{name = coalesce(Name,Group#group.name),
                 description = coalesce(Description,Group#group.description),
                 description = coalesce(Description,Group#group.description),
-                publicity = coalesce(Publicity,Group#group.publicity),
+                scope = coalesce(Publicity,Group#group.scope),
                 owner = coalesce(Owner,Group#group.owner)},
                 owner = coalesce(Owner,Group#group.owner)},
             kvs:put(NewGroup);
             kvs:put(NewGroup);
         {error,Reason} -> ?ERROR("Cannot update group ~p",[Reason]) end,
         {error,Reason} -> ?ERROR("Cannot update group ~p",[Reason]) end,
@@ -177,7 +177,7 @@ build_group_relations(Group) -> [
     ].
     ].
 
 
 init_mq(Group=#group{}) ->
 init_mq(Group=#group{}) ->
-    GroupExchange = ?GROUP_EXCHANGE(Group#group.username),
+    GroupExchange = ?GROUP_EXCHANGE(Group#group.id),
     ExchangeOptions = [{type, <<"fanout">>}, durable, {auto_delete, false}],
     ExchangeOptions = [{type, <<"fanout">>}, durable, {auto_delete, false}],
     case mqs:open([]) of
     case mqs:open([]) of
         {ok, Channel} ->
         {ok, Channel} ->

+ 0 - 1
src/kvs_meeting.erl

@@ -95,7 +95,6 @@ join_tournament(UserId, TournamentId) ->
                  tournament = TournamentId,
                  tournament = TournamentId,
                  team = User#user.team,
                  team = User#user.team,
                  game_id = undefined, 
                  game_id = undefined, 
-		 other = now(),
                  realname = RN,
                  realname = RN,
                  points = GP,
                  points = GP,
                  quota = Q});
                  quota = Q});