1
0
mirror of https://github.com/taigrr/shorturl synced 2025-01-18 04:03:16 -08:00
shorturl/models.go

39 lines
687 B
Go

package main
import (
"time"
)
// URL ...
type URL struct {
ID string `storm:"id"`
URL string `storm:"index"`
Name string `storm:"index"`
CreatedAt time.Time `storm:"index"`
UpdatedAt time.Time `storm:"index"`
}
func GenerateID() string {
for {
// TODO: Make length (5) configurable
id := RandomString(5)
err := db.One("ID", id, nil)
if err != nil {
return id
}
}
}
func NewURL(target string) (url *URL, err error) {
url = &URL{ID: GenerateID(), URL: target, CreatedAt: time.Now()}
err = db.Save(url)
return
}
// SetName ...
func (u *URL) SetName(name string) error {
u.Name = name
u.UpdatedAt = time.Now()
return db.Save(&u)
}