micrach/repositories/posts_repository.go
2021-08-31 22:10:24 +03:00

53 lines
940 B
Go

package repositories
import (
"context"
Db "micrach/db"
"github.com/jackc/pgx/v4"
)
type PostsRepository struct{}
var Posts PostsRepository
func (r *PostsRepository) Get(limit, offset int) ([]Post, error) {
return PostsDb, nil
}
func (r *PostsRepository) Create(p Post) (int, error) {
sql := `
INSERT INTO posts (is_parent, parent_id, title, text, is_sage)
VALUES ($1, $2, $3, $4, $5)
RETURNING id
`
conn, err := Db.Pool.Acquire(context.TODO())
if err != nil {
return 0, err
}
defer conn.Release()
var row pgx.Row
if p.IsParent {
row = conn.QueryRow(
context.TODO(), sql, p.IsParent, nil, p.Title, p.Text, p.IsSage,
)
} else {
row = conn.QueryRow(
context.TODO(), sql, p.IsParent, p.ParentID, p.Title, p.Text, p.IsSage,
)
}
if err != nil {
return 0, nil
}
createdPost := new(Post)
row.Scan(&createdPost.ID)
return createdPost.ID, nil
}
// func (r *PostsRepository) GetByID() int {
// }