Advertisement
Guest User

Untitled

a guest
Aug 27th, 2016
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. (def base-tx [
  2. {:db/id (d/tempid :db.part/user)
  3. :party/user {:user/email "s@sample.com"}
  4. :party/document "111.111.111-87"
  5. :party/documentType :documentType/cpf
  6. :party/firstName "Pedro"
  7. :party/lastName "Donati"
  8. :party/status :partyStatus/active
  9. :party/type :pf}
  10. {:db/id (d/tempid :db.part/user)
  11. :party/user {:user/email "s2@sample.com"}
  12. :party/document "14.787.266/0001-30"
  13. :party/documentType :documentType/cnpj
  14. :party/name "Netflix"
  15. :party/status :partyStatus/active
  16. :party/type :pj}
  17. {:db/id (d/tempid :db.part/tx)
  18. :audit/channel :main-api}])
  19.  
  20.  
  21. (fact "Test get change history"
  22. (let [change-mailt (model/update-party-emailq "s@sample.com" "s@google.copi" :main-api)
  23. change-name (fn [n]
  24. [[:db/add [:party/document "111.111.111-87"]
  25. :party/lastName n]])
  26. dba (-> db (virtual-db base-tx)
  27. (virtual-db (change-name "Donati2"))
  28. (virtual-db (change-name "Bimbo2"))
  29. (virtual-db (change-name "Mathias")))
  30. name-history-tx (q '[:find ?tx ?customer
  31. :in $ ?email
  32. :where [?user :user/email ?email]
  33. [?customer :party/user ?user]
  34. [?customer :party/lastName ?lastName ?tx]]
  35. (d/history dba) "s@sample.com")
  36. lastNames (map (fn [[tx party]]
  37. (let [tx-db (d/as-of dba tx)]
  38. {:inst (-> (d/pull tx-db "[:db/txInstant]" tx) :db/txInstant)
  39. :tx tx
  40. :t (d/tx->t tx)
  41. :lastName (-> (d/pull tx-db "[:party/lastName]" party)
  42. :party/lastName)}))
  43. name-history-tx)
  44. sorted (sort-by :t lastNames)]
  45. (pprint sorted)
  46. (first sorted) => (contains {:lastName "Donati"})
  47. (last sorted) => (contains {:lastName "Mathias"})))
  48.  
  49. ;; should assert and print
  50. ;({:inst #inst "2016-08-26T20:43:20.815-00:00",
  51. ; :tx 13194139534328,
  52. ; :t 1016,
  53. ; :lastName "Donati"}
  54. ; {:inst #inst "2016-08-26T20:43:20.822-00:00",
  55. ; :tx 13194139534333,
  56. ; :t 1021,
  57. ; :lastName "Donati2"}
  58. ; {:inst #inst "2016-08-26T20:43:20.823-00:00",
  59. ; :tx 13194139534334,
  60. ; :t 1022,
  61. ; :lastName "Bimbo2"}
  62. ; {:inst #inst "2016-08-26T20:43:20.823-00:00",
  63. ; :tx 13194139534335,
  64. ; :t 1023,
  65. ; :lastName "Mathias"})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement