List Backgrounds (#568)
Return the updated list when setting a list background Add swagger docs for unsplash methods Add unsplash info to search results Fix misspell Fix lint Add rights check for setting and getting backgrounds Show unsplash information when loading a single list Make application id for pingbacks configurable Remove old backgrounds when setting a new one Return 404 if the list does not have a background Implement getting list backgrounds Implement actually setting a photo from unsplash as list background go mod tidy Add migration for background file id Roughly implement setting a list background from unsplash Implement saving a background Add migration for unsplash photo table Add unsplash search Fix parsing page param Fix parsing page param Fix background config Add unsplash wrapper library Add enabled background providers to info endpoint Add config options for backgrounds Add unsplash background provider Add routing handler for backgrounds Add basic background provider interface Co-authored-by: kolaente <k@knt.li> Reviewed-on: https://kolaente.dev/vikunja/api/pulls/568
This commit is contained in:
@ -17,6 +17,7 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"code.vikunja.io/api/pkg/files"
|
||||
"code.vikunja.io/api/pkg/metrics"
|
||||
"code.vikunja.io/api/pkg/timeutil"
|
||||
"code.vikunja.io/api/pkg/user"
|
||||
@ -51,6 +52,11 @@ type List struct {
|
||||
// Whether or not a list is archived.
|
||||
IsArchived bool `xorm:"not null default false" json:"is_archived" query:"is_archived"`
|
||||
|
||||
// The id of the file this list has set as background
|
||||
BackgroundFileID int64 `xorm:"null" json:"-"`
|
||||
// Holds extra information about the background set since some background providers require attribution or similar. If not null, the background can be accessed at /lists/{listID}/background
|
||||
BackgroundInformation interface{} `xorm:"-" json:"background_information"`
|
||||
|
||||
// A timestamp when this list was created. You cannot change this value.
|
||||
Created timeutil.TimeStamp `xorm:"created not null" json:"created"`
|
||||
// A timestamp when this list was last updated. You cannot change this value.
|
||||
@ -166,6 +172,16 @@ func (l *List) ReadOne() (err error) {
|
||||
l.IsArchived = true
|
||||
}
|
||||
}
|
||||
|
||||
// Get any background information if there is one set
|
||||
if l.BackgroundFileID != 0 {
|
||||
// Currently unsplash only
|
||||
l.BackgroundInformation, err = GetUnsplashPhotoByFileID(l.BackgroundFileID)
|
||||
if err != nil && !files.IsErrFileIsNotUnsplashFile(err) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -560,3 +576,16 @@ func (l *List) Delete() (err error) {
|
||||
_, err = x.Where("list_id = ?", l.ID).Delete(&Task{})
|
||||
return
|
||||
}
|
||||
|
||||
// SetListBackground sets a background file as list background in the db
|
||||
func SetListBackground(listID int64, background *files.File) (err error) {
|
||||
l := &List{
|
||||
ID: listID,
|
||||
BackgroundFileID: background.ID,
|
||||
}
|
||||
_, err = x.
|
||||
Where("id = ?", l.ID).
|
||||
Cols("background_file_id").
|
||||
Update(l)
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user