From 8e39c06940426031d0a0d3a748b02e74962df386 Mon Sep 17 00:00:00 2001 From: SomewhatDamaged Date: Sat, 4 Jan 2020 02:37:20 +1100 Subject: [PATCH] Fix for distance (#16) * Fix for distance Fixes the `distance` to search not being passed through to `ImageReverse.images()` `set_scraper_cache` passes the `distance` through into `params` `create` normalizes and inserts the result into the params passed to `ImageReverse.images()` `normalize_dist` checks if there is a `distance` set, adds a leading 0 to it (to account for values like `.5`, which would crash `Float.parse()`), and turns it back into a well-formatted string for `ImageReverse.images()` * Fixed space --- .../controllers/api/json/search/reverse_controller.ex | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/philomena_web/controllers/api/json/search/reverse_controller.ex b/lib/philomena_web/controllers/api/json/search/reverse_controller.ex index 818ac7ae..e0b8ae88 100644 --- a/lib/philomena_web/controllers/api/json/search/reverse_controller.ex +++ b/lib/philomena_web/controllers/api/json/search/reverse_controller.ex @@ -10,6 +10,7 @@ defmodule PhilomenaWeb.Api.Json.Search.ReverseController do def create(conn, %{"image" => image_params}) do images = image_params + |> Map.put("distance", conn.params["distance"]) |> ImageReverse.images() |> Enum.map(&ImageJson.as_json(conn, &1)) @@ -21,8 +22,17 @@ defmodule PhilomenaWeb.Api.Json.Search.ReverseController do params = conn.params |> Map.put("image", %{}) + |> Map.put("distance", normalize_dist(conn.params)) |> Map.put("scraper_cache", conn.params["url"]) %{conn | params: params} end + + defp normalize_dist(%{"distance" => distance}) do + "0" <> distance + |> Float.parse() + |> elem(0) + |> Float.to_string() + end + defp normalize_dist(_dist), do: "0.25" end