New list: orders
This commit is contained in:
104
lib/osuuspuutarha/orders.ex
Normal file
104
lib/osuuspuutarha/orders.ex
Normal file
@@ -0,0 +1,104 @@
|
||||
defmodule Osuuspuutarha.Orders do
|
||||
@moduledoc """
|
||||
The Orders context.
|
||||
"""
|
||||
|
||||
import Ecto.Query, warn: false
|
||||
alias Osuuspuutarha.Repo
|
||||
|
||||
alias Osuuspuutarha.Orders.Order
|
||||
|
||||
@doc """
|
||||
Returns the list of orders.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> list_orders()
|
||||
[%Order{}, ...]
|
||||
|
||||
"""
|
||||
def list_orders do
|
||||
Repo.all(Order)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Gets a single order.
|
||||
|
||||
Raises `Ecto.NoResultsError` if the Order does not exist.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> get_order!(123)
|
||||
%Order{}
|
||||
|
||||
iex> get_order!(456)
|
||||
** (Ecto.NoResultsError)
|
||||
|
||||
"""
|
||||
def get_order!(id), do: Repo.get!(Order, id)
|
||||
|
||||
@doc """
|
||||
Creates a order.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> create_order(%{field: value})
|
||||
{:ok, %Order{}}
|
||||
|
||||
iex> create_order(%{field: bad_value})
|
||||
{:error, %Ecto.Changeset{}}
|
||||
|
||||
"""
|
||||
def create_order(attrs \\ %{}) do
|
||||
%Order{}
|
||||
|> Order.changeset(attrs)
|
||||
|> Repo.insert()
|
||||
end
|
||||
|
||||
@doc """
|
||||
Updates a order.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> update_order(order, %{field: new_value})
|
||||
{:ok, %Order{}}
|
||||
|
||||
iex> update_order(order, %{field: bad_value})
|
||||
{:error, %Ecto.Changeset{}}
|
||||
|
||||
"""
|
||||
def update_order(%Order{} = order, attrs) do
|
||||
order
|
||||
|> Order.changeset(attrs)
|
||||
|> Repo.update()
|
||||
end
|
||||
|
||||
@doc """
|
||||
Deletes a order.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> delete_order(order)
|
||||
{:ok, %Order{}}
|
||||
|
||||
iex> delete_order(order)
|
||||
{:error, %Ecto.Changeset{}}
|
||||
|
||||
"""
|
||||
def delete_order(%Order{} = order) do
|
||||
Repo.delete(order)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Returns an `%Ecto.Changeset{}` for tracking order changes.
|
||||
|
||||
## Examples
|
||||
|
||||
iex> change_order(order)
|
||||
%Ecto.Changeset{data: %Order{}}
|
||||
|
||||
"""
|
||||
def change_order(%Order{} = order, attrs \\ %{}) do
|
||||
Order.changeset(order, attrs)
|
||||
end
|
||||
end
|
||||
65
lib/osuuspuutarha/orders/order.ex
Normal file
65
lib/osuuspuutarha/orders/order.ex
Normal file
@@ -0,0 +1,65 @@
|
||||
defmodule Osuuspuutarha.Orders.Order do
|
||||
use Ecto.Schema
|
||||
import Ecto.Changeset
|
||||
|
||||
schema "orders" do
|
||||
field :address, :string
|
||||
field :city, :string
|
||||
field :email, :string
|
||||
field :even_weeks, :boolean, default: false
|
||||
field :fname, :string
|
||||
field :is_member, :boolean, default: false
|
||||
field :lname, :string
|
||||
|
||||
field :location, Ecto.Enum,
|
||||
values: [
|
||||
:koroinen,
|
||||
:ocean,
|
||||
:raisio,
|
||||
:naantali,
|
||||
:viherlassila,
|
||||
:kirjakahvila,
|
||||
:askainen,
|
||||
:livonsaari
|
||||
]
|
||||
|
||||
field :order_type, Ecto.Enum, values: [:full, :everyother, :elo, :community]
|
||||
field :pcode, :string
|
||||
field :phone, :string
|
||||
field :split_invoice, :boolean, default: false
|
||||
|
||||
timestamps()
|
||||
end
|
||||
|
||||
@doc false
|
||||
def changeset(order, attrs) do
|
||||
order
|
||||
|> cast(attrs, [
|
||||
:order_type,
|
||||
:location,
|
||||
:fname,
|
||||
:lname,
|
||||
:address,
|
||||
:pcode,
|
||||
:city,
|
||||
:phone,
|
||||
:email,
|
||||
:is_member,
|
||||
:split_invoice,
|
||||
:even_weeks
|
||||
])
|
||||
|> validate_required([
|
||||
:order_type,
|
||||
:location,
|
||||
:fname,
|
||||
:lname,
|
||||
:address,
|
||||
:pcode,
|
||||
:city,
|
||||
:phone,
|
||||
:email,
|
||||
:is_member,
|
||||
:split_invoice
|
||||
])
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user