diff --git a/internal/database/resetUsers.sql.go b/internal/database/resetUsers.sql.go new file mode 100644 index 0000000..05ebafb --- /dev/null +++ b/internal/database/resetUsers.sql.go @@ -0,0 +1,19 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.28.0 +// source: resetUsers.sql + +package database + +import ( + "context" +) + +const resetUsers = `-- name: ResetUsers :exec +DELETE FROM users WHERE true +` + +func (q *Queries) ResetUsers(ctx context.Context) error { + _, err := q.db.ExecContext(ctx, resetUsers) + return err +} diff --git a/internal/handlers/resetUsersHandler.go b/internal/handlers/resetUsersHandler.go new file mode 100644 index 0000000..e8c7842 --- /dev/null +++ b/internal/handlers/resetUsersHandler.go @@ -0,0 +1,22 @@ +package handlers + +import ( + "context" + "fmt" + "github.com/rdarius/boot-dev-blog-aggregator/internal/config" + "os" +) + +func ResetUsersHandler(s *config.State, cmd config.Command) error { + ctx := context.Background() + + err := s.DB.ResetUsers(ctx) + if err != nil { + fmt.Println("Failed to remove users") + os.Exit(1) + } + + fmt.Println("Users removed") + + return nil +} diff --git a/main.go b/main.go index 0152899..97ddb50 100644 --- a/main.go +++ b/main.go @@ -33,6 +33,7 @@ func main() { commands.Register("login", handlers.LoginHandler) commands.Register("register", handlers.RegisterHandler) + commands.Register("reset", handlers.ResetUsersHandler) if len(os.Args) < 2 { log.Fatal("usage: boot-dev-blog-aggregator [args...]") diff --git a/sql/queries/resetUsers.sql b/sql/queries/resetUsers.sql new file mode 100644 index 0000000..a772055 --- /dev/null +++ b/sql/queries/resetUsers.sql @@ -0,0 +1,2 @@ +-- name: ResetUsers :exec +DELETE FROM users WHERE true; \ No newline at end of file