Fixing update-selected-apps for dynamic app refactor.

This commit is contained in:
2026-07-02 20:07:01 -07:00
parent 04407b16b0
commit 0f82b97ff6

View File

@@ -306,35 +306,12 @@ returning users.user_id;"
`(,(string->symbol (cdr config)) . ,(car config)))
*user-selected-apps-column-map*))
;; (define (update-user-selected-apps conn user-id instance-id app-alist)
;; (let ((valid-keys (map car *user-selected-apps-column-map*)))
;; (for-each (lambda (app)
;; (if (not (memq (car app) valid-keys))
;; (error (string-append "Not a valid app key: " (->string (car app))))))
;; app-alist))
;; (query* conn
;; (string-append
;; "update user_selected_apps set "
;; (string-intersperse
;; (map-in-order (lambda (app i)
;; (conc (alist-ref (car app) *user-selected-apps-column-map*)
;; "=$" i))
;; app-alist
;; (iota (length app-alist) 3))
;; ", ")
;; " where user_id=$1 and instance_id=$2;")
;; `(,user-id
;; ,instance-id
;; ,@(map-in-order cdr app-alist))))
(define (update-user-selected-apps conn user-id instance-id app-alist)
(query conn "delete from user_selected_apps where instance_id=$1 and user_id=$2" instance-id user-id)
(for-each (lambda (app-version)
(query conn "insert into user_selected_apps (app_id, installed_version)
select apps.id, $2 from apps where apps.app_name=$1
on conflict (app_id)
do update set installed_version=$2 where app_id=apps.id
from apps where apps.app_name=$1;"
(car app-version) (cdr app-version)))
(query conn "insert into user_selected_apps (app_id, installed_version, user_id, instance_id)
select apps.id, $2, $3, $4 from apps where apps.app_name=$1;"
(symbol->string (car app-version)) (cdr app-version) user-id instance-id))
app-alist))
(define (get-user-selected-apps conn user-id instance-id)