示例#1
0
文件: common.go 项目: josjevv/moire
func assetReady(conn *db.MConn, path, bucket string, doc db.M) *db.Asset {
	var asset db.Asset

	if !strings.HasPrefix(path, "/") {
		path = "/" + path
	}

	conn.GetOne(db.ASSET, db.M{
		"path":   path,
		"bucket": bucket,
	}, &asset)

	if asset.Status != db.PENDING {
		log.WithField("asset", asset).Debugln("asset has an invalid state")
		return nil
	}

	err := conn.FindAndUpdate(db.ASSET, db.M{
		"path":   path,
		"bucket": bucket,
		"status": db.PENDING,
	}, doc, &asset)

	if err != nil {
		panic(err)
	}

	return &asset
}
示例#2
0
文件: common.go 项目: josjevv/moire
func getAsset(conn *db.MConn, _id string) *db.Asset {
	var asset db.Asset
	err := conn.GetOne(db.ASSET, db.M{"_id": bson.ObjectIdHex(_id)}, &asset)
	if err != nil {
		panic(err)
	}

	return &asset
}
示例#3
0
文件: common.go 项目: josjevv/moire
func createAsset(conn *db.MConn, args *assetArgs) *db.Asset {
	assetId := bson.NewObjectId()

	if args.Collection == "" {
		args.Collection = DefaultCollection
	}

	asset := db.Asset{
		Id:         assetId,
		CreatedOn:  db.EpochNow(),
		Name:       args.Name,
		Bucket:     config.Settings.S3.Bucket,
		FileType:   args.fileType,
		MimeType:   args.MimeType,
		Status:     db.PENDING,
		Collection: args.Collection,
		Path:       getUploadURL(assetId.Hex(), args.Collection, args.Name),
	}

	conn.Insert(db.ASSET, &asset)

	return &asset
}
示例#4
0
文件: common.go 项目: josjevv/moire
func updateAsset(conn *db.MConn, _id string, doc db.M) {
	err := conn.Update(db.ASSET, db.M{"_id": bson.ObjectIdHex(_id)}, doc)
	if err != nil {
		panic(err)
	}
}