123456789101112131415161718192021222324252627282930313233343536 |
- -module(rest_users).
- -compile({parse_transform, rest}).
- -export([init/0, populate/1, new/0, exists/1, get/0, get/1, post/1, delete/1]).
- -export([keys_allowed/1]).
- -record(user, {id, cn, name, type}).
- -rest_record(user).
- keys_allowed(Keys) ->
- Allow = [<<"id">>, <<"test">>],
- lists:all(fun(X) ->
- lists:member(X, Allow)
- end, Keys).
- new() -> #user{}.
- init() -> ets:new(rest_users, [public, named_table, {keypos, #user.id}]).
- populate(Users) -> ets:insert(rest_users, Users).
- exists(Id) ->
- X = ets:member(rest_users, erlang:binary_to_list(Id)),
- io:format("Member: ~p~n", [X]),
- X.
- get() -> ets:tab2list(rest_users).
- get(Id) ->
- [U] = ets:lookup(rest_users, erlang:binary_to_list(Id)),
- io:format("User: ~p~n", [U]),
- U.
- delete(Id) -> ets:delete(rest_users, erlang:binary_to_list(Id)).
- post(#user{} = User) -> ets:insert(rest_users, User);
- post(Data) -> post(from_json(Data, #user{})).
|