Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petersen-poul/90c3de4dcc7f0e7beff81dd7a6d987f7 to your computer and use it in GitHub Desktop.
Save petersen-poul/90c3de4dcc7f0e7beff81dd7a6d987f7 to your computer and use it in GitHub Desktop.
{
"name": "1-Click Dataset Prefer-it-All",
"description": "Given a source, creates a 1-click dataset and then marks all non-preferred field as preferred.",
"inputs": [
{
"name": "source",
"type": "source-id",
"description": "Source to process."
}
],
"outputs": [
{
"name": "dataset",
"type": "dataset-id",
"description": "The 1-click dataset with all fields marked as preferred."
}
]
}
;
; Given a source id or record, create a 1-click dataset and then
; mark every non-preferred field as preferred
;
(define (one-click-dataset-prefer-it-all source)
(let (dataset (create-and-wait-dataset source)
dataset-rec (fetch dataset)
field-ids (keys (get dataset-rec "fields"))
update-map
(loop (ids field-ids update-map {})
(if (= ids [])
update-map
(let (this (head ids) rest (tail ids))
(if (= (get-in dataset-rec ["fields" this "preferred"])
true)
(recur rest update-map)
(recur rest
(assoc update-map this {"preferred" true})))))))
(update dataset {"fields" update-map})))
(define dataset (one-click-dataset-prefer-it-all source))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment