users.erl 635 B

12345678910111213141516
  1. -module(users).
  2. -behaviour(rest).
  3. -compile({parse_transform, rest}).
  4. -include("users.hrl").
  5. -export([init/0, populate/1, exists/1, get/0, get/1, post/1, delete/1]).
  6. -rest_record(user).
  7. -rest_record(feed).
  8. init() -> ets:new(users, [public, named_table, {keypos, #user.id}]).
  9. populate(Users) -> ets:insert(users, Users).
  10. exists(Id) -> ets:member(users, wf:to_list(Id)).
  11. get() -> ets:tab2list(users).
  12. get(Id) -> [User] = ets:lookup(users, wf:to_list(Id)), User. % should return record #user{}
  13. delete(Id) -> ets:delete(users, wf:to_list(Id)).
  14. post(#user{} = User) -> ets:insert(users, User);
  15. post(Data) -> post(from_json(Data, #user{})).