예제 #1
0
파일: tag.go 프로젝트: logtcn/TMSU
// Adds a tag.
func (storage *Storage) AddTag(tx *Tx, name string) (*entities.Tag, error) {
	if err := entities.ValidateTagName(name); err != nil {
		return nil, err
	}

	return database.InsertTag(tx.tx, name)
}
예제 #2
0
파일: tag.go 프로젝트: logtcn/TMSU
// Copies a tag.
func (storage Storage) CopyTag(tx *Tx, sourceTagId entities.TagId, name string) (*entities.Tag, error) {
	if err := entities.ValidateTagName(name); err != nil {
		return nil, err
	}

	tag, err := database.InsertTag(tx.tx, name)
	if err != nil {
		return nil, err
	}

	err = database.CopyFileTags(tx.tx, sourceTagId, tag.Id)
	if err != nil {
		return nil, err
	}

	return tag, nil
}