Skip to content

Commit

Permalink
Changes aws/call conversion
Browse files Browse the repository at this point in the history
  • Loading branch information
dehli committed Sep 2, 2020
1 parent 0968b17 commit 459c99f
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 24 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>dehli</groupId>
<artifactId>serverless</artifactId>
<version>0.2.2</version>
<version>0.2.3</version>
<name>serverless</name>
<dependencies>
<dependency>
Expand Down
22 changes: 7 additions & 15 deletions src/serverless/aws/sdk.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,23 @@

(def AWS (js/require "aws-sdk"))

(defn- ->js-params [params]
(->> params
(map (fn [[k v]]
[(csk/->PascalCase k)
v]))
(into {})
->js))
(defn- ->PascalCase [params]
(cske/transform-keys csk/->PascalCase params))

(defn call [service method params]
(let [promise (-> service
(j/call (csk/->camelCase method) (->js-params params))
(j/call (csk/->camelCase method) (->js (->PascalCase params)))
(j/call :promise))]
(go-try
(cske/transform-keys csk/->kebab-case (->clj (<p! promise))))))

(defn- ->js-options [options]
(defn- format-options [options]
(->> options
(map (fn [[k v]]
[(csk/->camelCase k)
(cske/transform-keys csk/->PascalCase v)]))
(into {})
->js))
(map (fn [[k v]] [(csk/->camelCase k) (->PascalCase v)]))
(into {})))

(defn service
([keys] (service keys {}))
([keys options]
(let [Service (apply j/get-in [AWS (map csk/->PascalCase keys)])]
(new Service (->js-options options)))))
(new Service (->js (format-options options))))))
14 changes: 6 additions & 8 deletions test/serverless/aws/sdk_test.cljs
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
(ns serverless.aws.sdk-test
(:require [cljs-bean.core :refer [->clj]]
[cljs.core.async :refer [go <!]]
(:require [cljs.core.async :refer [go <!]]
[cljs.test :refer [async deftest is]]
[serverless.aws.sdk :as sut]))

(deftest ->js-options
(is (= (-> {:params {:table-name "my-table-name"}
:convert-empty-values true}
(#'sut/->js-options)
->clj)
(deftest format-options
(is (= (#'sut/format-options
{:params {:table-name "my-table-name"}
:convert-empty-values true})

{:params {:TableName "my-table-name"}
:convertEmptyValues true})))
Expand All @@ -18,7 +16,7 @@
(go
(let [mock-service
#js {:getItem (fn [params]
(is (= (js->clj params) {"Key" {"id" "i"}}))
(is (= (js->clj params) {"Key" {"Id" "i"}}))
#js {:promise
#(js/Promise.resolve #js {:HelloWorld true})})}

Expand Down

0 comments on commit 459c99f

Please sign in to comment.