generated from VLADIMIR/template
up
This commit is contained in:
@@ -54,9 +54,7 @@ func (r *ScenariosRepo) GetScenariosByAuthorID(
|
||||
ctx context.Context,
|
||||
authorID int,
|
||||
) ([]*repos.Scenario, error) {
|
||||
rows, err := r.pool.Query(
|
||||
ctx,
|
||||
`SELECT
|
||||
return r.getScenarios(ctx, `SELECT
|
||||
scenarios.id,
|
||||
scenarios.name,
|
||||
scenarios.description,
|
||||
@@ -72,44 +70,27 @@ func (r *ScenariosRepo) GetScenariosByAuthorID(
|
||||
LEFT JOIN users on scenarios.author_id = users.id
|
||||
WHERE scenarios.author_id = $1 and is_deleted = FALSE
|
||||
ORDER BY created_at DESC`,
|
||||
authorID,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
authorID)
|
||||
}
|
||||
|
||||
var scenarios []*repos.Scenario
|
||||
for rows.Next() {
|
||||
scenario := &repos.Scenario{}
|
||||
var authorID *int
|
||||
var authorUsername *string
|
||||
err := rows.Scan(
|
||||
&scenario.ID,
|
||||
&scenario.Name,
|
||||
&scenario.Description,
|
||||
&scenario.Image,
|
||||
&scenario.Scenario,
|
||||
&authorID,
|
||||
&authorUsername,
|
||||
&scenario.Status,
|
||||
&scenario.UpdatedAt,
|
||||
&scenario.CreatedAt,
|
||||
&scenario.PublishedAt,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if authorID != nil && authorUsername != nil {
|
||||
scenario.Author = &repos.User{ID: *authorID, Username: *authorUsername}
|
||||
}
|
||||
scenarios = append(scenarios, scenario)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return scenarios, nil
|
||||
// GetAllScenarios returns all non-deleted scenarios.
|
||||
func (r *ScenariosRepo) GetAllScenarios(ctx context.Context) ([]*repos.Scenario, error) {
|
||||
return r.getScenarios(ctx, `SELECT
|
||||
scenarios.id,
|
||||
scenarios.name,
|
||||
scenarios.description,
|
||||
scenarios.image,
|
||||
scenarios.scenario,
|
||||
users.id,
|
||||
users.username,
|
||||
scenarios.status,
|
||||
scenarios.updated_at,
|
||||
scenarios.created_at,
|
||||
scenarios.published_at
|
||||
FROM scenarios
|
||||
LEFT JOIN users on scenarios.author_id = users.id
|
||||
WHERE is_deleted = FALSE
|
||||
ORDER BY created_at DESC`)
|
||||
}
|
||||
|
||||
// GetScenariosByStatus returns scenarios with the requested status.
|
||||
@@ -117,9 +98,7 @@ func (r *ScenariosRepo) GetScenariosByStatus(
|
||||
ctx context.Context,
|
||||
status string,
|
||||
) ([]*repos.Scenario, error) {
|
||||
rows, err := r.pool.Query(
|
||||
ctx,
|
||||
`SELECT
|
||||
return r.getScenarios(ctx, `SELECT
|
||||
scenarios.id,
|
||||
scenarios.name,
|
||||
scenarios.description,
|
||||
@@ -135,8 +114,11 @@ func (r *ScenariosRepo) GetScenariosByStatus(
|
||||
LEFT JOIN users on scenarios.author_id = users.id
|
||||
WHERE scenarios.status = $1 and is_deleted = FALSE
|
||||
ORDER BY created_at DESC`,
|
||||
status,
|
||||
)
|
||||
status)
|
||||
}
|
||||
|
||||
func (r *ScenariosRepo) getScenarios(ctx context.Context, query string, args ...any) ([]*repos.Scenario, error) {
|
||||
rows, err := r.pool.Query(ctx, query, args...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user