Added: downloading and returning wikipedia articles
This commit is contained in:
60
internal/article/repository.go
Normal file
60
internal/article/repository.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user