adds rest api connector

- routing setup with path to message_controller
- messages api to database updated to function
  similar to a stack system (push, pop, peek, ..)
- rest calls the same as database calls
- setup default controller showing text message
- parsing database output with Jason to client
- adds curl examples
This commit is contained in:
2021-12-10 15:34:38 +01:00
parent 3b1657e18a
commit 5d50bb30e6
6 changed files with 91 additions and 47 deletions

View File

@ -1,7 +1,7 @@
defmodule BumpWeb.PageController do
defmodule BumpWeb.DefaultController do
use BumpWeb, :controller
def index(conn, _params) do
render(conn, "index.html")
text conn, "Bump API"
end
end

View File

@ -0,0 +1,37 @@
defmodule BumpWeb.MessageController do
use BumpWeb, :controller
alias Bump.Messages
def index(conn, _params) do
text conn, "Bump Api"
end
def list(conn, %{"sender" => sender, "minutes" => minutes}) do
list = Messages.list(sender, String.to_integer(minutes))
text conn, Jason.encode!(list)
end
def clear(conn, %{"sender" => sender}) do
Messages.clear(sender)
text conn, "OK"
end
def push(conn, %{"sender" => sender, "message" => message}) do
Messages.push(sender, message)
text conn, "OK"
end
def pop(conn, %{"sender" => sender}) do
message = Messages.pop(sender)
text conn, Jason.encode!(message)
end
def peak(conn, %{"sender" => sender}) do
message = Messages.peak(sender)
text conn, Jason.encode!(message)
end
end