package tags
import (
"github.com/NyaaPantsu/nyaa/models"
"github.com/NyaaPantsu/nyaa/utils/cache"
"github.com/pkg/errors"
)
// Create a new tag based on string inputs
func Create(tag string, tagType string, torrent *models.Torrent, user *models.User) (*models.Tag, error) {
newTag := &models.Tag{
Tag: tag,
Type: tagType,
TorrentID: torrent.ID,
UserID: user.ID,
Weight: user.Pantsu,
Accepted: false,
}
return New(newTag, torrent)
// New is the low level functions that actually create a tag in db
func New(tag *models.Tag, torrent *models.Torrent) (*models.Tag, error) {
if torrent.ID == 0 {
return tag, errors.New("Can't add a tag to no torrents")
if err := models.ORM.Create(tag).Error; err != nil {
return tag, err
cache.C.Delete(torrent.Identifier())
return tag, nil