Added: downloading and returning wikipedia articles

This commit is contained in:
Oliwier Adamczyk
2025-10-04 23:14:41 +02:00
parent f542f01b49
commit 6df63dc4c1
26 changed files with 636 additions and 100 deletions

View File

@@ -0,0 +1,60 @@
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
}