-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhandler_add_feed.go
More file actions
57 lines (49 loc) · 1.37 KB
/
Copy pathhandler_add_feed.go
File metadata and controls
57 lines (49 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package main
import (
"context"
"fmt"
"os"
"time"
"github.com/google/uuid"
"github.com/josephus-git/gator/internal/database"
)
// addFeed creates a new feed and a corresponding feed follow for the authenticated user.
func addFeed(s *state, cmd command, user database.User) error {
// Ensure accurate querry input
if len(cmd.Handler) < 3 {
fmt.Println("Usage: ./gator addfeed <name> <url>")
os.Exit(1)
}
name := cmd.Handler[1]
url := cmd.Handler[2]
currentTime := time.Now()
// Create new feed in database
newFeed := database.CreateFeedParams{
ID: uuid.New(),
CreatedAt: currentTime,
UpdatedAt: currentTime,
Name: name,
Url: url,
UserID: user.ID,
}
feed, err := s.db.CreateFeed(context.Background(), newFeed)
if err != nil {
return fmt.Errorf("error creating feed: %v", err)
}
fmt.Println("feed created successfully")
fmt.Println(feed.Name)
// Create new feed follow
newFeedFollow := database.CreateFeedFollowParams{
ID: uuid.New(),
CreatedAt: currentTime,
UpdatedAt: currentTime,
UserID: user.ID,
FeedID: feed.ID,
}
FeedFollows, err := s.db.CreateFeedFollow(context.Background(), newFeedFollow)
if err != nil {
return fmt.Errorf("error creating feed follow: %v", err)
}
fmt.Printf("feed follow created successfully; FeedName: %s, UserName: %s\n", FeedFollows.FeedName, FeedFollows.UserName)
return nil
}