#11 - unfollow
This commit is contained in:
26
internal/database/feleteFeedFollow.sql.go
Normal file
26
internal/database/feleteFeedFollow.sql.go
Normal 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
|
||||||
|
}
|
||||||
@@ -52,7 +52,7 @@ func AddFeedHandler(s *config.State, cmd config.Command, user database.User) err
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("%v", f)
|
fmt.Printf("%v\n", f)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ func FetchFeedHandler(s *config.State, cmd config.Command) error {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("%v", feed)
|
fmt.Printf("%v\n", feed)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ func FollowFeedHandler(s *config.State, cmd config.Command, user database.User)
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("%v", feed)
|
fmt.Printf("%v\n", feed)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
31
internal/handlers/unfollowFeedHandler.go
Normal file
31
internal/handlers/unfollowFeedHandler.go
Normal 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
|
||||||
|
}
|
||||||
1
main.go
1
main.go
@@ -40,6 +40,7 @@ func main() {
|
|||||||
commands.Register("addfeed", middlewareLoggedIn(handlers.AddFeedHandler))
|
commands.Register("addfeed", middlewareLoggedIn(handlers.AddFeedHandler))
|
||||||
commands.Register("feeds", handlers.ListFeedsHandler)
|
commands.Register("feeds", handlers.ListFeedsHandler)
|
||||||
commands.Register("follow", middlewareLoggedIn(handlers.FollowFeedHandler))
|
commands.Register("follow", middlewareLoggedIn(handlers.FollowFeedHandler))
|
||||||
|
commands.Register("unfollow", middlewareLoggedIn(handlers.UnfollowFeedHandler))
|
||||||
commands.Register("following", middlewareLoggedIn(handlers.GetFeedFollowsByUserHandler))
|
commands.Register("following", middlewareLoggedIn(handlers.GetFeedFollowsByUserHandler))
|
||||||
|
|
||||||
if len(os.Args) < 2 {
|
if len(os.Args) < 2 {
|
||||||
|
|||||||
2
sql/queries/feleteFeedFollow.sql
Normal file
2
sql/queries/feleteFeedFollow.sql
Normal 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);
|
||||||
Reference in New Issue
Block a user