Skip to content

Commit

Permalink
Lisätty metadata jsonb kenttä
Browse files Browse the repository at this point in the history
  • Loading branch information
hajoa committed Oct 1, 2024
1 parent be8d625 commit 0cf2bc7
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 15 deletions.
26 changes: 26 additions & 0 deletions resources/db/migration/V20240930__add_metadata_to_invoices.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
ALTER TABLE invoices ADD COLUMN metadata JSONB;

CREATE OR REPLACE VIEW all_invoices
AS
SELECT
i.id,
i.order_id,
i.first_name,
i.last_name,
i.email,
i.amount,
i.origin,
i.reference,
i.due_date,
i.created_at,
s.secret,
CASE
WHEN p.paid_at IS NOT NULL THEN 'paid'
WHEN i.due_date < CURRENT_DATE THEN 'overdue'
ELSE 'active'
END AS status,
p.paid_at,
i.metadata
FROM invoices i
LEFT OUTER JOIN latest_secrets s on (i.id = s.id)
LEFT OUTER JOIN latest_payments p on (i.id = p.id);
5 changes: 3 additions & 2 deletions src/clj/maksut/maksut/maksut_service.clj
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
;Näin koska CLJS ei tue BigDecimal/LocalDate tyyppejä
(defn Lasku->json [lasku]
(assoc
(select-keys lasku [:order_id :first_name :last_name :origin :reference])
(select-keys lasku [:order_id :first_name :last_name :origin :reference :metadata])
:secret (str (:secret lasku))
:amount (str (:amount lasku))
:due_date (str (:due_date lasku))
Expand Down Expand Up @@ -121,7 +121,8 @@
(s/validate s/Str application-key)
(if-let [laskut (seq (maksut-queries/get-laskut-by-reference db application-key))]
(map Lasku->json laskut)
(maksut-error :invoice-notfound (str "Laskuja ei löytynyt hakemusavaimella " application-key)))))
(do (log/warn (str "Laskuja ei löytynyt hakemusavaimella " application-key))
[]))))

(check-status [_ _ input]
(let [{:keys [keys]} input
Expand Down
3 changes: 0 additions & 3 deletions src/clj/maksut/payment/payment_service.clj
Original file line number Diff line number Diff line change
Expand Up @@ -208,9 +208,6 @@
:vat vat-zero}]
storage-engine oppija-baseurl))
"astu" (do
;TODO: astu email
(handle-tutu-email-confirmation email-service email locale order-id
reference)
(handle-payment-receipt email-service email locale
first-name last-name
order-id (* 1000 timestamp)
Expand Down
14 changes: 10 additions & 4 deletions src/clj/maksut/routes.clj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
[maksut.api-schemas :as schema]
[maksut.authentication.auth-routes :as auth-routes]
[maksut.config :as c]
[maksut.error :refer [maksut-error]]
[maksut.maksut.maksut-service-protocol :as maksut-protocol]
[maksut.lokalisaatio.lokalisaatio-service-protocol :as lokalisaatio-protocol]
[maksut.payment.payment-service-protocol :as payment-protocol]
Expand Down Expand Up @@ -164,7 +165,7 @@
{:post {:middleware auth
:tags ["Lasku"]
:summary "Palauttaa useamman laskun statuksen"
;:responses {200 {:body [schema/LaskuStatus]}}
:responses {200 {:body schema/LaskuStatusList}}
:parameters {:body schema/LaskuRefList}
:handler (fn [{session :session {input :body} :parameters}]
(log/info "Check invoice statuses for" (count input) "keys")
Expand Down Expand Up @@ -211,9 +212,14 @@
:responses {200 {:body schema/Laskut}}
:parameters {:path {:application-key s/Str}}
:handler (fn [{session :session {input :path} :parameters}]
(response/ok (filter
#(= "tutu" (:origin %))
(maksut-protocol/list-laskut maksut-service session input))))}}]]
(let [laskut (filter
#(= "tutu" (:origin %))
(maksut-protocol/list-laskut maksut-service session input))]
(if (< 0 (count laskut))
(response/ok laskut)
(maksut-error
:invoice-notfound
(str "Laskuja ei löytynyt hakemusavaimella " (:application-key input))))))}}]]

["/lasku/:order-id/maksa"
[""
Expand Down
20 changes: 14 additions & 6 deletions src/cljc/maksut/api_schemas.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
:value s/Str
s/Any s/Any})

(s/defschema Metadata
{(s/optional-key :form-name) s/Str})

;Paytrail palauttamat kentät (konfiguroitavissa PARAMS-OUT kentässä)
(s/defschema PaytrailCallbackRequest
{:ORDER_NUMBER s/Str
Expand All @@ -30,15 +33,15 @@
:STATUS s/Str
:RETURN_AUTHCODE s/Str})

;Läpilasketut kentät (Tutu-specificc, näitä ei välttämättä tarvita geneeriselle maksulle)
(s/defschema TutuPassthruCallbackRequest
;Läpilasketut kentät
(s/defschema PassthruCallbackRequest
{:secret s/Str
:locale s/Str})

(s/defschema TutuPaytrailCallbackRequest
(s/defschema EnrichedPaytrailCallbackRequest
(st/merge
PaytrailCallbackRequest
TutuPassthruCallbackRequest))
PassthruCallbackRequest))

(s/defschema PaymentStatus
(s/enum
Expand Down Expand Up @@ -68,7 +71,8 @@
:due-days (s/constrained s/Int #(> % 0) 'positive-due-days)
:origin Origin
:reference s/Str
(s/optional-key :index) (s/constrained s/Int #(<= 1 % 2) 'valid-tutu-maksu-index)})
(s/optional-key :index) (s/constrained s/Int #(<= 1 % 2) 'valid-tutu-maksu-index)
(s/optional-key :metadata) Metadata})

(s/defschema LaskuStatus
{:order-id s/Str
Expand All @@ -92,7 +96,11 @@
(s/optional-key :secret) s/Str
(s/optional-key :paid_at) s/Str ;java.time.LocalDate - Does not port to CLJS
:origin Origin
:reference s/Str})
:reference s/Str
(s/optional-key :metadata) Metadata})

(s/defschema Laskut
[Lasku])

(s/defschema LaskuStatusList
[LaskuStatus])

0 comments on commit 0cf2bc7

Please sign in to comment.