auto mail generation

This commit is contained in:
2026-09-29 16:53:21 +05:30
parent b18080d429
commit b46902f51b
27 changed files with 2765 additions and 80 deletions

View File

@@ -5,6 +5,7 @@ import (
"strings"
"testing"
"nearle/config"
"nearle/facade"
"github.com/gofiber/fiber/v2"
@@ -42,7 +43,7 @@ func testFacade(t *testing.T) *facade.Facade {
// No database, no catalogue, no embedder, no model. A deployment with none
// of those must still boot and say what it is missing, rather than failing
// somewhere the operator cannot see.
return facade.NewFacade(nil, nil, nil, nil, "", "no model in tests")
return facade.NewFacade(nil, nil, nil, nil, "", "no model in tests", nil, config.MailConfig{})
}
func TestTheServerCanBeBuilt(t *testing.T) {

View File

@@ -22,6 +22,14 @@ func RegisterTenantRoutes(api fiber.Router, f *facade.Facade) {
tenant.Put("/updatetenantlocation", f.TenantController.UpdateTenantLocation)
tenant.Post("/createtenantuser", f.TenantController.CreateTenantUser)
// Re-issuing a merchant's first-password link, for the one who never got
// the mail or whose invitation expired.
//
// Web group only, and the handler additionally requires a platform account:
// this mints a credential, and the merchant it would invite is by
// definition somebody who cannot sign in to ask for it themselves.
tenant.Post("/resendinvite", f.TenantController.ResendInvite)
// One business, by id.
//
// Also /mob-only until now, so the console's only way to read its own