45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package service
|
|
|
|
import (
|
|
"github.com/leanote/leanote/app/info"
|
|
// . "github.com/leanote/leanote/app/lea"
|
|
"github.com/leanote/leanote/app/db"
|
|
"gopkg.in/mgo.v2/bson"
|
|
"time"
|
|
)
|
|
|
|
const IMAGE_TYPE = 0
|
|
|
|
type AlbumService struct {
|
|
}
|
|
|
|
// add album
|
|
func (this *AlbumService) AddAlbum(album info.Album) bool {
|
|
album.CreatedTime = time.Now()
|
|
album.Type = IMAGE_TYPE
|
|
return db.Insert(db.Albums, album)
|
|
}
|
|
|
|
// get albums
|
|
func (this *AlbumService) GetAlbums(userId string) []info.Album {
|
|
albums := []info.Album{}
|
|
db.ListByQ(db.Albums, bson.M{"UserId": bson.ObjectIdHex(userId)}, &albums)
|
|
return albums
|
|
}
|
|
|
|
// delete album
|
|
// presupposition: has no images under this ablum
|
|
func (this *AlbumService) DeleteAlbum(userId, albumId string) (bool, string) {
|
|
if db.Count(db.Files, bson.M{"AlbumId": bson.ObjectIdHex(albumId),
|
|
"UserId": bson.ObjectIdHex(userId),
|
|
}) == 0 {
|
|
return db.DeleteByIdAndUserId(db.Albums, albumId, userId), ""
|
|
}
|
|
return false, "has images"
|
|
}
|
|
|
|
// update album name
|
|
func (this *AlbumService) UpdateAlbum(albumId, userId, name string) bool {
|
|
return db.UpdateByIdAndUserIdField(db.Albums, albumId, userId, "Name", name)
|
|
}
|