23 lines
638 B
Elixir
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
|