Current section
Files
Jump to
Current section
Files
test/mocks/file.ex
defmodule OpenAi.Mocks.File do
@moduledoc """
Mocks for file related responses.
"""
def file(data) do
%{
bytes: 139_920,
created_at: 1_699_061_776,
filename: "Support FAQ",
id: "f_abc123",
object: "file",
purpose: "fine-tune"
}
|> Map.merge(data)
end
def create(data \\ %{}) do
%HTTPoison.Response{
status_code: 200,
body:
data
|> file()
|> Poison.encode!()
}
end
def delete(data \\ %{}) do
file = data |> file()
%HTTPoison.Response{
status_code: 200,
body:
%{
id: file.id,
object: "file",
deleted: true
}
|> Poison.encode!()
}
end
def download(data \\ "This is the content of the file.") do
%HTTPoison.Response{
status_code: 200,
body: data
}
end
def list(data \\ [], count \\ 2) do
data =
Enum.map(1..count, fn index ->
file(data |> Enum.at(index - 1, %{}))
end)
%HTTPoison.Response{
status_code: 200,
body:
%{
object: "list",
data: data
}
|> Poison.encode!()
}
end
def get(data \\ %{}) do
%HTTPoison.Response{
status_code: 200,
body:
data
|> file()
|> Poison.encode!()
}
end
end