Files
muninn-aio/services/link.go

45 lines
770 B
Go

package services
import (
"context"
"code.gurenya.net/carlsmei/muninn-aio/db"
"code.gurenya.net/carlsmei/muninn-aio/ent"
"code.gurenya.net/carlsmei/muninn-aio/ent/link"
)
func CreateLink(ctx context.Context, user *ent.User, original_url string, key string) (*ent.Link, error) {
client := db.GetEntClient()
if key == "" {
key = GenerateKey(ctx)
}
link, err := client.Link.Create().
AddOwner(user).
SetKey(key).
SetOriginalURL(original_url).
Save(ctx)
if err != nil {
return nil, err
}
return link, nil
}
func GetLinkByKey(ctx context.Context, key string) (*ent.Link, error) {
client := db.GetEntClient()
link, err := client.Link.
Query().
Where(link.Key(key)).
Only(ctx)
if err != nil {
return nil, err
}
return link, nil
}