Migrates back to datomic on-prem
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
(ns auto-ap.graphql.vendors
|
||||
(:require
|
||||
[auto-ap.datomic :refer [audit-transact conn pull-attr remove-nils]]
|
||||
[iol-ion.tx :refer [upsert-entity random-tempid]]
|
||||
[iol-ion.tx :refer [random-tempid]]
|
||||
[auto-ap.datomic.vendors :as d-vendors]
|
||||
[auto-ap.graphql.utils
|
||||
:refer [->graphql
|
||||
@@ -19,7 +19,7 @@
|
||||
[manifold.executor :as ex]
|
||||
[manifold.deferred :as de]
|
||||
[clojure.tools.logging :as log]
|
||||
[datomic.client.api :as dc]
|
||||
[datomic.api :as dc]
|
||||
[yang.scheduler :as scheduler]
|
||||
[mount.core :as mount]
|
||||
[clj-time.core :as time]
|
||||
@@ -87,55 +87,55 @@
|
||||
:dom (:dom ao)
|
||||
:db/id (or (:id ao) (random-tempid))})
|
||||
schedule_payment_dom)
|
||||
transaction `(upsert-entity ~(cond-> #:vendor {:db/id (if id
|
||||
id
|
||||
"vendor")
|
||||
:name name
|
||||
:code code
|
||||
:hidden hidden
|
||||
:terms terms
|
||||
:print-as print_as
|
||||
:default-account default_account_id
|
||||
:invoice-reminder-schedule (keyword invoice_reminder_schedule)
|
||||
:address (when address
|
||||
(remove-nils #:address {:db/id (if (:id address)
|
||||
(:id address)
|
||||
"address")
|
||||
:street1 (:street1 address)
|
||||
:street2 (:street2 address)
|
||||
:city (:city address)
|
||||
:state (:state address)
|
||||
:zip (:zip address)}))
|
||||
:primary-contact (when primary_contact
|
||||
transaction [:upsert-entity (cond-> #:vendor {:db/id (if id
|
||||
id
|
||||
"vendor")
|
||||
:name name
|
||||
:code code
|
||||
:hidden hidden
|
||||
:terms terms
|
||||
:print-as print_as
|
||||
:default-account default_account_id
|
||||
:invoice-reminder-schedule (keyword invoice_reminder_schedule)
|
||||
:address (when address
|
||||
(remove-nils #:address {:db/id (if (:id address)
|
||||
(:id address)
|
||||
"address")
|
||||
:street1 (:street1 address)
|
||||
:street2 (:street2 address)
|
||||
:city (:city address)
|
||||
:state (:state address)
|
||||
:zip (:zip address)}))
|
||||
:primary-contact (when primary_contact
|
||||
|
||||
(remove-nils #:contact {:db/id (if (:id primary_contact)
|
||||
(:id primary_contact)
|
||||
"primary")
|
||||
:name (:name primary_contact)
|
||||
:phone (:phone primary_contact)
|
||||
:email (:email primary_contact)}))
|
||||
:secondary-contact (when secondary_contact
|
||||
(remove-nils #:contact {:db/id (if (:id primary_contact)
|
||||
(:id primary_contact)
|
||||
"primary")
|
||||
:name (:name primary_contact)
|
||||
:phone (:phone primary_contact)
|
||||
:email (:email primary_contact)}))
|
||||
:secondary-contact (when secondary_contact
|
||||
|
||||
(remove-nils #:contact {:db/id (if (:id secondary_contact)
|
||||
(:id secondary_contact)
|
||||
"secondary")
|
||||
:name (:name secondary_contact)
|
||||
:phone (:phone secondary_contact)
|
||||
:email (:email secondary_contact)})
|
||||
)
|
||||
:search-terms [name]}
|
||||
(is-admin? (:id context)) (assoc
|
||||
:vendor/legal-entity-name (:legal_entity_name in)
|
||||
:vendor/legal-entity-first-name (:legal_entity_first_name in)
|
||||
:vendor/legal-entity-middle-name (:legal_entity_middle_name in)
|
||||
:vendor/legal-entity-last-name (:legal_entity_last_name in)
|
||||
:vendor/legal-entity-tin (:legal_entity_tin in)
|
||||
:vendor/legal-entity-tin-type (enum->keyword (:legal_entity_tin_type in) "legal-entity-tin-type")
|
||||
:vendor/legal-entity-1099-type (enum->keyword (:legal_entity_1099_type in) "legal-entity-1099-type")
|
||||
:vendor/account-overrides account-overrides
|
||||
:vendor/terms-overrides terms-overrides
|
||||
:vendor/schedule-payment-dom schedule-payment-dom
|
||||
:vendor/automatically-paid-when-due (:automatically_paid_when_due in))))
|
||||
(remove-nils #:contact {:db/id (if (:id secondary_contact)
|
||||
(:id secondary_contact)
|
||||
"secondary")
|
||||
:name (:name secondary_contact)
|
||||
:phone (:phone secondary_contact)
|
||||
:email (:email secondary_contact)})
|
||||
)
|
||||
:search-terms [name]}
|
||||
(is-admin? (:id context)) (assoc
|
||||
:vendor/legal-entity-name (:legal_entity_name in)
|
||||
:vendor/legal-entity-first-name (:legal_entity_first_name in)
|
||||
:vendor/legal-entity-middle-name (:legal_entity_middle_name in)
|
||||
:vendor/legal-entity-last-name (:legal_entity_last_name in)
|
||||
:vendor/legal-entity-tin (:legal_entity_tin in)
|
||||
:vendor/legal-entity-tin-type (enum->keyword (:legal_entity_tin_type in) "legal-entity-tin-type")
|
||||
:vendor/legal-entity-1099-type (enum->keyword (:legal_entity_1099_type in) "legal-entity-1099-type")
|
||||
:vendor/account-overrides account-overrides
|
||||
:vendor/terms-overrides terms-overrides
|
||||
:vendor/schedule-payment-dom schedule-payment-dom
|
||||
:vendor/automatically-paid-when-due (:automatically_paid_when_due in)))]
|
||||
|
||||
|
||||
transaction-result (audit-transact [transaction] (:id context))]
|
||||
@@ -145,11 +145,12 @@
|
||||
(->graphql))))
|
||||
|
||||
(defn merge-vendors [context {:keys [from to]} _]
|
||||
(let [transaction (->> (dc/q {:query {:find '[?x ?a2]
|
||||
:in '[$ ?vendor-from ]
|
||||
:where ['[?x ?a ?vendor-from]
|
||||
'[?a :db/ident ?a2]]}
|
||||
:args [(dc/db conn) from]})
|
||||
(let [transaction (->> (dc/q {:find '[?x ?a2]
|
||||
:in '[$ ?vendor-from ]
|
||||
:where ['[?x ?a ?vendor-from]
|
||||
'[?a :db/ident ?a2]]}
|
||||
(dc/db conn)
|
||||
from)
|
||||
(mapcat (fn [[src attr]]
|
||||
|
||||
[[:db/retract src attr from]
|
||||
@@ -195,10 +196,10 @@
|
||||
(de/future-with
|
||||
single-thread
|
||||
(search/full-index-query
|
||||
(for [[result] (dc/qseq '[:find (pull ?v [:vendor/search-terms :db/id :vendor/name :vendor/hidden])
|
||||
:in $
|
||||
:where [?v :vendor/search-terms ]]
|
||||
(dc/db conn))]
|
||||
(for [[result] (dc/qseq {:query '[:find (pull ?v [:vendor/search-terms :db/id :vendor/name :vendor/hidden])
|
||||
:in $
|
||||
:where [?v :vendor/search-terms ]]
|
||||
:args [(dc/db conn)]})]
|
||||
{:id (:db/id result)
|
||||
:text (or (first (:vendor/search-terms result))
|
||||
(:vendor/name result))
|
||||
@@ -216,12 +217,11 @@
|
||||
_ (mu/log ::indexing
|
||||
:last-run last-run-basis-value
|
||||
:starting-from (:basisT db))
|
||||
results (for [[result] (dc/qseq '[:find (pull ?v [:vendor/search-terms :db/id :vendor/name :vendor/hidden])
|
||||
:in $ $$
|
||||
:where [$ ?v :vendor/name ]
|
||||
[$$ ?v]]
|
||||
db
|
||||
recent)]
|
||||
results (for [[result] (dc/qseq {:query '[:find (pull ?v [:vendor/search-terms :db/id :vendor/name :vendor/hidden])
|
||||
:in $ $$
|
||||
:where [$ ?v :vendor/name ]
|
||||
[$$ ?v]]
|
||||
:args [db recent]})]
|
||||
{:id (:db/id result)
|
||||
:text (or (first (:vendor/search-terms result))
|
||||
(:vendor/name result))
|
||||
|
||||
Reference in New Issue
Block a user