Initial commit: Open sourcing all of the Maple Open Technologies code.

This commit is contained in:
Bartlomiej Mika 2025-12-02 14:33:08 -05:00
commit 755d54a99d
2010 changed files with 448675 additions and 0 deletions

View file

@ -0,0 +1,221 @@
package http
import (
"go.uber.org/zap"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/blockedemail"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/collection"
commonhttp "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/common"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/dashboard"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/file"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/inviteemail"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/me"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/middleware"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/tag"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/interface/http/user"
svc_auth "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/service/auth"
)
// ProvideHandlers wires all HTTP handlers for Wire DI
func ProvideHandlers(
cfg *config.Config,
logger *zap.Logger,
// Common
versionHandler *commonhttp.MapleFileVersionHTTPHandler,
// Dashboard
getDashboard *dashboard.GetDashboardHTTPHandler,
// Me
getMe *me.GetMeHTTPHandler,
updateMe *me.PutUpdateMeHTTPHandler,
deleteMe *me.DeleteMeHTTPHandler,
// User
userPublicLookup *user.UserPublicLookupHTTPHandler,
// Blocked Email
createBlockedEmail *blockedemail.CreateBlockedEmailHTTPHandler,
listBlockedEmails *blockedemail.ListBlockedEmailsHTTPHandler,
deleteBlockedEmail *blockedemail.DeleteBlockedEmailHTTPHandler,
// Invite Email
sendInviteEmail *inviteemail.SendInviteEmailHTTPHandler,
// Collection - Basic CRUD
createCollection *collection.CreateCollectionHTTPHandler,
getCollection *collection.GetCollectionHTTPHandler,
listUserCollections *collection.ListUserCollectionsHTTPHandler,
updateCollection *collection.UpdateCollectionHTTPHandler,
softDeleteCollection *collection.SoftDeleteCollectionHTTPHandler,
archiveCollection *collection.ArchiveCollectionHTTPHandler,
restoreCollection *collection.RestoreCollectionHTTPHandler,
// Collection - Hierarchical
findCollectionsByParent *collection.FindCollectionsByParentHTTPHandler,
findRootCollections *collection.FindRootCollectionsHTTPHandler,
moveCollection *collection.MoveCollectionHTTPHandler,
// Collection - Sharing
shareCollection *collection.ShareCollectionHTTPHandler,
removeMember *collection.RemoveMemberHTTPHandler,
listSharedCollections *collection.ListSharedCollectionsHTTPHandler,
// Collection - Filtered
getFilteredCollections *collection.GetFilteredCollectionsHTTPHandler,
// Collection - Sync
collectionSync *collection.CollectionSyncHTTPHandler,
// File - CRUD
softDeleteFile *file.SoftDeleteFileHTTPHandler,
deleteMultipleFiles *file.DeleteMultipleFilesHTTPHandler,
getFile *file.GetFileHTTPHandler,
listFilesByCollection *file.ListFilesByCollectionHTTPHandler,
updateFile *file.UpdateFileHTTPHandler,
createPendingFile *file.CreatePendingFileHTTPHandler,
completeFileUpload *file.CompleteFileUploadHTTPHandler,
getPresignedUploadURL *file.GetPresignedUploadURLHTTPHandler,
getPresignedDownloadURL *file.GetPresignedDownloadURLHTTPHandler,
reportDownloadCompleted *file.ReportDownloadCompletedHTTPHandler,
archiveFile *file.ArchiveFileHTTPHandler,
restoreFile *file.RestoreFileHTTPHandler,
listRecentFiles *file.ListRecentFilesHTTPHandler,
// File - Sync
fileSync *file.FileSyncHTTPHandler,
// Tag handlers
createTag *tag.CreateTagHTTPHandler,
listTags *tag.ListTagsHTTPHandler,
getTag *tag.GetTagHTTPHandler,
updateTag *tag.UpdateTagHTTPHandler,
deleteTag *tag.DeleteTagHTTPHandler,
assignTag *tag.AssignTagHTTPHandler,
unassignTag *tag.UnassignTagHTTPHandler,
getTagsForCollection *tag.GetTagsForCollectionHTTPHandler,
getTagsForFile *tag.GetTagsForFileHTTPHandler,
listCollectionsByTag *tag.ListCollectionsByTagHandler,
listFilesByTag *tag.ListFilesByTagHandler,
searchByTags *tag.SearchByTagsHandler,
) *Handlers {
return NewHandlers(
// Common
versionHandler,
// Dashboard
getDashboard,
// Me
getMe,
updateMe,
deleteMe,
// User
userPublicLookup,
// Blocked Email
createBlockedEmail,
listBlockedEmails,
deleteBlockedEmail,
// Invite Email
sendInviteEmail,
// Collection - Basic CRUD
createCollection,
getCollection,
listUserCollections,
updateCollection,
softDeleteCollection,
archiveCollection,
restoreCollection,
// Collection - Hierarchical
findCollectionsByParent,
findRootCollections,
moveCollection,
// Collection - Sharing
shareCollection,
removeMember,
listSharedCollections,
// Collection - Filtered
getFilteredCollections,
// Collection Sync
collectionSync,
// File - CRUD
softDeleteFile,
deleteMultipleFiles,
getFile,
listFilesByCollection,
updateFile,
createPendingFile,
completeFileUpload,
getPresignedUploadURL,
getPresignedDownloadURL,
reportDownloadCompleted,
archiveFile,
restoreFile,
listRecentFiles,
// File Sync
fileSync,
// Tag handlers
createTag,
listTags,
getTag,
updateTag,
deleteTag,
assignTag,
unassignTag,
getTagsForCollection,
getTagsForFile,
listCollectionsByTag,
listFilesByTag,
searchByTags,
)
}
// ProvideServer provides the HTTP server for Wire DI
func ProvideServer(
cfg *config.Config,
logger *zap.Logger,
handlers *Handlers,
registerService svc_auth.RegisterService,
verifyEmailService svc_auth.VerifyEmailService,
resendVerificationService svc_auth.ResendVerificationService,
requestOTTService svc_auth.RequestOTTService,
verifyOTTService svc_auth.VerifyOTTService,
completeLoginService svc_auth.CompleteLoginService,
refreshTokenService svc_auth.RefreshTokenService,
recoveryInitiateService svc_auth.RecoveryInitiateService,
recoveryVerifyService svc_auth.RecoveryVerifyService,
recoveryCompleteService svc_auth.RecoveryCompleteService,
rateLimitMiddleware *middleware.RateLimitMiddleware,
securityHeadersMiddleware *middleware.SecurityHeadersMiddleware,
) *WireServer {
return NewWireServer(
cfg,
logger,
handlers,
registerService,
verifyEmailService,
resendVerificationService,
requestOTTService,
verifyOTTService,
completeLoginService,
refreshTokenService,
recoveryInitiateService,
recoveryVerifyService,
recoveryCompleteService,
rateLimitMiddleware,
securityHeadersMiddleware,
)
}