Skip to content

Commit

Permalink
Added provenance processing and storage to datomic DB for gene/update…
Browse files Browse the repository at this point in the history
…-other-names REST API calls #304
  • Loading branch information
mluypaert committed Jul 10, 2020
1 parent fc6a6d4 commit 29bdc50
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 4 deletions.
2 changes: 2 additions & 0 deletions resources/schema/seed-data.edn
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
#:db{:ident :event/new-gene}
#:db{:ident :event/new-unnamed-gene}
#:db{:ident :event/update-gene}
#:db{:ident :event/add-gene-other-names}
#:db{:ident :event/retract-gene-other-names}
#:db{:ident :event/merge-genes}
#:db{:ident :event/undo-merge-genes}
#:db{:ident :event/split-gene}
Expand Down
6 changes: 4 additions & 2 deletions src/wormbase/names/entity.clj
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@
(format "%s '%s' does not exist" ent-ns (last lur)))))))))))

(defn update-multi-card
[identify-fn uiident dt-transact-fn attr]
[identify-fn uiident event dt-transact-fn attr]
(fn handle-multi-card [request identifier]
(let [{conn :conn payload :body-params} request
ent-ns (namespace uiident)
Expand All @@ -206,10 +206,12 @@
(let [build-tx (fn [id attr ^String val] (vec [dt-transact-fn id attr val]))
;;retriev db-id to add values to
db-id (:db/id entity)
;;retrieve provenance
prov (wnp/assoc-provenance request payload event)
;;build transaction statements to make
txes (map #(build-tx db-id attr %) data)
;;transact data to datomic
tx-result @(d/transact-async conn txes)]
tx-result @(d/transact-async conn (conj txes prov))]
(when-let [db-after (:db-after tx-result)]
(if-let [updated (wdb/pull db-after [attr uiident] lur)]
(ok (or (attr updated) []))
Expand Down
4 changes: 2 additions & 2 deletions src/wormbase/names/gene.clj
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@
(assoc bad-request {:schema ::wsv/error-response})
(wnu/response-map))
:handler (fn [request]
(let [add-other-names (wne/update-multi-card identify :gene/id :db/add ':gene/other-names)]
(let [add-other-names (wne/update-multi-card identify :gene/id :event/add-gene-other-names :db/add ':gene/other-names)]
(add-other-names request identifier)))}
:delete
{:summary "Delete a set of other-names from a gene."
Expand All @@ -467,7 +467,7 @@
(assoc bad-request {:schema ::wsv/error-response})
(wnu/response-map))
:handler (fn [request]
(let [delete-other-names (wne/update-multi-card identify :gene/id :db/retract ':gene/other-names)]
(let [delete-other-names (wne/update-multi-card identify :gene/id :event/retract-gene-other-names :db/retract ':gene/other-names)]
(delete-other-names request identifier)))}}))
(sweet/context "/merge/:from-identifier" [from-identifier]
(sweet/resource
Expand Down

0 comments on commit 29bdc50

Please sign in to comment.