fix: remove invalid coreapp from merge

This commit is contained in:
Benjamin
2025-12-08 16:24:00 +01:00
parent 02b2ed0bb5
commit 9b7a289a2e
5 changed files with 0 additions and 247 deletions

View File

@@ -1,51 +0,0 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
package services
import (
"context"
"github.com/btouchard/ackify-ce/internal/domain/models"
)
type expectedSignerRepo interface {
ListByDocID(ctx context.Context, docID string) ([]*models.ExpectedSigner, error)
ListWithStatusByDocID(ctx context.Context, docID string) ([]*models.ExpectedSignerWithStatus, error)
AddExpected(ctx context.Context, docID string, contacts []models.ContactInfo, addedBy string) error
Remove(ctx context.Context, docID, email string) error
GetStats(ctx context.Context, docID string) (*models.DocCompletionStats, error)
}
// ExpectedSignerService handles expected signer operations
type ExpectedSignerService struct {
repo expectedSignerRepo
}
// NewExpectedSignerService creates a new expected signer service
func NewExpectedSignerService(repo expectedSignerRepo) *ExpectedSignerService {
return &ExpectedSignerService{repo: repo}
}
// ListByDocID returns all expected signers for a document
func (s *ExpectedSignerService) ListByDocID(ctx context.Context, docID string) ([]*models.ExpectedSigner, error) {
return s.repo.ListByDocID(ctx, docID)
}
// ListWithStatusByDocID returns all expected signers with their signature status
func (s *ExpectedSignerService) ListWithStatusByDocID(ctx context.Context, docID string) ([]*models.ExpectedSignerWithStatus, error) {
return s.repo.ListWithStatusByDocID(ctx, docID)
}
// AddExpected adds expected signers to a document
func (s *ExpectedSignerService) AddExpected(ctx context.Context, docID string, contacts []models.ContactInfo, addedBy string) error {
return s.repo.AddExpected(ctx, docID, contacts, addedBy)
}
// Remove removes an expected signer from a document
func (s *ExpectedSignerService) Remove(ctx context.Context, docID, email string) error {
return s.repo.Remove(ctx, docID, email)
}
// GetStats returns completion statistics for a document
func (s *ExpectedSignerService) GetStats(ctx context.Context, docID string) (*models.DocCompletionStats, error) {
return s.repo.GetStats(ctx, docID)
}

View File

@@ -1,39 +0,0 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
package authorization
import (
"context"
"strings"
"github.com/btouchard/ackify-ce/internal/domain/models"
)
type CEDocumentAuthorizer struct {
adminEmails []string
onlyAdminCanCreate bool
}
func NewCEDocumentAuthorizer(adminEmails []string, onlyAdminCanCreate bool) *CEDocumentAuthorizer {
return &CEDocumentAuthorizer{
adminEmails: adminEmails,
onlyAdminCanCreate: onlyAdminCanCreate,
}
}
func (a *CEDocumentAuthorizer) CanCreateDocument(ctx context.Context, user *models.User) bool {
if !a.onlyAdminCanCreate {
return true
}
if user == nil {
return false
}
for _, adminEmail := range a.adminEmails {
if strings.EqualFold(user.Email, adminEmail) {
return true
}
}
return false
}

View File

@@ -1,65 +0,0 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
package coreapp
import (
"context"
"github.com/btouchard/ackify-ce/internal/application/services"
"github.com/btouchard/ackify-ce/internal/domain/models"
)
type DocumentService interface {
// Creation
CreateDocument(ctx context.Context, req services.CreateDocumentRequest) (*models.Document, error)
FindOrCreateDocument(ctx context.Context, ref string) (*models.Document, bool, error)
FindByReference(ctx context.Context, ref string, refType string) (*models.Document, error)
// Read
List(ctx context.Context, limit, offset int) ([]*models.Document, error)
Search(ctx context.Context, query string, limit, offset int) ([]*models.Document, error)
Count(ctx context.Context, searchQuery string) (int, error)
GetByDocID(ctx context.Context, docID string) (*models.Document, error)
// Write
CreateOrUpdate(ctx context.Context, docID string, input models.DocumentInput, createdBy string) (*models.Document, error)
Delete(ctx context.Context, docID string) error
}
type SignatureService interface {
CreateSignature(ctx context.Context, request *models.SignatureRequest) error
GetSignatureStatus(ctx context.Context, docID string, user *models.User) (*models.SignatureStatus, error)
GetSignatureByDocAndUser(ctx context.Context, docID string, user *models.User) (*models.Signature, error)
GetDocumentSignatures(ctx context.Context, docID string) ([]*models.Signature, error)
GetUserSignatures(ctx context.Context, user *models.User) ([]*models.Signature, error)
}
type ExpectedSignerService interface {
ListByDocID(ctx context.Context, docID string) ([]*models.ExpectedSigner, error)
ListWithStatusByDocID(ctx context.Context, docID string) ([]*models.ExpectedSignerWithStatus, error)
AddExpected(ctx context.Context, docID string, contacts []models.ContactInfo, addedBy string) error
Remove(ctx context.Context, docID, email string) error
GetStats(ctx context.Context, docID string) (*models.DocCompletionStats, error)
}
type ReminderService interface {
SendReminders(ctx context.Context, docID, sentBy string, specificEmails []string, docURL string, locale string) (*models.ReminderSendResult, error)
GetReminderHistory(ctx context.Context, docID string) ([]*models.ReminderLog, error)
GetReminderStats(ctx context.Context, docID string) (*models.ReminderStats, error)
}
type WebhookPublisher interface {
Publish(ctx context.Context, eventType string, payload map[string]interface{}) error
}
type DocumentAuthorizer interface {
CanCreateDocument(ctx context.Context, user *models.User) bool
}
type CoreDeps struct {
Documents DocumentService
DocumentAuthorizer DocumentAuthorizer
Signatures SignatureService
ExpectedSigners ExpectedSignerService
Reminders ReminderService
WebhookPublisher WebhookPublisher
BaseURL string
ImportMaxSigners int
}

View File

@@ -1,40 +0,0 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
package coreapp
import (
"github.com/btouchard/ackify-ce/internal/presentation/api/admin"
"github.com/btouchard/ackify-ce/internal/presentation/api/documents"
"github.com/btouchard/ackify-ce/internal/presentation/api/signatures"
)
type CoreHandlers struct {
Documents *documents.Handler
Signatures *signatures.Handler
Admin *admin.Handler
}
func NewCoreHandlers(deps CoreDeps) *CoreHandlers {
return &CoreHandlers{
Documents: documents.NewHandler(
deps.Signatures,
deps.Documents,
deps.Documents, // DocumentService implements documentRepository interface
deps.ExpectedSigners, // ExpectedSignerService implements expectedSignerRepository interface
deps.WebhookPublisher,
deps.DocumentAuthorizer,
),
Signatures: signatures.NewHandler(
deps.Signatures,
deps.ExpectedSigners, // ExpectedSignerService implements expectedSignerStatsRepo interface
deps.WebhookPublisher,
),
Admin: admin.NewHandler(
deps.Documents, // DocumentService implements documentRepository interface
deps.ExpectedSigners, // ExpectedSignerService implements expectedSignerRepository interface
deps.Reminders,
deps.Signatures,
deps.BaseURL,
deps.ImportMaxSigners,
),
}
}

View File

@@ -1,52 +0,0 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
package coreapp
import "github.com/go-chi/chi/v5"
type RouteRegistrar func(r chi.Router)
type HandlerGroups struct {
RegisterPublic RouteRegistrar
RegisterUser RouteRegistrar
RegisterAdmin RouteRegistrar
}
func NewHandlerGroups(deps CoreDeps) HandlerGroups {
h := NewCoreHandlers(deps)
return HandlerGroups{
RegisterPublic: func(r chi.Router) {
r.Route("/documents", func(r chi.Router) {
r.Get("/", h.Documents.HandleListDocuments)
r.Get("/{docId}", h.Documents.HandleGetDocument)
r.Get("/{docId}/signatures", h.Documents.HandleGetDocumentSignatures)
r.Get("/{docId}/expected-signers", h.Documents.HandleGetExpectedSigners)
})
},
RegisterUser: func(r chi.Router) {
r.Post("/documents", h.Documents.HandleCreateDocument)
r.Get("/documents/find-or-create", h.Documents.HandleFindOrCreateDocument)
r.Get("/signatures", h.Signatures.HandleGetUserSignatures)
r.Post("/signatures", h.Signatures.HandleCreateSignature)
r.Get("/documents/{docId}/signatures/status", h.Signatures.HandleGetSignatureStatus)
},
RegisterAdmin: func(r chi.Router) {
r.Route("/admin/documents", func(r chi.Router) {
r.Get("/", h.Admin.HandleListDocuments)
r.Get("/{docId}", h.Admin.HandleGetDocument)
r.Get("/{docId}/signers", h.Admin.HandleGetDocumentWithSigners)
r.Get("/{docId}/status", h.Admin.HandleGetDocumentStatus)
r.Put("/{docId}/metadata", h.Admin.HandleUpdateDocumentMetadata)
r.Delete("/{docId}", h.Admin.HandleDeleteDocument)
r.Post("/{docId}/signers", h.Admin.HandleAddExpectedSigner)
r.Delete("/{docId}/signers/{email}", h.Admin.HandleRemoveExpectedSigner)
r.Post("/{docId}/signers/preview-csv", h.Admin.HandlePreviewCSV)
r.Post("/{docId}/signers/import", h.Admin.HandleImportSigners)
r.Post("/{docId}/reminders", h.Admin.HandleSendReminders)
r.Get("/{docId}/reminders", h.Admin.HandleGetReminderHistory)
})
},
}
}