#11 - unfollow

This commit is contained in:
2025-03-11 15:08:29 +02:00
parent 5dfe911793
commit a76915c7fc
7 changed files with 63 additions and 3 deletions

View File

@@ -0,0 +1,26 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.28.0
// source: feleteFeedFollow.sql
package database
import (
"context"
"github.com/google/uuid"
)
const deleteFeedFollow = `-- name: DeleteFeedFollow :exec
DELETE FROM feed_follows WHERE feed_follows.user_id = $1 AND feed_follows.feed_id = (SELECT id FROM feeds WHERE url = $2)
`
type DeleteFeedFollowParams struct {
UserID uuid.UUID
Url string
}
func (q *Queries) DeleteFeedFollow(ctx context.Context, arg DeleteFeedFollowParams) error {
_, err := q.db.ExecContext(ctx, deleteFeedFollow, arg.UserID, arg.Url)
return err
}

View File

@@ -52,7 +52,7 @@ func AddFeedHandler(s *config.State, cmd config.Command, user database.User) err
return err
}
fmt.Printf("%v", f)
fmt.Printf("%v\n", f)
return nil
}

View File

@@ -24,7 +24,7 @@ func FetchFeedHandler(s *config.State, cmd config.Command) error {
os.Exit(1)
}
fmt.Printf("%v", feed)
fmt.Printf("%v\n", feed)
return nil
}

View File

@@ -56,7 +56,7 @@ func FollowFeedHandler(s *config.State, cmd config.Command, user database.User)
return err
}
fmt.Printf("%v", feed)
fmt.Printf("%v\n", feed)
return nil
}

View File

@@ -0,0 +1,31 @@
package handlers
import (
"context"
"fmt"
"github.com/rdarius/boot-dev-blog-aggregator/internal/config"
"github.com/rdarius/boot-dev-blog-aggregator/internal/database"
"log"
)
func UnfollowFeedHandler(s *config.State, cmd config.Command, user database.User) error {
if len(cmd.Args) < 1 {
log.Fatal("usage: boot-dev-blog-aggregator unfollow URL")
}
ctx := context.Background()
url := cmd.Args[0]
err := s.DB.DeleteFeedFollow(ctx, database.DeleteFeedFollowParams{
UserID: user.ID,
Url: url,
})
if err != nil {
return err
}
fmt.Println("Feed unfollow successfully")
return nil
}

View File

@@ -40,6 +40,7 @@ func main() {
commands.Register("addfeed", middlewareLoggedIn(handlers.AddFeedHandler))
commands.Register("feeds", handlers.ListFeedsHandler)
commands.Register("follow", middlewareLoggedIn(handlers.FollowFeedHandler))
commands.Register("unfollow", middlewareLoggedIn(handlers.UnfollowFeedHandler))
commands.Register("following", middlewareLoggedIn(handlers.GetFeedFollowsByUserHandler))
if len(os.Args) < 2 {

View File

@@ -0,0 +1,2 @@
-- name: DeleteFeedFollow :exec
DELETE FROM feed_follows WHERE feed_follows.user_id = $1 AND feed_follows.feed_id = (SELECT id FROM feeds WHERE url = $2);