From 50d50aab943343552afbd3de886c283a7220136d Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Tue, 28 Aug 2018 16:20:38 +0100 Subject: [PATCH] Fixes to the phone tag --- src/adl_support/core.clj | 8 ++++++-- src/adl_support/filters.clj | 2 +- test/adl_support/core_test.clj | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/adl_support/core.clj b/src/adl_support/core.clj index 4b0f8c2..c93a80a 100644 --- a/src/adl_support/core.clj +++ b/src/adl_support/core.clj @@ -1,5 +1,6 @@ (ns adl-support.core (:require [clojure.core.memoize :as memo] + [clojure.data.json :as json] [clojure.java.io :as io] [clojure.string :refer [split join]] [clojure.tools.logging])) @@ -36,12 +37,15 @@ vr (if (string? v) (try - (read-string v) + (json/read-str v) (catch Exception _ nil)))] (cond (nil? v) {} (= v "") {} - (number? vr) {(keyword k) vr} + (and + (number? vr) + ;; there's a problem that json/read-str will read "07777 888999" as 7777 + (re-matches #"^[0-9.]+$" v)) {(keyword k) vr} true {(keyword k) v}))) diff --git a/src/adl_support/filters.clj b/src/adl_support/filters.clj index 72f3576..4c5a90c 100644 --- a/src/adl_support/filters.clj +++ b/src/adl_support/filters.clj @@ -20,7 +20,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(def *default-international-dialing-prefix* +(def ^:dynamic *default-international-dialing-prefix* "The international dialing prefix to use, if none is specified." "44") diff --git a/test/adl_support/core_test.clj b/test/adl_support/core_test.clj index 0d72d0c..cd0d4c8 100644 --- a/test/adl_support/core_test.clj +++ b/test/adl_support/core_test.clj @@ -10,7 +10,10 @@ (let [expected {:id 67 :offset 0 :limit 50} actual (massage-params {:params {:id "0" :offset "1000" :limit "150"} :form-params {:id "67" :offset "0" :limit "50"}})] - (is (= expected actual) "Request with form params, params and form params differ")))) + (is (= expected actual) "Request with form params, params and form params differ")) + (let [expected {:phone "07777 888999"} + actual (massage-params {:params {:phone "07777 888999"}})] + (is (= expected actual) "A phone number with a space in needs to be treated as a string")))) (deftest compose-exception-reason-tests