Bids schema and creating
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
defmodule NeonVertigoService.MessageProcessor do
|
||||
alias NeonVertigoService.Repo
|
||||
|
||||
import Ecto.Query, only: [from: 2]
|
||||
|
||||
def process_message(mqtt_pid, {"auctions", "create"}, payload, properties) do
|
||||
changeset = Auction.changeset(%Auction{}, payload)
|
||||
reply = case Repo.insert(changeset) do
|
||||
@@ -13,6 +15,28 @@ defmodule NeonVertigoService.MessageProcessor do
|
||||
reply(reply, mqtt_pid, properties)
|
||||
end
|
||||
|
||||
def process_message(mqtt_pid, {"auctions", auction_gid, "bid"}, payload, properties) do
|
||||
auction = Repo.get(Auction, auction_gid)
|
||||
if is_nil(auction) do
|
||||
{:not_found, auction_gid}
|
||||
else
|
||||
changeset = Bid.changeset(%Bid{}, Map.put(payload, "auction_gid", auction.gid))
|
||||
reply = case Repo.insert(changeset) do
|
||||
{:ok, bid} ->
|
||||
bid_data = %{
|
||||
bid: bid.bid,
|
||||
bidder_gid: bid.bidder_gid,
|
||||
timestamp: bid.bid_timestamp
|
||||
}
|
||||
send_mqtt(bid_data, mqtt_pid, "notify/new_bid/#{auction.gid}")
|
||||
%{ok: true}
|
||||
{:error, changeset} -> %{ok: false}
|
||||
end
|
||||
|
||||
reply(reply, mqtt_pid, properties)
|
||||
end
|
||||
end
|
||||
|
||||
def process_message(_, _, _, _) do
|
||||
{:ok, :unknown_message}
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user