2020-01-05 14:18:40 +01:00
package query
2019-12-11 07:37:39 +01:00
2019-12-11 16:55:18 +01:00
import "github.com/photoprism/photoprism/internal/entity"
2019-12-11 07:37:39 +01:00
// FindFiles finds files returning maximum results defined by limit
// and finding them from an offest defined by offset.
2019-12-11 16:55:18 +01:00
func ( s * Repo ) FindFiles ( limit int , offset int ) ( files [ ] entity . File , err error ) {
if err := s . db . Where ( & entity . File { } ) . Limit ( limit ) . Offset ( offset ) . Find ( & files ) . Error ; err != nil {
2019-12-11 07:37:39 +01:00
return files , err
}
return files , nil
}
// FindFilesByUUID
2019-12-11 16:55:18 +01:00
func ( s * Repo ) FindFilesByUUID ( u [ ] string , limit int , offset int ) ( files [ ] entity . File , err error ) {
2019-12-11 07:37:39 +01:00
if err := s . db . Where ( "(photo_uuid IN (?) AND file_primary = 1) OR file_uuid IN (?)" , u , u ) . Preload ( "Photo" ) . Limit ( limit ) . Offset ( offset ) . Find ( & files ) . Error ; err != nil {
return files , err
}
return files , nil
}
// FindFileByPhotoUUID
2019-12-11 16:55:18 +01:00
func ( s * Repo ) FindFileByPhotoUUID ( u string ) ( file entity . File , err error ) {
2019-12-11 07:37:39 +01:00
if err := s . db . Where ( "photo_uuid = ? AND file_primary = 1" , u ) . Preload ( "Photo" ) . First ( & file ) . Error ; err != nil {
return file , err
}
return file , nil
}
2020-01-02 05:03:47 +01:00
// FindFileByID returns a MediaFile given a certain ID.
2019-12-11 16:55:18 +01:00
func ( s * Repo ) FindFileByID ( id string ) ( file entity . File , err error ) {
2019-12-11 07:37:39 +01:00
if err := s . db . Where ( "id = ?" , id ) . Preload ( "Photo" ) . First ( & file ) . Error ; err != nil {
return file , err
}
return file , nil
}
// FindFileByHash finds a file with a given hash string.
2019-12-11 16:55:18 +01:00
func ( s * Repo ) FindFileByHash ( fileHash string ) ( file entity . File , err error ) {
2019-12-11 07:37:39 +01:00
if err := s . db . Where ( "file_hash = ?" , fileHash ) . Preload ( "Photo" ) . First ( & file ) . Error ; err != nil {
return file , err
}
return file , nil
}