This post demonstrates how to order an ecto query by a text field. by sending the order raw sql query through Ecto.Query.API.fragment/1
Sample table Assuming we want to query a table containing a list of scheduled jobs with known statuses. e.g RUNNING, PENDING, COMPLETED, FAILED
id task_ref status last_exec_timestamp 1 2232323 PENDING 1605726253 2 2232324 FAILED 1605726153 4 2232326 RUNNING 1605726233 5 2232326 RUNNING 1605726233 6 2232326 FAILED 1605726233 7 2232326 COMPLETED 1605726233 8 2232326 FAILED 1605726233 Our objective is to: Read More...
I was recently working on a project where I needed to compose a dynamic query for filtering a table using ecto. The filter parameters are coming from a graphql resolver.
# ~/query.ex #A sample filter input filter_input = %{status: "AVAILABLE", genre: "Comedy", last_update_gte: "2018-10-18 00:00:00", last_update_lte: "2018-10-18 23:59:59" } #The schema I will be querying defmodule Movies do use Ecto.Schema schema "movies" do field(:genre, :string) field(:status, :string) timestamps() end end #My resolver function defmodule MovieFilter do import Ecto. Read More...
The situation was that, I needed to mock multiple external service within my application in order to test my application.
These external services are being consumed using HTTPPoison the popular elixir http client. The mock is achieved using the Mock library
# ~/multi_mocks.exs Import Mock #Mock multiple functions of the same module test "Test special service that will call other supporting endpoints" do with_mock( HTTPoison, post!: fn endpoint_a, _, _ -> %HTTPoison. Read More...