From 944bdfc7fa7921bd638aa1de2e5082322ee0c544 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 18 Jul 2025 13:09:12 +0530 Subject: [PATCH] Rename --- server/cmd/museum/main.go | 21 ++++++---- .../pkg/controller/public/collection_link.go | 26 ++++++------- server/pkg/middleware/collection_token.go | 10 ++--- server/pkg/repo/collection.go | 18 ++++----- ...ublic_collection.go => collection_link.go} | 38 +++++++++---------- .../public/{public_file.go => file_link.go} | 0 6 files changed, 60 insertions(+), 53 deletions(-) rename server/pkg/repo/public/{public_collection.go => collection_link.go} (80%) rename server/pkg/repo/public/{public_file.go => file_link.go} (100%) diff --git a/server/cmd/museum/main.go b/server/cmd/museum/main.go index 21519ca285..bda540113e 100644 --- a/server/cmd/museum/main.go +++ b/server/cmd/museum/main.go @@ -178,8 +178,8 @@ func main() { fileDataRepo := &fileDataRepo.Repository{DB: db, ObjectCleanupRepo: objectCleanupRepo} familyRepo := &repo.FamilyRepository{DB: db} trashRepo := &repo.TrashRepository{DB: db, ObjectRepo: objectRepo, FileRepo: fileRepo, QueueRepo: queueRepo} - publicCollectionRepo := public.NewPublicCollectionRepository(db, viper.GetString("apps.public-albums")) - collectionRepo := &repo.CollectionRepository{DB: db, FileRepo: fileRepo, PublicCollectionRepo: publicCollectionRepo, + collectionLinkRepo := public.NewCollectionLinkRepository(db, viper.GetString("apps.public-albums")) + collectionRepo := &repo.CollectionRepository{DB: db, FileRepo: fileRepo, CollectionLinkRepo: collectionLinkRepo, TrashRepo: trashRepo, SecretEncryptionKey: secretEncryptionKeyBytes, QueueRepo: queueRepo, LatencyLogger: latencyLogger} pushRepo := &repo.PushTokenRepository{DB: db} kexRepo := &kex.Repository{ @@ -304,7 +304,7 @@ func main() { collectionLinkCtrl := &publicCtrl.CollectionLinkController{ FileController: fileController, EmailNotificationCtrl: emailNotificationCtrl, - PublicCollectionRepo: publicCollectionRepo, + CollectionLinkRepo: collectionLinkRepo, CollectionRepo: collectionRepo, UserRepo: userRepo, JwtSecret: jwtSecretBytes, @@ -360,7 +360,7 @@ func main() { authMiddleware := middleware.AuthMiddleware{UserAuthRepo: userAuthRepo, Cache: authCache, UserController: userController} collectionTokenMiddleware := middleware.CollectionTokenMiddleware{ - PublicCollectionRepo: publicCollectionRepo, + CollectionLinkRepo: collectionLinkRepo, PublicCollectionCtrl: collectionLinkCtrl, CollectionRepo: collectionRepo, Cache: accessTokenCache, @@ -428,11 +428,18 @@ func main() { ObjectRepo: objectRepo, FileRepo: fileRepo, } + fileLinkCtrl := &publicCtrl.FileLinkController{ + FileController: fileController, + FileLinkRepo: nil, + FileRepo: fileRepo, + JwtSecret: jwtSecretBytes, + } fileHandler := &api.FileHandler{ Controller: fileController, FileCopyCtrl: fileCopyCtrl, FileDataCtrl: fileDataCtrl, + FileUrlCtrl: fileLinkCtrl, } privateAPI.GET("/files/upload-urls", fileHandler.GetUploadURLs) privateAPI.GET("/files/multipart-upload-urls", fileHandler.GetMultipartUploadURLs) @@ -776,7 +783,7 @@ func main() { setKnownAPIs(server.Routes()) setupAndStartBackgroundJobs(objectCleanupController, replicationController3, fileDataCtrl) setupAndStartCrons( - userAuthRepo, publicCollectionRepo, twoFactorRepo, passkeysRepo, fileController, taskLockingRepo, emailNotificationCtrl, + userAuthRepo, collectionLinkRepo, twoFactorRepo, passkeysRepo, fileController, taskLockingRepo, emailNotificationCtrl, trashController, pushController, objectController, dataCleanupController, storageBonusCtrl, emergencyCtrl, embeddingController, healthCheckHandler, kexCtrl, castDb) @@ -905,7 +912,7 @@ func setupAndStartBackgroundJobs( objectCleanupController.StartClearingOrphanObjects() } -func setupAndStartCrons(userAuthRepo *repo.UserAuthRepository, publicCollectionRepo *public.PublicCollectionRepository, +func setupAndStartCrons(userAuthRepo *repo.UserAuthRepository, collectionLinkRepo *public.CollectionLinkRepo, twoFactorRepo *repo.TwoFactorRepository, passkeysRepo *passkey.Repository, fileController *controller.FileController, taskRepo *repo.TaskLockRepository, emailNotificationCtrl *email.EmailNotificationController, trashController *controller.TrashController, pushController *controller.PushController, @@ -931,7 +938,7 @@ func setupAndStartCrons(userAuthRepo *repo.UserAuthRepository, publicCollectionR schedule(c, "@every 24h", func() { _ = userAuthRepo.RemoveDeletedTokens(timeUtil.MicrosecondsBeforeDays(30)) _ = castDb.DeleteOldSessions(context.Background(), timeUtil.MicrosecondsBeforeDays(7)) - _ = publicCollectionRepo.CleanupAccessHistory(context.Background()) + _ = collectionLinkRepo.CleanupAccessHistory(context.Background()) }) schedule(c, "@every 1m", func() { diff --git a/server/pkg/controller/public/collection_link.go b/server/pkg/controller/public/collection_link.go index bec8393425..52ca2d7689 100644 --- a/server/pkg/controller/public/collection_link.go +++ b/server/pkg/controller/public/collection_link.go @@ -53,7 +53,7 @@ const ( type CollectionLinkController struct { FileController *controller.FileController EmailNotificationCtrl *emailCtrl.EmailNotificationController - PublicCollectionRepo *public.PublicCollectionRepository + CollectionLinkRepo *public.CollectionLinkRepo CollectionRepo *repo.CollectionRepository UserRepo *repo.UserRepository JwtSecret []byte @@ -61,11 +61,11 @@ type CollectionLinkController struct { func (c *CollectionLinkController) CreateLink(ctx context.Context, req ente.CreatePublicAccessTokenRequest) (ente.PublicURL, error) { accessToken := shortuuid.New()[0:AccessTokenLength] - err := c.PublicCollectionRepo. + err := c.CollectionLinkRepo. Insert(ctx, req.CollectionID, accessToken, req.ValidTill, req.DeviceLimit, req.EnableCollect, req.EnableJoin) if err != nil { if errors.Is(err, ente.ErrActiveLinkAlreadyExists) { - collectionToPubUrlMap, err2 := c.PublicCollectionRepo.GetCollectionToActivePublicURLMap(ctx, []int64{req.CollectionID}) + collectionToPubUrlMap, err2 := c.CollectionLinkRepo.GetCollectionToActivePublicURLMap(ctx, []int64{req.CollectionID}) if err2 != nil { return ente.PublicURL{}, stacktrace.Propagate(err2, "") } @@ -81,7 +81,7 @@ func (c *CollectionLinkController) CreateLink(ctx context.Context, req ente.Crea } } response := ente.PublicURL{ - URL: c.PublicCollectionRepo.GetAlbumUrl(accessToken), + URL: c.CollectionLinkRepo.GetAlbumUrl(accessToken), ValidTill: req.ValidTill, DeviceLimit: req.DeviceLimit, EnableDownload: true, @@ -92,7 +92,7 @@ func (c *CollectionLinkController) CreateLink(ctx context.Context, req ente.Crea } func (c *CollectionLinkController) GetActiveCollectionLinkToken(ctx context.Context, collectionID int64) (ente.CollectionLinkRow, error) { - return c.PublicCollectionRepo.GetActiveCollectionLinkRow(ctx, collectionID) + return c.CollectionLinkRepo.GetActiveCollectionLinkRow(ctx, collectionID) } func (c *CollectionLinkController) CreateFile(ctx *gin.Context, file ente.File, app ente.App) (ente.File, error) { @@ -119,12 +119,12 @@ func (c *CollectionLinkController) CreateFile(ctx *gin.Context, file ente.File, // Disable all public accessTokens generated for the given cID till date. func (c *CollectionLinkController) Disable(ctx context.Context, cID int64) error { - err := c.PublicCollectionRepo.DisableSharing(ctx, cID) + err := c.CollectionLinkRepo.DisableSharing(ctx, cID) return stacktrace.Propagate(err, "") } func (c *CollectionLinkController) UpdateSharedUrl(ctx context.Context, req ente.UpdatePublicAccessTokenRequest) (ente.PublicURL, error) { - publicCollectionToken, err := c.PublicCollectionRepo.GetActiveCollectionLinkRow(ctx, req.CollectionID) + publicCollectionToken, err := c.CollectionLinkRepo.GetActiveCollectionLinkRow(ctx, req.CollectionID) if err != nil { return ente.PublicURL{}, err } @@ -154,12 +154,12 @@ func (c *CollectionLinkController) UpdateSharedUrl(ctx context.Context, req ente if req.EnableJoin != nil { publicCollectionToken.EnableJoin = *req.EnableJoin } - err = c.PublicCollectionRepo.UpdatePublicCollectionToken(ctx, publicCollectionToken) + err = c.CollectionLinkRepo.UpdatePublicCollectionToken(ctx, publicCollectionToken) if err != nil { return ente.PublicURL{}, stacktrace.Propagate(err, "") } return ente.PublicURL{ - URL: c.PublicCollectionRepo.GetAlbumUrl(publicCollectionToken.Token), + URL: c.CollectionLinkRepo.GetAlbumUrl(publicCollectionToken.Token), DeviceLimit: publicCollectionToken.DeviceLimit, ValidTill: publicCollectionToken.ValidTill, EnableDownload: publicCollectionToken.EnableDownload, @@ -178,7 +178,7 @@ func (c *CollectionLinkController) UpdateSharedUrl(ctx context.Context, req ente // attack for guessing password. func (c *CollectionLinkController) VerifyPassword(ctx *gin.Context, req ente.VerifyPasswordRequest) (*ente.VerifyPasswordResponse, error) { accessContext := auth.MustGetPublicAccessContext(ctx) - collectionLinkRow, err := c.PublicCollectionRepo.GetActiveCollectionLinkRow(ctx, accessContext.CollectionID) + collectionLinkRow, err := c.CollectionLinkRepo.GetActiveCollectionLinkRow(ctx, accessContext.CollectionID) if err != nil { return nil, stacktrace.Propagate(err, "failed to get public collection info") } @@ -200,11 +200,11 @@ func (c *CollectionLinkController) ReportAbuse(ctx *gin.Context, req ente.AbuseR } logrus.WithField("collectionID", accessContext.CollectionID).Error("CRITICAL: received abuse report") - err := c.PublicCollectionRepo.RecordAbuseReport(ctx, accessContext, req.URL, req.Reason, req.Details) + err := c.CollectionLinkRepo.RecordAbuseReport(ctx, accessContext, req.URL, req.Reason, req.Details) if err != nil { return stacktrace.Propagate(err, "") } - count, err := c.PublicCollectionRepo.GetAbuseReportCount(ctx, accessContext) + count, err := c.CollectionLinkRepo.GetAbuseReportCount(ctx, accessContext) if err != nil { return stacktrace.Propagate(err, "") } @@ -259,7 +259,7 @@ func (c *CollectionLinkController) onAbuseReportReceived(collectionID int64, rep func (c *CollectionLinkController) HandleAccountDeletion(ctx context.Context, userID int64, logger *logrus.Entry) error { logger.Info("updating public collection on account deletion") - collectionIDs, err := c.PublicCollectionRepo.GetActivePublicTokenForUser(ctx, userID) + collectionIDs, err := c.CollectionLinkRepo.GetActivePublicTokenForUser(ctx, userID) if err != nil { return stacktrace.Propagate(err, "") } diff --git a/server/pkg/middleware/collection_token.go b/server/pkg/middleware/collection_token.go index 37ff02458e..1760718e65 100644 --- a/server/pkg/middleware/collection_token.go +++ b/server/pkg/middleware/collection_token.go @@ -28,7 +28,7 @@ var whitelistedCollectionShareIDs = []int64{111} // CollectionTokenMiddleware intercepts and authenticates incoming requests type CollectionTokenMiddleware struct { - PublicCollectionRepo *public.PublicCollectionRepository + CollectionLinkRepo *public.CollectionLinkRepo PublicCollectionCtrl *public2.CollectionLinkController CollectionRepo *repo.CollectionRepository Cache *cache.Cache @@ -54,7 +54,7 @@ func (m *CollectionTokenMiddleware) Authenticate(urlSanitizer func(_ *gin.Contex cacheKey := computeHashKeyForList([]string{accessToken, clientIP, userAgent}, ":") cachedValue, cacheHit := m.Cache.Get(cacheKey) if !cacheHit { - publicCollectionSummary, err = m.PublicCollectionRepo.GetCollectionSummaryByToken(c, accessToken) + publicCollectionSummary, err = m.CollectionLinkRepo.GetCollectionSummaryByToken(c, accessToken) if err != nil { c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "invalid token"}) return @@ -130,7 +130,7 @@ func (m *CollectionTokenMiddleware) isDeviceLimitReached(ctx context.Context, } sharedID := collectionSummary.ID - hasAccessedInPast, err := m.PublicCollectionRepo.AccessedInPast(ctx, sharedID, ip, ua) + hasAccessedInPast, err := m.CollectionLinkRepo.AccessedInPast(ctx, sharedID, ip, ua) if err != nil { return false, stacktrace.Propagate(err, "") } @@ -138,7 +138,7 @@ func (m *CollectionTokenMiddleware) isDeviceLimitReached(ctx context.Context, if hasAccessedInPast { return false, nil } - count, err := m.PublicCollectionRepo.GetUniqueAccessCount(ctx, sharedID) + count, err := m.CollectionLinkRepo.GetUniqueAccessCount(ctx, sharedID) if err != nil { return false, stacktrace.Propagate(err, "failed to get unique access count") } @@ -159,7 +159,7 @@ func (m *CollectionTokenMiddleware) isDeviceLimitReached(ctx context.Context, if deviceLimit > 0 && count >= deviceLimit { return true, nil } - err = m.PublicCollectionRepo.RecordAccessHistory(ctx, sharedID, ip, ua) + err = m.CollectionLinkRepo.RecordAccessHistory(ctx, sharedID, ip, ua) return false, stacktrace.Propagate(err, "failed to record access history") } diff --git a/server/pkg/repo/collection.go b/server/pkg/repo/collection.go index 40acc98b8a..c76b40da50 100644 --- a/server/pkg/repo/collection.go +++ b/server/pkg/repo/collection.go @@ -23,13 +23,13 @@ import ( // CollectionRepository defines the methods for inserting, updating and // retrieving collection entities from the underlying repository type CollectionRepository struct { - DB *sql.DB - FileRepo *FileRepository - PublicCollectionRepo *public.PublicCollectionRepository - TrashRepo *TrashRepository - SecretEncryptionKey []byte - QueueRepo *QueueRepository - LatencyLogger *prometheus.HistogramVec + DB *sql.DB + FileRepo *FileRepository + CollectionLinkRepo *public.CollectionLinkRepo + TrashRepo *TrashRepository + SecretEncryptionKey []byte + QueueRepo *QueueRepository + LatencyLogger *prometheus.HistogramVec } type SharedCollection struct { @@ -75,7 +75,7 @@ func (repo *CollectionRepository) Get(collectionID int64) (ente.Collection, erro c.EncryptedName = encryptedName.String c.NameDecryptionNonce = nameDecryptionNonce.String } - urlMap, err := repo.PublicCollectionRepo.GetCollectionToActivePublicURLMap(context.Background(), []int64{collectionID}) + urlMap, err := repo.CollectionLinkRepo.GetCollectionToActivePublicURLMap(context.Background(), []int64{collectionID}) if err != nil { return ente.Collection{}, stacktrace.Propagate(err, "failed to get publicURL info") } @@ -175,7 +175,7 @@ pct.access_token, pct.valid_till, pct.device_limit, pct.created_at, pct.updated_ if _, ok := addPublicUrlMap[pctToken.String]; !ok { addPublicUrlMap[pctToken.String] = true url := ente.PublicURL{ - URL: repo.PublicCollectionRepo.GetAlbumUrl(pctToken.String), + URL: repo.CollectionLinkRepo.GetAlbumUrl(pctToken.String), DeviceLimit: int(pctDeviceLimit.Int32), ValidTill: pctValidTill.Int64, EnableDownload: pctEnableDownload.Bool, diff --git a/server/pkg/repo/public/public_collection.go b/server/pkg/repo/public/collection_link.go similarity index 80% rename from server/pkg/repo/public/public_collection.go rename to server/pkg/repo/public/collection_link.go index 5a73c2e43f..fafcd4cb11 100644 --- a/server/pkg/repo/public/public_collection.go +++ b/server/pkg/repo/public/collection_link.go @@ -13,29 +13,29 @@ import ( const BaseShareURL = "https://albums.ente.io/?t=%s" -// PublicCollectionRepository defines the methods for inserting, updating and +// CollectionLinkRepo defines the methods for inserting, updating and // retrieving entities related to public collections -type PublicCollectionRepository struct { +type CollectionLinkRepo struct { DB *sql.DB albumHost string } -// NewPublicCollectionRepository .. -func NewPublicCollectionRepository(db *sql.DB, albumHost string) *PublicCollectionRepository { +// NewCollectionLinkRepository .. +func NewCollectionLinkRepository(db *sql.DB, albumHost string) *CollectionLinkRepo { if albumHost == "" { albumHost = "https://albums.ente.io" } - return &PublicCollectionRepository{ + return &CollectionLinkRepo{ DB: db, albumHost: albumHost, } } -func (pcr *PublicCollectionRepository) GetAlbumUrl(token string) string { +func (pcr *CollectionLinkRepo) GetAlbumUrl(token string) string { return fmt.Sprintf("%s/?t=%s", pcr.albumHost, token) } -func (pcr *PublicCollectionRepository) Insert(ctx context.Context, +func (pcr *CollectionLinkRepo) Insert(ctx context.Context, cID int64, token string, validTill int64, deviceLimit int, enableCollect bool, enableJoin *bool) error { // default value for enableJoin is true join := true @@ -51,7 +51,7 @@ func (pcr *PublicCollectionRepository) Insert(ctx context.Context, return stacktrace.Propagate(err, "failed to insert") } -func (pcr *PublicCollectionRepository) DisableSharing(ctx context.Context, cID int64) error { +func (pcr *CollectionLinkRepo) DisableSharing(ctx context.Context, cID int64) error { _, err := pcr.DB.ExecContext(ctx, `UPDATE public_collection_tokens SET is_disabled = true where collection_id = $1 and is_disabled = false`, cID) return stacktrace.Propagate(err, "failed to disable sharing") @@ -59,7 +59,7 @@ func (pcr *PublicCollectionRepository) DisableSharing(ctx context.Context, cID i // GetCollectionToActivePublicURLMap will return map of collectionID to PublicURLs which are not disabled yet. // Note: The url could be expired or deviceLimit is already reached -func (pcr *PublicCollectionRepository) GetCollectionToActivePublicURLMap(ctx context.Context, collectionIDs []int64) (map[int64][]ente.PublicURL, error) { +func (pcr *CollectionLinkRepo) GetCollectionToActivePublicURLMap(ctx context.Context, collectionIDs []int64) (map[int64][]ente.PublicURL, error) { rows, err := pcr.DB.QueryContext(ctx, `SELECT collection_id, access_token, valid_till, device_limit, enable_download, enable_collect, enable_join, pw_nonce, mem_limit, ops_limit FROM public_collection_tokens WHERE collection_id = ANY($1) and is_disabled = FALSE`, pq.Array(collectionIDs)) @@ -94,7 +94,7 @@ func (pcr *PublicCollectionRepository) GetCollectionToActivePublicURLMap(ctx con // GetActiveCollectionLinkRow will return ente.CollectionLinkRow for given collection ID // Note: The token could be expired or deviceLimit is already reached -func (pcr *PublicCollectionRepository) GetActiveCollectionLinkRow(ctx context.Context, collectionID int64) (ente.CollectionLinkRow, error) { +func (pcr *CollectionLinkRepo) GetActiveCollectionLinkRow(ctx context.Context, collectionID int64) (ente.CollectionLinkRow, error) { row := pcr.DB.QueryRowContext(ctx, `SELECT id, collection_id, access_token, valid_till, device_limit, is_disabled, pw_hash, pw_nonce, mem_limit, ops_limit, enable_download, enable_collect, enable_join FROM public_collection_tokens WHERE collection_id = $1 and is_disabled = FALSE`, @@ -111,7 +111,7 @@ func (pcr *PublicCollectionRepository) GetActiveCollectionLinkRow(ctx context.Co } // UpdatePublicCollectionToken will update the row for corresponding public collection token -func (pcr *PublicCollectionRepository) UpdatePublicCollectionToken(ctx context.Context, pct ente.CollectionLinkRow) error { +func (pcr *CollectionLinkRepo) UpdatePublicCollectionToken(ctx context.Context, pct ente.CollectionLinkRow) error { _, err := pcr.DB.ExecContext(ctx, `UPDATE public_collection_tokens SET valid_till = $1, device_limit = $2, pw_hash = $3, pw_nonce = $4, mem_limit = $5, ops_limit = $6, enable_download = $7, enable_collect = $8, enable_join = $9 where id = $10`, @@ -119,7 +119,7 @@ func (pcr *PublicCollectionRepository) UpdatePublicCollectionToken(ctx context.C return stacktrace.Propagate(err, "failed to update public collection token") } -func (pcr *PublicCollectionRepository) RecordAbuseReport(ctx context.Context, accessCtx ente.PublicAccessContext, +func (pcr *CollectionLinkRepo) RecordAbuseReport(ctx context.Context, accessCtx ente.PublicAccessContext, url string, reason string, details ente.AbuseReportDetails) error { _, err := pcr.DB.ExecContext(ctx, `INSERT INTO public_abuse_report (share_id, ip, user_agent, url, reason, details) VALUES ($1, $2, $3, $4, $5, $6) @@ -128,7 +128,7 @@ func (pcr *PublicCollectionRepository) RecordAbuseReport(ctx context.Context, ac return stacktrace.Propagate(err, "failed to record abuse report") } -func (pcr *PublicCollectionRepository) GetAbuseReportCount(ctx context.Context, accessCtx ente.PublicAccessContext) (int64, error) { +func (pcr *CollectionLinkRepo) GetAbuseReportCount(ctx context.Context, accessCtx ente.PublicAccessContext) (int64, error) { row := pcr.DB.QueryRowContext(ctx, `SELECT count(*) FROM public_abuse_report WHERE share_id = $1`, accessCtx.ID) var count int64 = 0 err := row.Scan(&count) @@ -138,7 +138,7 @@ func (pcr *PublicCollectionRepository) GetAbuseReportCount(ctx context.Context, return count, nil } -func (pcr *PublicCollectionRepository) GetUniqueAccessCount(ctx context.Context, shareId int64) (int64, error) { +func (pcr *CollectionLinkRepo) GetUniqueAccessCount(ctx context.Context, shareId int64) (int64, error) { row := pcr.DB.QueryRowContext(ctx, `SELECT count(*) FROM public_collection_access_history WHERE share_id = $1`, shareId) var count int64 = 0 err := row.Scan(&count) @@ -148,7 +148,7 @@ func (pcr *PublicCollectionRepository) GetUniqueAccessCount(ctx context.Context, return count, nil } -func (pcr *PublicCollectionRepository) RecordAccessHistory(ctx context.Context, shareID int64, ip string, ua string) error { +func (pcr *CollectionLinkRepo) RecordAccessHistory(ctx context.Context, shareID int64, ip string, ua string) error { _, err := pcr.DB.ExecContext(ctx, `INSERT INTO public_collection_access_history (share_id, ip, user_agent) VALUES ($1, $2, $3) ON CONFLICT ON CONSTRAINT unique_access_sid_ip_ua DO NOTHING;`, @@ -157,7 +157,7 @@ func (pcr *PublicCollectionRepository) RecordAccessHistory(ctx context.Context, } // AccessedInPast returns true if the given ip, ua agent combination has accessed the url in the past -func (pcr *PublicCollectionRepository) AccessedInPast(ctx context.Context, shareID int64, ip string, ua string) (bool, error) { +func (pcr *CollectionLinkRepo) AccessedInPast(ctx context.Context, shareID int64, ip string, ua string) (bool, error) { row := pcr.DB.QueryRowContext(ctx, `select share_id from public_collection_access_history where share_id =$1 and ip = $2 and user_agent = $3`, shareID, ip, ua) var tempID int64 @@ -168,7 +168,7 @@ func (pcr *PublicCollectionRepository) AccessedInPast(ctx context.Context, share return true, stacktrace.Propagate(err, "failed to record access history") } -func (pcr *PublicCollectionRepository) GetCollectionSummaryByToken(ctx context.Context, accessToken string) (ente.PublicCollectionSummary, error) { +func (pcr *CollectionLinkRepo) GetCollectionSummaryByToken(ctx context.Context, accessToken string) (ente.PublicCollectionSummary, error) { row := pcr.DB.QueryRowContext(ctx, `SELECT sct.id, sct.collection_id, sct.is_disabled, sct.valid_till, sct.device_limit, sct.pw_hash, sct.created_at, sct.updated_at, count(ah.share_id) @@ -185,7 +185,7 @@ func (pcr *PublicCollectionRepository) GetCollectionSummaryByToken(ctx context.C return result, nil } -func (pcr *PublicCollectionRepository) GetActivePublicTokenForUser(ctx context.Context, userID int64) ([]int64, error) { +func (pcr *CollectionLinkRepo) GetActivePublicTokenForUser(ctx context.Context, userID int64) ([]int64, error) { rows, err := pcr.DB.QueryContext(ctx, `select pt.collection_id from public_collection_tokens pt left join collections c on pt.collection_id = c.collection_id where pt.is_disabled = FALSE and c.owner_id= $1;`, userID) if err != nil { return nil, stacktrace.Propagate(err, "") @@ -204,7 +204,7 @@ func (pcr *PublicCollectionRepository) GetActivePublicTokenForUser(ctx context.C } // CleanupAccessHistory public_collection_access_history where public_collection_tokens is disabled and the last updated time is older than 30 days -func (pcr *PublicCollectionRepository) CleanupAccessHistory(ctx context.Context) error { +func (pcr *CollectionLinkRepo) CleanupAccessHistory(ctx context.Context) error { _, err := pcr.DB.ExecContext(ctx, `DELETE FROM public_collection_access_history WHERE share_id IN (SELECT id FROM public_collection_tokens WHERE is_disabled = TRUE AND updated_at < (now_utc_micro_seconds() - (24::BIGINT * 30 * 60 * 60 * 1000 * 1000)))`) if err != nil { return stacktrace.Propagate(err, "failed to clean up public collection access history") diff --git a/server/pkg/repo/public/public_file.go b/server/pkg/repo/public/file_link.go similarity index 100% rename from server/pkg/repo/public/public_file.go rename to server/pkg/repo/public/file_link.go