45 lines
770 B
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
|
|
}
|