service backend
All checks were successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/nats Pipeline was successful

This commit is contained in:
Stephan D
2025-11-07 18:35:26 +01:00
parent 20e8f9acc4
commit 62a6631b9a
537 changed files with 48453 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
package domainproviderimp
import (
"net/url"
"os"
"github.com/tech/sendico/pkg/mlogger"
"go.uber.org/zap"
)
type DomainProviderImp struct {
domain string
apiEndpoint string
}
func (dp *DomainProviderImp) GetFullLink(linkElem ...string) (string, error) {
return url.JoinPath(dp.domain, linkElem...)
}
func (dp *DomainProviderImp) GetAPILink(linkElem ...string) (string, error) {
return url.JoinPath(dp.apiEndpoint, linkElem...)
}
func CreateDomainProviderImp(logger mlogger.Logger, domain, protocol, apiPointEnv string) (*DomainProviderImp, error) {
p := new(DomainProviderImp)
p.domain = os.Getenv(protocol) + "://" + os.Getenv(domain)
var err error
apiPath := os.Getenv(apiPointEnv)
if p.apiEndpoint, err = url.JoinPath(p.domain, apiPath); err != nil {
logger.Error("Failed to create domain provider", zap.String("domain", p.domain), zap.String("api_path", apiPath))
return nil, err
}
logger.Named("domain_provider").Info("Domain name provider is up", zap.String("domain", p.domain))
return p, nil
}