Last active
November 28, 2021 12:16
-
-
Save acrolink/b5c58a832ed25b9ea50b01660e5c1910 to your computer and use it in GitHub Desktop.
Revisions
-
acrolink revised this gist
Nov 28, 2021 . 1 changed file with 1 addition and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -19,8 +19,7 @@ defmodule MangoWeb.BorrowerController do end def index(conn, _params, claims) do IO.puts("borrowers..") borrowers = @@ -67,16 +66,11 @@ defmodule MangoWeb.BorrowerController do with {:ok, borrower} <- Borrowers.create_borrower(borrower_params |> Helpers.inject_user_object(user)) do Helpers.pretty_json(conn, borrower) end end def show(conn, %{"id" => code}, claims) do data = Borrowers.get_borrower_with_records(code, claims.institute_id) IO.inspect(data) Helpers.pretty_json(conn, data) end -
acrolink created this gist
Nov 28, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,104 @@ defmodule MangoWeb.BorrowerController do use MangoWeb, :controller use MangoWeb.ExtendController alias Mango.Borrowers alias Mango.Borrowers.Borrower alias Mango.Repo import Ecto.Query alias MangoWeb.Helpers action_fallback(MangoWeb.FallbackController) def autocomplete(conn, %{"query" => query} = params, claims) do borrowers = Repo.all(from(b in Borrower, where: ilike(b.name, ^"%#{query}%"), limit: 10)) IO.inspect(borrowers) Helpers.pretty_json(conn, borrowers) end def index(conn, _params, claims) do # borrowers = Borrowers.list_borrowers() # render(conn, "index.json", borrowers: borrowers) IO.puts("borrowers..") borrowers = Borrower |> join( :left, [borrower, record, book], record in Mango.Records.Record, borrower.id == record.borrower_id ) |> join( :left, [borrower, record, book], book in Mango.Books.Book, record.id == book.record_id ) |> select([borrower, record, book], %{ address: borrower.address, code: borrower.code, date_of_birth: borrower.date_of_birth, id: borrower.id, inserted_at: borrower.inserted_at, name: borrower.name, phone: borrower.phone, books_on_rental: fragment( "SUM(CASE WHEN ? = 0 AND ? = ? THEN 1 ELSE 0 END)", book.status, record.borrower_id, borrower.id ) }) |> group_by([borrower, record, book], borrower.id) |> MangoWeb.Filters.Borrowers.restrict_by_user_id(claims) |> MangoWeb.Filters.Borrowers.build_query(conn, _params) |> Repo.paginate(page: _params["page"], page_size: _params["per_page"]) IO.inspect(borrowers) Helpers.pretty_json(conn, %{borrowers: borrowers}) end # needs modification to retun error def create(conn, %{"borrower" => borrower_params}, user) do with {:ok, borrower} <- Borrowers.create_borrower(borrower_params |> Helpers.inject_user_object(user)) do Helpers.pretty_json(conn, borrower) # conn # |> put_status(:created) # |> put_resp_header("location", borrower_path(conn, :show, borrower)) # |> render("show.json", borrower: borrower) end end def show(conn, %{"id" => code}, claims) do data = Borrowers.get_borrower_with_records(code, claims.institute_id) # render(conn, "show.json", borrower: borrower) IO.inspect(data) Helpers.pretty_json(conn, data) end def update(conn, %{"id" => id, "borrower" => borrower_params}, user) do borrower = Borrowers.get_borrower!(id) with {:ok, %Borrower{} = borrower} <- Borrowers.update_borrower(borrower, borrower_params) do render(conn, "show.json", borrower: borrower) end end def delete(conn, %{"id" => id}, user) do borrower = Borrowers.get_borrower!(id) with {:ok, %Borrower{}} <- Borrowers.delete_borrower(borrower) do send_resp(conn, :no_content, "") end end def filter_objects(conn, _params, user) do borrowers = Borrower |> Repo.all() Helpers.pretty_json(conn, %{borrowers: borrowers}) end end