Initial commit: Open sourcing all of the Maple Open Technologies code.
This commit is contained in:
commit
755d54a99d
2010 changed files with 448675 additions and 0 deletions
50
cloud/maplepress-backend/internal/usecase/site/get.go
Normal file
50
cloud/maplepress-backend/internal/usecase/site/get.go
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
package site
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/gocql/gocql"
|
||||
"go.uber.org/zap"
|
||||
|
||||
domainsite "codeberg.org/mapleopentech/monorepo/cloud/maplepress-backend/internal/domain/site"
|
||||
)
|
||||
|
||||
// GetSiteUseCase handles getting a site by ID
|
||||
type GetSiteUseCase struct {
|
||||
repo domainsite.Repository
|
||||
logger *zap.Logger
|
||||
}
|
||||
|
||||
// ProvideGetSiteUseCase creates a new GetSiteUseCase
|
||||
func ProvideGetSiteUseCase(repo domainsite.Repository, logger *zap.Logger) *GetSiteUseCase {
|
||||
return &GetSiteUseCase{
|
||||
repo: repo,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
// GetSiteInput is the input for getting a site
|
||||
type GetSiteInput struct {
|
||||
ID string
|
||||
}
|
||||
|
||||
// GetSiteOutput is the output after getting a site
|
||||
type GetSiteOutput struct {
|
||||
Site *domainsite.Site
|
||||
}
|
||||
|
||||
// Execute gets a site by ID
|
||||
func (uc *GetSiteUseCase) Execute(ctx context.Context, tenantID gocql.UUID, input *GetSiteInput) (*GetSiteOutput, error) {
|
||||
siteID, err := gocql.ParseUUID(input.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
site, err := uc.repo.GetByID(ctx, tenantID, siteID)
|
||||
if err != nil {
|
||||
uc.logger.Error("failed to get site", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &GetSiteOutput{Site: site}, nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue