From 4aaada7cb7e4440d2a6a79ad70b955cda33be0d7 Mon Sep 17 00:00:00 2001 From: ekzyis Date: Thu, 9 Nov 2023 03:02:03 +0100 Subject: [PATCH] Add invoice view --- server/router/handler/invoice.go | 18 +++++- vue/src/components/Invoice.vue | 108 +++++++++++++++++++++++++++++++ vue/src/index.css | 4 ++ vue/src/main.js | 4 ++ vue/src/views/InvoiceView.vue | 19 ++++++ 5 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 vue/src/components/Invoice.vue create mode 100644 vue/src/views/InvoiceView.vue diff --git a/server/router/handler/invoice.go b/server/router/handler/invoice.go index 4a21cf6..acc8ffd 100644 --- a/server/router/handler/invoice.go +++ b/server/router/handler/invoice.go @@ -18,6 +18,7 @@ func HandleInvoiceStatus(sc context.ServerContext) echo.HandlerFunc { invoiceId string invoice db.Invoice u db.User + qr string err error ) invoiceId = c.Param("id") @@ -29,8 +30,23 @@ func HandleInvoiceStatus(sc context.ServerContext) echo.HandlerFunc { if u = c.Get("session").(db.User); invoice.Pubkey != u.Pubkey { return echo.NewHTTPError(http.StatusUnauthorized) } + if qr, err = lib.ToQR(invoice.PaymentRequest); err != nil { + return err + } invoice.Preimage = "" - return c.JSON(http.StatusOK, invoice) + data := map[string]any{ + "Id": invoice.Id, + "Msats": invoice.Msats, + "MsatsReceived": invoice.MsatsReceived, + "Hash": invoice.Hash, + "PaymentRequest": invoice.PaymentRequest, + "CreatedAt": invoice.CreatedAt, + "ExpiresAt": invoice.ExpiresAt, + "ConfirmedAt": invoice.ConfirmedAt, + "HeldSince": invoice.HeldSince, + "Qr": qr, + } + return c.JSON(http.StatusOK, data) } } diff --git a/vue/src/components/Invoice.vue b/vue/src/components/Invoice.vue new file mode 100644 index 0000000..8dd485d --- /dev/null +++ b/vue/src/components/Invoice.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/vue/src/index.css b/vue/src/index.css index 84fde86..2ef490e 100644 --- a/vue/src/index.css +++ b/vue/src/index.css @@ -59,4 +59,8 @@ a.selected { .error:hover { background-color: #ff7386; +} + +.text-muted { + opacity: 0.5 } \ No newline at end of file diff --git a/vue/src/main.js b/vue/src/main.js index 1b7fdbb..225d414 100644 --- a/vue/src/main.js +++ b/vue/src/main.js @@ -9,6 +9,7 @@ import MarketsView from '@/views/MarketsView' import LoginView from '@/views/LoginView' import UserView from '@/views/UserView' import MarketView from '@/views/MarketView' +import InvoiceView from '@/views/InvoiceView' const routes = [ { @@ -22,6 +23,9 @@ const routes = [ }, { path: '/market/:id', component: MarketView + }, + { + path: '/invoice/:id', component: InvoiceView } ] const router = VueRouter.createRouter({ diff --git a/vue/src/views/InvoiceView.vue b/vue/src/views/InvoiceView.vue new file mode 100644 index 0000000..ce6d2df --- /dev/null +++ b/vue/src/views/InvoiceView.vue @@ -0,0 +1,19 @@ + + +