Cuando se cancela la subasta, ahora como esta, no se notifica nunca al usuario.
Lugares donde se hace el update de subasta.terminada <- true, es en dos lugares:
1)En subastas_controller
def cancelar(conn, %{"subasta_id" => id}) do
subasta = Repo.get!(Subasta, id) |> Repo.preload(:mejor_oferta)
if subasta.mejor_oferta != nil do
Repo.delete!(subasta.mejor_oferta)
end
changeset = Subasta.changeset(subasta, %{terminada: true})
...
end
2)En subastas_worker,
def termina_subasta(subasta_id) do
subasta = Repo.get!(Subasta, subasta_id) |> Repo.preload(:mejor_oferta)
Logger.info"SubastaWorker> estado de la subasta antes del if #{subasta.terminada}..."
if (not subasta.terminada) do
changeset = Subasta.changeset(subasta, %{terminada: true})
Repo.update(changeset)
....
end
end
Si, saco el if de la segunda parte, la notificacion le llega a los clientes 2 veces. Al apretar el boton cancelar, y cuando termina el tiempo de la subasta.
El caso que queremos, es que solo notifique cuando se apreta el boton de cancelar subasta, y que no diga nada cuando se termine el tiempo de la subasta.
1)En subastas_controller
2)En subastas_worker,
Si, saco el if de la segunda parte, la notificacion le llega a los clientes 2 veces. Al apretar el boton cancelar, y cuando termina el tiempo de la subasta. El caso que queremos, es que solo notifique cuando se apreta el boton de cancelar subasta, y que no diga nada cuando se termine el tiempo de la subasta.