aboutsummaryrefslogtreecommitdiff
path: root/database
diff options
context:
space:
mode:
authorBobby <[email protected]>2025-07-17 14:47:43 +0530
committerBobby <[email protected]>2025-07-17 14:47:43 +0530
commitf826397be8178dc3be812ac95c5d9219a7924c32 (patch)
treefe9682f1c3873691dc9113a6c67e571e0d799424 /database
parente7cb677c0558b042944a900394c1c196c5d1b898 (diff)
downloadimageboard-f826397be8178dc3be812ac95c5d9219a7924c32.tar.xz
imageboard-f826397be8178dc3be812ac95c5d9219a7924c32.zip
image upload feature
Diffstat (limited to 'database')
-rw-r--r--database/database.go2
-rw-r--r--database/images.go46
2 files changed, 47 insertions, 1 deletions
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
+}