mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-11-09 00:22:38 -06:00
ErrCodeFileIsTooLarge shared 4013 with ErrCodeInvalidSortParam, which has held the code since the sort order feature landed, so an oversized upload rendered "The task sort param is invalid." in clients. BREAKING CHANGE: uploading a file larger than the configured limit now returns 4035 instead of 4013.
98 lines
3.1 KiB
Go
98 lines
3.1 KiB
Go
// Vikunja is a to-do list application to facilitate your life.
|
|
// Copyright 2018-present Vikunja and contributors. All rights reserved.
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
package files
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"code.vikunja.io/api/pkg/web"
|
|
)
|
|
|
|
// ErrFileDoesNotExist defines an error where a file does not exist in the db
|
|
type ErrFileDoesNotExist struct {
|
|
FileID int64
|
|
}
|
|
|
|
// Error is the error implementation of ErrFileDoesNotExist
|
|
func (err ErrFileDoesNotExist) Error() string {
|
|
return fmt.Sprintf("file %d does not exist", err.FileID)
|
|
}
|
|
|
|
// IsErrFileDoesNotExist checks if an error is ErrFileDoesNotExist
|
|
func IsErrFileDoesNotExist(err error) bool {
|
|
_, ok := err.(ErrFileDoesNotExist)
|
|
return ok
|
|
}
|
|
|
|
// ErrCodeFileDoesNotExist holds the unique world-error code of this error
|
|
const ErrCodeFileDoesNotExist = 4034
|
|
|
|
// HTTPError holds the http error description
|
|
func (err ErrFileDoesNotExist) HTTPError() web.HTTPError {
|
|
return web.HTTPError{
|
|
HTTPCode: http.StatusNotFound,
|
|
Code: ErrCodeFileDoesNotExist,
|
|
Message: "The file does not exist.",
|
|
}
|
|
}
|
|
|
|
// ErrFileIsTooLarge defines an error where a file is larger than the configured limit
|
|
type ErrFileIsTooLarge struct {
|
|
Size uint64
|
|
}
|
|
|
|
// Error is the error implementation of ErrFileIsTooLarge
|
|
func (err ErrFileIsTooLarge) Error() string {
|
|
return fmt.Sprintf("file is too large [Size: %d]", err.Size)
|
|
}
|
|
|
|
// IsErrFileIsTooLarge checks if an error is ErrFileIsTooLarge
|
|
func IsErrFileIsTooLarge(err error) bool {
|
|
_, ok := err.(ErrFileIsTooLarge)
|
|
return ok
|
|
}
|
|
|
|
// ErrCodeFileIsTooLarge holds the unique world-error code of this error
|
|
const ErrCodeFileIsTooLarge = 4035
|
|
|
|
// HTTPError holds the http error description
|
|
func (err ErrFileIsTooLarge) HTTPError() web.HTTPError {
|
|
return web.HTTPError{
|
|
HTTPCode: http.StatusRequestEntityTooLarge,
|
|
Code: ErrCodeFileIsTooLarge,
|
|
Message: "The uploaded file exceeds the maximum configured file size",
|
|
}
|
|
}
|
|
|
|
// ErrFileIsNotUnsplashFile defines an error where a file is not downloaded from unsplash.
|
|
// Used in cases whenever unsplash information about a file is requested, but the file was not downloaded from unsplash.
|
|
type ErrFileIsNotUnsplashFile struct {
|
|
FileID int64
|
|
}
|
|
|
|
// Error is the error implementation of ErrFileIsNotUnsplashFile
|
|
func (err ErrFileIsNotUnsplashFile) Error() string {
|
|
return fmt.Sprintf("file was not downloaded from unsplash [FileID: %d]", err.FileID)
|
|
}
|
|
|
|
// IsErrFileIsNotUnsplashFile checks if an error is ErrFileIsNotUnsplashFile
|
|
func IsErrFileIsNotUnsplashFile(err error) bool {
|
|
_, ok := err.(ErrFileIsNotUnsplashFile)
|
|
return ok
|
|
}
|