-
Notifications
You must be signed in to change notification settings - Fork 5
/
cb_tutorial_greeting_controller.erl
38 lines (31 loc) · 1.14 KB
/
cb_tutorial_greeting_controller.erl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-module(cb_tutorial_greeting_controller, [Req]).
-compile(export_all).
before_(_) ->
{ok, Req:peer_ip() =:= {127, 0, 0, 1}}.
hello('GET', []) ->
{ok, [{greeting, "Hello, world!"}]}.
list('GET', [], IsMe) ->
Greetings = boss_db:find(greeting, []),
{ok, [{greetings, Greetings}, {is_me, IsMe}]}.
create('GET', []) ->
ok;
create('POST', []) ->
GreetingText = Req:post_param("greeting_text"),
NewGreeting = greeting:new(id, GreetingText),
case NewGreeting:save() of
{ok, SavedGreeting} ->
{redirect, [{action, "list"}]};
{error, ErrorList} ->
{ok, [{errors, ErrorList}, {new_msg, NewGreeting}]}
end.
goodbye('POST', [], true) ->
boss_db:delete(Req:post_param("greeting_id")),
{redirect, [{action, "list"}]}.
pull('GET', [LastTimestamp]) ->
{ok, Timestamp, Greetings} = boss_mq:pull("new-greetings",
list_to_integer(LastTimestamp)),
{json, [{timestamp, Timestamp}, {greetings, Greetings}]}.
live('GET', []) ->
Greetings = boss_db:find(greeting, []),
Timestamp = boss_mq:now("new-greetings"),
{ok, [{greetings, Greetings}, {timestamp, Timestamp}]}.