Skip to content

Instantly share code, notes, and snippets.

@codenoid
Created June 26, 2019 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codenoid/9e00c750147da5573eafd01a28720a4b to your computer and use it in GitHub Desktop.
Save codenoid/9e00c750147da5573eafd01a28720a4b to your computer and use it in GitHub Desktop.
phoenix + mongo crud
defmodule PhoenixCrudWeb.ApiController do
use PhoenixCrudWeb, :controller
# create
def insert(conn, %{"username" => username, "password" => password}) do
case Mongo.insert_one(:local_database, "users", %{username: username, password: password}) do
{:ok, _} ->
conn |> json(%{success: true})
_ ->
conn |> json(%{success: false})
end
end
# read
def read(conn, _params) do
users = Mongo.find(:local_database, "users", %{}) |> Enum.to_list()
users =
Enum.map(users, fn elem ->
elem |> Map.delete("_id")
end)
conn |> json(users)
end
# update
def update(conn, %{"username" => username, "password" => password}) do
Mongo.update_one(:local_database, "users", %{username: username}, %{
"$set": %{username: username, password: password}
})
conn |> json(%{success: true})
end
# delete
def delete(conn, _params) do
username = conn.query_params["username"]
case Mongo.delete_one(:local_database, "users", %{username: username}) do
{:ok, _} ->
conn |> json(%{success: true})
_ ->
conn |> json(%{success: false})
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment