summaryrefslogtreecommitdiff
path: root/internal/gtsmodel/mediaattachment.go
diff options
context:
space:
mode:
authorLibravatar Daenney <daenney@users.noreply.github.com>2023-08-06 12:22:40 +0200
committerLibravatar GitHub <noreply@github.com>2023-08-06 12:22:40 +0200
commitc1375ca5c1d5a8a645151cedfced5a336f6b7467 (patch)
treec3cc68d992811de674458e646af16f4659926ec7 /internal/gtsmodel/mediaattachment.go
parent[bugfix] update cache library with nil ptr fix (#2070) (diff)
downloadgotosocial-c1375ca5c1d5a8a645151cedfced5a336f6b7467.tar.xz
[chore] Remove go-playground/validator (#2069)
* [chore] Remove go-playground/validator It turns out we're not actually using the validator code. This is a remnant from when we intended to use it, but the presence of it and its struct tags creates the illusion we're validating a lot of things we're not. It resulted in some confusion when we were trying to figure out language valdiation. Remove all this code, so that only the validation functions from the validate package we actually use remain. I'm not touching the struct tags in the migrations in order to avoid things potentially thinking migrations need to be re-run. * [chore] Bring back a struct tag on api The validate on internal/api is Gin doing form validation, not the validator from go-playground/validator.
Diffstat (limited to 'internal/gtsmodel/mediaattachment.go')
-rw-r--r--internal/gtsmodel/mediaattachment.go84
1 files changed, 42 insertions, 42 deletions
diff --git a/internal/gtsmodel/mediaattachment.go b/internal/gtsmodel/mediaattachment.go
index b8e8b57f7..e418de7d2 100644
--- a/internal/gtsmodel/mediaattachment.go
+++ b/internal/gtsmodel/mediaattachment.go
@@ -24,42 +24,42 @@ import (
// MediaAttachment represents a user-uploaded media attachment: an image/video/audio/gif that is
// somewhere in storage and that can be retrieved and served by the router.
type MediaAttachment struct {
- ID string `validate:"required,ulid" bun:"type:CHAR(26),pk,nullzero,notnull,unique"` // id of this item in the database
- CreatedAt time.Time `validate:"-" bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // when was item created
- UpdatedAt time.Time `validate:"-" bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // when was item last updated
- StatusID string `validate:"omitempty,ulid" bun:"type:CHAR(26),nullzero"` // ID of the status to which this is attached
- URL string `validate:"required_without=RemoteURL,omitempty,url" bun:",nullzero"` // Where can the attachment be retrieved on *this* server
- RemoteURL string `validate:"required_without=URL,omitempty,url" bun:",nullzero"` // Where can the attachment be retrieved on a remote server (empty for local media)
- Type FileType `validate:"oneof=Image Gifv Audio Video Unknown" bun:",nullzero,notnull"` // Type of file (image/gifv/audio/video)
- FileMeta FileMeta `validate:"required" bun:",embed:,nullzero,notnull"` // Metadata about the file
- AccountID string `validate:"required,ulid" bun:"type:CHAR(26),nullzero,notnull"` // To which account does this attachment belong
- Description string `validate:"-" bun:""` // Description of the attachment (for screenreaders)
- ScheduledStatusID string `validate:"omitempty,ulid" bun:"type:CHAR(26),nullzero"` // To which scheduled status does this attachment belong
- Blurhash string `validate:"required_if=Type Image,required_if=Type Gif,required_if=Type Video" bun:",nullzero"` // What is the generated blurhash of this attachment
- Processing ProcessingStatus `validate:"oneof=0 1 2 666" bun:",notnull,default:2"` // What is the processing status of this attachment
- File File `validate:"required" bun:",embed:file_,notnull,nullzero"` // metadata for the whole file
- Thumbnail Thumbnail `validate:"required" bun:",embed:thumbnail_,notnull,nullzero"` // small image thumbnail derived from a larger image, video, or audio file.
- Avatar *bool `validate:"-" bun:",nullzero,notnull,default:false"` // Is this attachment being used as an avatar?
- Header *bool `validate:"-" bun:",nullzero,notnull,default:false"` // Is this attachment being used as a header?
- Cached *bool `validate:"-" bun:",nullzero,notnull,default:false"` // Is this attachment currently cached by our instance?
+ ID string `bun:"type:CHAR(26),pk,nullzero,notnull,unique"` // id of this item in the database
+ CreatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // when was item created
+ UpdatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // when was item last updated
+ StatusID string `bun:"type:CHAR(26),nullzero"` // ID of the status to which this is attached
+ URL string `bun:",nullzero"` // Where can the attachment be retrieved on *this* server
+ RemoteURL string `bun:",nullzero"` // Where can the attachment be retrieved on a remote server (empty for local media)
+ Type FileType `bun:",nullzero,notnull"` // Type of file (image/gifv/audio/video)
+ FileMeta FileMeta `bun:",embed:,nullzero,notnull"` // Metadata about the file
+ AccountID string `bun:"type:CHAR(26),nullzero,notnull"` // To which account does this attachment belong
+ Description string `bun:""` // Description of the attachment (for screenreaders)
+ ScheduledStatusID string `bun:"type:CHAR(26),nullzero"` // To which scheduled status does this attachment belong
+ Blurhash string `bun:",nullzero"` // What is the generated blurhash of this attachment
+ Processing ProcessingStatus `bun:",notnull,default:2"` // What is the processing status of this attachment
+ File File `bun:",embed:file_,notnull,nullzero"` // metadata for the whole file
+ Thumbnail Thumbnail `bun:",embed:thumbnail_,notnull,nullzero"` // small image thumbnail derived from a larger image, video, or audio file.
+ Avatar *bool `bun:",nullzero,notnull,default:false"` // Is this attachment being used as an avatar?
+ Header *bool `bun:",nullzero,notnull,default:false"` // Is this attachment being used as a header?
+ Cached *bool `bun:",nullzero,notnull,default:false"` // Is this attachment currently cached by our instance?
}
// File refers to the metadata for the whole file
type File struct {
- Path string `validate:"required,file" bun:",nullzero,notnull"` // Path of the file in storage.
- ContentType string `validate:"required" bun:",nullzero,notnull"` // MIME content type of the file.
- FileSize int `validate:"required" bun:",notnull"` // File size in bytes
- UpdatedAt time.Time `validate:"-" bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // When was the file last updated.
+ Path string `bun:",nullzero,notnull"` // Path of the file in storage.
+ ContentType string `bun:",nullzero,notnull"` // MIME content type of the file.
+ FileSize int `bun:",notnull"` // File size in bytes
+ UpdatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // When was the file last updated.
}
// Thumbnail refers to a small image thumbnail derived from a larger image, video, or audio file.
type Thumbnail struct {
- Path string `validate:"required,file" bun:",nullzero,notnull"` // Path of the file in storage.
- ContentType string `validate:"required" bun:",nullzero,notnull"` // MIME content type of the file.
- FileSize int `validate:"required" bun:",notnull"` // File size in bytes
- UpdatedAt time.Time `validate:"-" bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // When was the file last updated.
- URL string `validate:"required_without=RemoteURL,omitempty,url" bun:",nullzero"` // What is the URL of the thumbnail on the local server
- RemoteURL string `validate:"required_without=URL,omitempty,url" bun:",nullzero"` // What is the remote URL of the thumbnail (empty for local media)
+ Path string `bun:",nullzero,notnull"` // Path of the file in storage.
+ ContentType string `bun:",nullzero,notnull"` // MIME content type of the file.
+ FileSize int `bun:",notnull"` // File size in bytes
+ UpdatedAt time.Time `bun:"type:timestamptz,nullzero,notnull,default:current_timestamp"` // When was the file last updated.
+ URL string `bun:",nullzero"` // What is the URL of the thumbnail on the local server
+ RemoteURL string `bun:",nullzero"` // What is the remote URL of the thumbnail (empty for local media)
}
// ProcessingStatus refers to how far along in the processing stage the attachment is.
@@ -87,33 +87,33 @@ const (
// FileMeta describes metadata about the actual contents of the file.
type FileMeta struct {
- Original Original `validate:"required" bun:"embed:original_"`
+ Original Original `bun:"embed:original_"`
Small Small `bun:"embed:small_"`
Focus Focus `bun:"embed:focus_"`
}
// Small can be used for a thumbnail of any media type
type Small struct {
- Width int `validate:"required_with=Height Size Aspect"` // width in pixels
- Height int `validate:"required_with=Width Size Aspect"` // height in pixels
- Size int `validate:"required_with=Width Height Aspect"` // size in pixels (width * height)
- Aspect float32 `validate:"required_with=Width Height Size"` // aspect ratio (width / height)
+ Width int // width in pixels
+ Height int // height in pixels
+ Size int // size in pixels (width * height)
+ Aspect float32 // aspect ratio (width / height)
}
// Original can be used for original metadata for any media type
type Original struct {
- Width int `validate:"required_with=Height Size Aspect"` // width in pixels
- Height int `validate:"required_with=Width Size Aspect"` // height in pixels
- Size int `validate:"required_with=Width Height Aspect"` // size in pixels (width * height)
- Aspect float32 `validate:"required_with=Width Height Size"` // aspect ratio (width / height)
- Duration *float32 `validate:"-"` // video-specific: duration of the video in seconds
- Framerate *float32 `validate:"-"` // video-specific: fps
- Bitrate *uint64 `validate:"-"` // video-specific: bitrate
+ Width int // width in pixels
+ Height int // height in pixels
+ Size int // size in pixels (width * height)
+ Aspect float32 // aspect ratio (width / height)
+ Duration *float32 // video-specific: duration of the video in seconds
+ Framerate *float32 // video-specific: fps
+ Bitrate *uint64 // video-specific: bitrate
}
// Focus describes the 'center' of the image for display purposes.
// X and Y should each be between -1 and 1
type Focus struct {
- X float32 `validate:"omitempty,max=1,min=-1"`
- Y float32 `validate:"omitempty,max=1,min=-1"`
+ X float32
+ Y float32
}