-
-
Save Bogdanp/58391f9723c49874c3ce9cf0bbc56220 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define-system prod | |
[addresses (db) make-address-manager] | |
[app (addresses auth blog-posts broker broker-admin carts collections db flashes images instagram | |
mailer migrator orders pages products promos sessions shipping sms stats stripe | |
users) make-app] | |
[auth (sessions users) make-auth-manager] | |
[blog-posts (db) make-blog-post-manager] | |
[broker (db) make-broker] | |
[broker-admin (broker) (make-broker-admin-factory "/admin/jobs")] | |
[carts (sessions) make-cart-manager] | |
[collections (db) make-collection-manager] | |
[db (make-database-factory | |
#:max-connections config:db-pool-size | |
#:max-idle-connections config:db-pool-idle-size | |
(lambda () | |
(postgresql-connect #:database config:db-name | |
#:user config:db-username | |
#:password config:db-password | |
#:server config:db-host | |
#:port config:db-port)))] | |
[flashes (sessions) make-flash-manager] | |
[instagram (make-instagram-manager-factory #:crawl? config:crawl-instagram)] | |
[images (db) (make-image-manager-factory #:uploads-path config:uploads-path)] | |
[mailer (make-mailer-factory #:adapter (if config:postmark-token | |
(make-postmark-mail-adapter (postmark config:postmark-token)) | |
(make-stub-mail-adapter)) | |
#:sender config:support-email | |
#:common-variables config:common-mail-variables)] | |
[migrator (db) (make-migrator-factory migrations-path)] | |
[orders (db) make-order-manager] | |
[pages (db) make-page-manager] | |
[products (db) make-product-manager] | |
[promos (carts db sessions) make-promo-manager] | |
[server (app) (compose1 (make-server-factory #:host config:http-host | |
#:port config:http-port | |
#:limits (make-safety-limits | |
#:max-form-data-field-length (* 5 1024 1024))) | |
app-dispatcher)] | |
[sessions (make-session-manager-factory #:cookie-name config:session-cookie-name | |
#:cookie-same-site 'lax | |
#:shelf-life config:session-shelf-life | |
#:secret-key config:session-secret-key | |
#:store (make-memory-session-store #:file-path config:sessions-file-path))] | |
[shipping (make-shipping-manager-factory | |
(make-sameday-shipping-adapter | |
#:root config:sameday-root-uri | |
#:client (sameday:make-client | |
#:username config:sameday-username | |
#:password config:sameday-password) | |
#:cost (cents->money config:shipping-cost) | |
#:threshold (cents->money config:shipping-threshold)))] | |
[sms (make-sms-manager #:client (twilio config:twilio-account-sid | |
config:twilio-auth-token) | |
#:sender config:twilio-sender)] | |
[stats (db) make-stats-manager] | |
[stripe (lambda () | |
(make-stripe | |
#:secret-key config:stripe-secret-key | |
#:publishable-key config:stripe-publishable-key | |
#:webhook-secret-key config:stripe-webhook-secret-key | |
#:idempotency-prefix config:environment))] | |
[users (db) make-user-manager] | |
[worker (broker orders) (lambda (b _) | |
(define factory | |
(if config:run-workers | |
(make-worker-factory) | |
(make-stub-factory 'worker))) | |
(factory b))]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment