enhance(api): WIP adjust property related APIs

pull/11525/head
charlie 2024-09-14 16:05:38 +08:00
parent 681c345196
commit 27b9f6b5c6
3 changed files with 14 additions and 8 deletions

View File

@ -815,7 +815,7 @@ export interface IEditorProxy extends Record<string, any> {
hide: boolean
public: boolean
}>,
opts?: {}) => Promise<IEntityID>
opts?: { name?: string }) => Promise<IEntityID>
// block property related APIs
upsertBlockProperty: (

View File

@ -178,6 +178,8 @@
icon (cond
(= ident :block/tags)
"hash"
(string/starts-with? (str ident) ":plugin.")
"puzzle"
:else
(case type
:number "number"

View File

@ -863,7 +863,7 @@
property-name' (convert?to-built-in-property-name property-name')]
(if (qualified-keyword? property-name')
property-name'
(db-property/create-user-property-ident-from-name property-name))))
(db-property/create-user-property-ident-from-name property-name "plugin.property"))))
;; properties (db only)
(defn ^:export get_property
@ -883,7 +883,9 @@
"
[k ^js schema ^js opts]
(when-let [k' (and (string? k) (keyword k))]
(p/let [k (if (qualified-keyword? k') k'
(p/let [opts (or (some-> opts (bean/->clj)) {})
name (or (:name opts) (some-> (str k) (string/trim)))
k (if (qualified-keyword? k') k'
(get-db-ident-for-property-name k))
schema (or (some-> schema (bean/->clj)
(update-keys #(if (contains? #{:hide :public} %)
@ -893,21 +895,23 @@
(update :cardinality keyword)
(string? (:type schema))
(update :type keyword))
opts (or (and opts (bean/->clj opts)) {})
p (db-property-handler/upsert-property! k schema opts)]
p (db-property-handler/upsert-property! k schema
(cond-> opts
name
(assoc :property-name name)))]
(bean/->js (sdk-utils/normalize-keyword-for-json p)))))
;; block properties
(def ^:export upsert_block_property
(fn [block-uuid key value]
(fn [block-uuid keyname value]
(p/let [block-uuid (sdk-utils/uuid-or-throw-error block-uuid)
repo (state/get-current-repo)
_ (db-async/<get-block repo block-uuid :children? false)
db? (config/db-based-graph? repo)
key (-> (if (keyword? key) (name key) key) (util/safe-lower-case))
key (-> (if (keyword? key) (name keyname) keyname) (util/safe-lower-case))
key (if db? (get-db-ident-for-property-name key) key)
_ (when (and db? (not (db-utils/entity key)))
(db-property-handler/upsert-property! key {} {}))]
(db-property-handler/upsert-property! key {} {:property-name keyname}))]
(property-handler/set-block-property! repo block-uuid key value))))
(def ^:export remove_block_property