adds phoenix boilerplate and database api
- message communication added - database migration added - initial commit
This commit is contained in:
		
							
								
								
									
										36
									
								
								lib/bump/application.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								lib/bump/application.ex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
defmodule Bump.Application do
 | 
			
		||||
  # See https://hexdocs.pm/elixir/Application.html
 | 
			
		||||
  # for more information on OTP Applications
 | 
			
		||||
  @moduledoc false
 | 
			
		||||
 | 
			
		||||
  use Application
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def start(_type, _args) do
 | 
			
		||||
    children = [
 | 
			
		||||
      # Start the Ecto repository
 | 
			
		||||
      Bump.Repo,
 | 
			
		||||
      # Start the Telemetry supervisor
 | 
			
		||||
      BumpWeb.Telemetry,
 | 
			
		||||
      # Start the PubSub system
 | 
			
		||||
      {Phoenix.PubSub, name: Bump.PubSub},
 | 
			
		||||
      # Start the Endpoint (http/https)
 | 
			
		||||
      BumpWeb.Endpoint
 | 
			
		||||
      # Start a worker by calling: Bump.Worker.start_link(arg)
 | 
			
		||||
      # {Bump.Worker, arg}
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    # See https://hexdocs.pm/elixir/Supervisor.html
 | 
			
		||||
    # for other strategies and supported options
 | 
			
		||||
    opts = [strategy: :one_for_one, name: Bump.Supervisor]
 | 
			
		||||
    Supervisor.start_link(children, opts)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Tell Phoenix to update the endpoint configuration
 | 
			
		||||
  # whenever the application is updated.
 | 
			
		||||
  @impl true
 | 
			
		||||
  def config_change(changed, _new, removed) do
 | 
			
		||||
    BumpWeb.Endpoint.config_change(changed, removed)
 | 
			
		||||
    :ok
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										3
									
								
								lib/bump/mailer.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								lib/bump/mailer.ex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
defmodule Bump.Mailer do
 | 
			
		||||
  use Swoosh.Mailer, otp_app: :bump
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										27
									
								
								lib/bump/messages.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								lib/bump/messages.ex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
defmodule Bump.Messages do
 | 
			
		||||
  alias Bump.Repo
 | 
			
		||||
  import Ecto.Query
 | 
			
		||||
 | 
			
		||||
  def get_newest_message(_sender) do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get_all_messages_since(sender, minutes) do
 | 
			
		||||
 | 
			
		||||
    ago = DateTime.utc_now 
 | 
			
		||||
          |> Timex.shift(minutes: -minutes) 
 | 
			
		||||
          |> DateTime.truncate(:second)
 | 
			
		||||
 | 
			
		||||
    query = from m in "messages",
 | 
			
		||||
      where: m.sender == ^sender and
 | 
			
		||||
             m.timestamp >= ^ago,
 | 
			
		||||
      select: m.data
 | 
			
		||||
    Repo.all(query)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def remove_sender(_sender) do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def add_message(_sender, _message) do
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										20
									
								
								lib/bump/messages/message.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								lib/bump/messages/message.ex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
defmodule Bump.Messages.Message do
 | 
			
		||||
  use Ecto.Schema
 | 
			
		||||
  import Ecto.Changeset
 | 
			
		||||
 | 
			
		||||
  schema "messages" do
 | 
			
		||||
    field :sender, :string
 | 
			
		||||
    field :data, :string, default: ""
 | 
			
		||||
    field :timestamp, :utc_datetime, default: DateTime.utc_now |> DateTime.truncate(:second)
 | 
			
		||||
 | 
			
		||||
    timestamps()
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def changeset(message, params) do
 | 
			
		||||
    message
 | 
			
		||||
    |> cast(params, [:sender, :data, :timestamp])
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								lib/bump/repo.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								lib/bump/repo.ex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
defmodule Bump.Repo do
 | 
			
		||||
  use Ecto.Repo,
 | 
			
		||||
    otp_app: :bump,
 | 
			
		||||
    adapter: Ecto.Adapters.Postgres
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user