73 lines
1.8 KiB
Go
73 lines
1.8 KiB
Go
package resolvers
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/viktorstrate/photoview/api/graphql/models"
|
|
)
|
|
|
|
func (r *Resolver) Search(ctx context.Context, query string, _limitMedia *int, _limitAlbums *int) (*models.SearchResult, error) {
|
|
// user := auth.UserFromContext(ctx)
|
|
// if user == nil {
|
|
// return nil, auth.ErrUnauthorized
|
|
// }
|
|
|
|
// limitMedia := 10
|
|
// limitAlbums := 10
|
|
|
|
// if _limitMedia != nil {
|
|
// limitMedia = *_limitMedia
|
|
// }
|
|
|
|
// if _limitAlbums != nil {
|
|
// limitAlbums = *_limitAlbums
|
|
// }
|
|
|
|
// wildQuery := "%" + query + "%"
|
|
|
|
// photoRows, err := r.Database.Query(`
|
|
// SELECT media.* FROM media JOIN album ON media.album_id = album.album_id
|
|
// WHERE album.owner_id = ? AND ( media.title LIKE ? OR media.path LIKE ? )
|
|
// ORDER BY (
|
|
// case when media.title LIKE ? then 2
|
|
// when media.path LIKE ? then 1
|
|
// end ) DESC
|
|
// LIMIT ?
|
|
// `, user.UserID, wildQuery, wildQuery, wildQuery, wildQuery, limitMedia)
|
|
// if err != nil {
|
|
// return nil, errors.Wrapf(err, "searching media")
|
|
// }
|
|
|
|
// photos, err := models.NewMediaFromRows(photoRows)
|
|
// if err != nil {
|
|
// return nil, err
|
|
// }
|
|
|
|
// albumRows, err := r.Database.Query(`
|
|
// SELECT * FROM album
|
|
// WHERE owner_id = ? AND ( title LIKE ? OR path LIKE ? )
|
|
// ORDER BY (
|
|
// case when title LIKE ? then 2
|
|
// when path LIKE ? then 1
|
|
// end ) DESC
|
|
// LIMIT ?
|
|
// `, user.UserID, wildQuery, wildQuery, wildQuery, wildQuery, limitAlbums)
|
|
// if err != nil {
|
|
// return nil, errors.Wrapf(err, "searching albums")
|
|
// }
|
|
|
|
// albums, err := models.NewAlbumsFromRows(albumRows)
|
|
// if err != nil {
|
|
// return nil, err
|
|
// }
|
|
|
|
// result := models.SearchResult{
|
|
// Query: query,
|
|
// Media: photos,
|
|
// Albums: albums,
|
|
// }
|
|
|
|
// return &result, nil
|
|
panic("to be migrated")
|
|
}
|