God morgen!
Lagde meg litt ny funksjonalitet idag. Det ble ganske langt fra funkis. Mer kråkereir.
Verneverdig!
https://lister.artsdatabanken.no/rodlisteforarter/2021/28183 > Vurdering av kråke Corvus cornix Linnaeus, 1758 > ... > Arten er vurdert til livskraftig
Livskraftig funksjonalitet?
Her er kråkeslott koden:
(defn- find-ref-type [metamodel target-type]
(first (filter #(= (:name target-type) (:name %)) (:reference-types metamodel))))
(defn- ensure-type-exists!
[{:keys [metamodel-sync-service] :as metamodel-refactor-service} ctx metamodel target-type]
(if-let [ref-type (find-ref-type metamodel target-type)]
ref-type
(let [local-ref-type (-> target-type
(dissoc :model :index)
(update :_id #(str "local-" %)))
updated-metamodel (update metamodel :reference-types conj local-ref-type)]
(find-ref-type (metamodel-sync-service/sync! metamodel-sync-service ctx updated-metamodel) target-type))))
(defn change-reference-type*!
[{:keys [reference-service] :as metamodel-refactor-service} ctx workspace-id references target-type]
(let [workspace (workspace-service/query-one! ctx (pq/by-id workspace-id))
metamodel (metamodel-sync-service/model! ctx workspace)
workspace-specific-type (ensure-type-exists! metamodel-refactor-service ctx metamodel target-type)]
(->> references
(map #(assoc % :type (:id workspace-specific-type)))
(reference-service/bulk-update! reference-service ctx))))
(defn- ensure-constraint!
[{:keys [org-triple-service] :as metamodel-refactor-service} ctx constraint]
(or (org-triple-query-service/query-triple! ctx constraint)
(org-triple-service/create! org-triple-service ctx (assoc constraint
:_id (core/gen-id!)))))
(defn change-reference-type!
[metamodel-refactor-service ctx references {:keys [referenceType] :as constraint}]
(let [target-type (or (entity/query-one! reference-type-repo/config
ctx
(reference-type-repo/by-name referenceType))
{:_id "4711"
:name referenceType
:line "solid"})]
(postgres/with-transaction-on-org ctx
(ensure-constraint! metamodel-refactor-service ctx constraint)
(->> references
(group-by :rootWorkspace)
(reduce-kv (fn [_ workspace-id references]
(change-reference-type*! metamodel-refactor-service
ctx workspace-id
references
target-type)) [])))))
Hadde vært gøy å fått litt hjelp med å firkantifisere denne koden litt uten å mekke opp masse greier med effekter og sånt.Eg ville ikkje hatt ein bang-function inne i ein reduce-kv (change-reference-type*!). Ville heller brukt doseq eller noko tilsvarande for det
Litt enig i det, men var usikker på om jeg hadde lyst til å returnere noe tilbake.
Morn!
Morn!
Morn!
Morn!
Morn!
morrn! Trivelig å se mange av dere på meetup i går! Noterte meg at jeg knapt rakk å si hei til mange kjente fjes. Hørte fra flere at "Javazone var en intro til FunkIs, nå på runde to satt ting bedre", og kan bekrefte at det stemte jaggu for meg også. Mange finere poenger som jeg fikk med meg denne gangen nå som jeg hadde grovstrukturen under huden.
Veldig bra opplegg i går! Synes egentlig også CRDT-presentasjonen var kjempespennende.
Enig! Veldig gøy at Teodor faktisk har satt seg ned og lest computer-science papers.
Morn