Files
backend_fiesta/controllers/appRequest.go
2026-09-02 15:37:59 +05:30

27 lines
1.0 KiB
Go

package controllers
import (
"strings"
"github.com/gofiber/fiber/v2"
)
// isAppRequest reports whether a request arrived on the customer app's base.
//
// Several handlers are registered on both `/v1/web/...` and `/v1/mob/...`, and
// a few of them owe the two callers different answers. The clearest case is
// stock: the console lists a product with an empty shelf so a merchant can
// refill it, and the app must not list the same product at all, because a
// shopper can only choose it and be refused at checkout.
//
// The base is read from the path rather than passed down through the service,
// so the difference stays where it belongs — at the edge, in the one place that
// knows which audience asked. Services keep answering the same question the
// same way for everyone.
//
// Matched with the surrounding slashes so a tenant, product or keyword
// containing "mob" cannot make a console request look like an app one.
func isAppRequest(c *fiber.Ctx) bool {
return strings.Contains(c.Path(), "/v1/mob/")
}