Improve metadata storage (#37)
* Updated config path to specify metadata storage path * Removed metadata column from DB, replacing it with filepath columns * Updated app to store compressed metadata; automatically download thumbnails * Ensured metadata is deleted when other files are deleted * Updated docs * Added inets to application start so http calls work in prod
This commit is contained in:
1 parent
4094da9e03
commit
c77047951f
25 files changed
+370
-61
No files matched your search
@@ -0,0 +1,8 @@
|
||||
defmodule Pinchflat.HTTP.HTTPBehaviour do
|
||||
@moduledoc """
|
||||
This module defines the behaviour for HTTP clients. Literally just
|
||||
so I can use Mox to create an HTTP mock
|
||||
"""
|
||||
|
||||
@callback get(String.t(), Keyword.t(), Keyword.t()) :: {:ok, String.t()} | {:error, String.t()}
|
||||
end
|
||||
@@ -0,0 +1,35 @@
|
||||
defmodule Pinchflat.HTTP.HTTPClient do
|
||||
@moduledoc """
|
||||
This module provides a simple interface for making HTTP requests.
|
||||
|
||||
Made to be easily swappable with other HTTP clients. If you need more complexity
|
||||
or security, check out HTTPoison or Mint.
|
||||
"""
|
||||
|
||||
alias Pinchflat.HTTP.HTTPBehaviour
|
||||
|
||||
@behaviour HTTPBehaviour
|
||||
|
||||
@doc """
|
||||
Makes a GET request to the given URL and returns the response.
|
||||
|
||||
NOTE: I can't really test this with Mox and I can't think of a way to test this
|
||||
that isn't ultimately redundant. I'm just going to leave it untested for now and
|
||||
focus more on testing the consumers of this module.
|
||||
|
||||
Returns {:ok, String.t()} | {:error, String.t()}
|
||||
"""
|
||||
@impl HTTPBehaviour
|
||||
def get(url, headers \\ [], opts \\ []) do
|
||||
case :httpc.request(:get, {url, headers}, [], opts) do
|
||||
{:ok, {{_version, 200, _reason_phrase}, _headers, body}} ->
|
||||
{:ok, body}
|
||||
|
||||
{:ok, {{_version, status_code, reason_phrase}, _headers, _body}} ->
|
||||
{:error, "HTTP request failed with status code #{status_code}: #{reason_phrase}"}
|
||||
|
||||
{:error, reason} ->
|
||||
{:error, "HTTP request failed: #{reason}"}
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user