block-accounting/backend/internal/interface/rest/controllers/organization.go
2024-05-18 11:22:53 +03:00

44 lines
1.1 KiB
Go

package controllers
import (
"fmt"
"log/slog"
"net/http"
"github.com/emochka2007/block-accounting/internal/interface/rest/domain"
"github.com/emochka2007/block-accounting/internal/interface/rest/presenters"
"github.com/emochka2007/block-accounting/internal/usecase/interactors/organizations"
)
type OrganizationsController interface {
NewOrganization(w http.ResponseWriter, r *http.Request) ([]byte, error)
}
type organizationsController struct {
log *slog.Logger
orgInteractor organizations.OrganizationsInteractor
}
func NewOrganizationsController(
log *slog.Logger,
orgInteractor organizations.OrganizationsInteractor,
) OrganizationsController {
return &organizationsController{
log: log,
orgInteractor: orgInteractor,
}
}
func (c *organizationsController) NewOrganization(w http.ResponseWriter, r *http.Request) ([]byte, error) {
_, err := presenters.CreateRequest[domain.NewOrganizationRequest](r)
if err != nil {
return nil, fmt.Errorf("error build request. %w", err)
}
// todo call int.Create
// todo build response
return nil, nil
}