package article import ( "database/sql" "fmt" ) type ArticleRepository struct{} func NewArticleRepository() IArticleRepository { return &ArticleRepository{} } func (ArticleRepository) CreateArticle(tx *sql.Tx, data ArticleCreateModel) error { query := ` INSERT INTO articles(uuid, title, content) VALUES ($1, $2, $3); ` _, err := tx.Exec(query, data.Uuid, data.Title, data.Content) return err } func (ArticleRepository) GetArticlesByTitle(tx *sql.Tx, title string) ([]ArticleModel, error) { fmt.Println(title, " ------------------") query := ` SELECT uuid, title, content FROM articles WHERE title LIKE $1 || '%' LIMIT 10; ` rows, err := tx.Query(query, title) if err != nil { return nil, err } articles := []ArticleModel{} for rows.Next() { var a ArticleModel err = rows.Scan(&a.Uuid, &a.Title, &a.Content) if err != nil { return nil, err } articles = append(articles, a) } fmt.Println(articles) return articles, nil } func (ArticleRepository) DeleteAllArticles(tx *sql.Tx) error { query := `DELETE FROM articles;` _, err := tx.Exec(query) return err }