From f826397be8178dc3be812ac95c5d9219a7924c32 Mon Sep 17 00:00:00 2001 From: Bobby Date: Thu, 17 Jul 2025 14:47:43 +0530 Subject: image upload feature --- database/database.go | 2 +- database/images.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) (limited to 'database') diff --git a/database/database.go b/database/database.go index 0065479..dedae59 100644 --- a/database/database.go +++ b/database/database.go @@ -31,7 +31,7 @@ func init() { logLevel := logger.Silent if config.Server.IsDevMode { - logLevel = logger.Silent + logLevel = logger.Info } dialector := postgres.Open(dsn) diff --git a/database/images.go b/database/images.go index 8fa1a47..35efa7b 100644 --- a/database/images.go +++ b/database/images.go @@ -1,8 +1,10 @@ package database import ( + "imageboard/config" "imageboard/models" "imageboard/utils/format" + "imageboard/utils/transformers" "time" ) @@ -32,3 +34,47 @@ func GetTotalStorageSize() (string, error) { return format.FileSize(totalSize), nil } + +func CreateImage(fileName, contentType, md5Hash, sourceURL, rating string, uploaderID uint, requiresApproval bool) (*models.Image, error) { + ratingEnum, err := transformers.ConvertStringRatingToType(rating) + if err != nil { + return nil, err + } + + contentTypeEnum, err := transformers.ConvertStringToContentType(contentType) + if err != nil { + return nil, err + } + + image := models.Image{ + FileName: fileName, + ContentType: contentTypeEnum, + MD5Hash: md5Hash, + SourceURL: sourceURL, + Rating: ratingEnum, + UploaderID: uploaderID, + IsApproved: !requiresApproval, + } + + if err := DB.Create(&image).Error; err != nil { + return nil, err + } + + return &image, nil +} + +func CreateImageSize(imageID uint, sizeType config.ImageSizeType, width, height int, fileSize int64) (*models.ImageSize, error) { + imageSize := models.ImageSize{ + ImageID: imageID, + SizeType: sizeType, + Width: width, + Height: height, + FileSize: fileSize, + } + + if err := DB.Create(&imageSize).Error; err != nil { + return nil, err + } + + return &imageSize, nil +} -- cgit v1.2.3