Skip to content

Latest commit

 

History

History
60 lines (45 loc) · 1.22 KB

File metadata and controls

60 lines (45 loc) · 1.22 KB

Fiber middleware (fibermpp)

Package: github.com/cp0x-org/mppx/middleware/fiber

What It Provides

  • Payment(...) - protects a route with a single payment method.
  • Compose(...) - protects a route with multiple payment methods.
  • GetReceipt(c) - returns mpp.Receipt after successful verification.

Minimal Example

package main

import (
	"os"

	"github.com/gofiber/fiber/v2"

	fibermpp "github.com/cp0x-org/mppx/middleware/fiber"
	"github.com/cp0x-org/mppx/server"
)

func main() {
	srv := server.New(server.Config{
		SecretKey: os.Getenv("MPP_SECRET_KEY"),
		Realm:     "localhost",
	})

	app := fiber.New()

	app.Get("/premium",
		fibermpp.Payment(srv, myMethod, fiber.Map{"amount": "1000000"}),
		func(c *fiber.Ctx) error {
			receipt := fibermpp.GetReceipt(c)
			return c.JSON(fiber.Map{
				"ok":      true,
				"receipt": receipt.Reference,
			})
		},
	)

	_ = app.Listen(":8080")
}

Compose (Multiple Methods)

app.Post("/api/query",
	fibermpp.Compose(srv,
		server.Entry{Method: methodA, Request: fiber.Map{"amount": "1000000"}},
		server.Entry{Method: methodB, Request: fiber.Map{"amount": "100"}},
	),
	handler,
)

Full working examples: examples/fiber/server and examples/multi-method/server.