message-server/lib/message_server/message_request.ex

23 lines
638 B
Elixir

defmodule MessageServer.MessageRequest do
@type t :: %__MODULE__{
from: String.t(),
to: String.t(),
message: String.t()
}
defstruct [:from, :to, :message]
@spec new(String.t(), String.t(), String.t()) :: t()
def new(from, to, message) do
%__MODULE__{from: from, to: to, message: message}
end
@spec valid?(t()) :: boolean()
def valid?(%__MODULE__{from: from, to: to, message: message})
when is_binary(from) and is_binary(to) and is_binary(message) do
String.trim(from) != "" and String.trim(to) != "" and String.trim(message) != ""
end
def valid?(_), do: false
end