Первый прототип с основными возможностями
This commit is contained in:
44
services/link.go
Normal file
44
services/link.go
Normal file
@@ -0,0 +1,44 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user