Add tasks totalCount support

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-06-09 21:32:03 -07:00
parent e0a575f984
commit b1fe040e43
7 changed files with 273 additions and 17 deletions

View File

@@ -248,6 +248,38 @@ RETURNING
return nil
}
func (c *Tasks) CountByOrganizationID(
ctx context.Context,
conn pg.Conn,
scope Scoper,
organizationID gid.GID,
) (int, error) {
q := `
SELECT
COUNT(id)
FROM
tasks
WHERE
%s
AND organization_id = @organization_id
`
q = fmt.Sprintf(q, scope.SQLFragment())
args := pgx.StrictNamedArgs{"organization_id": organizationID}
maps.Copy(args, scope.SQLArguments())
row := conn.QueryRow(ctx, q, args)
var count int
err := row.Scan(&count)
if err != nil {
return 0, fmt.Errorf("cannot collect tasks: %w", err)
}
return count, nil
}
func (c *Tasks) LoadByOrganizationID(
ctx context.Context,
conn pg.Conn,
@@ -297,6 +329,38 @@ func (c *Tasks) LoadByOrganizationID(
return nil
}
func (c *Tasks) CountByMeasureID(
ctx context.Context,
conn pg.Conn,
scope Scoper,
measureID gid.GID,
) (int, error) {
q := `
SELECT
COUNT(id)
FROM
tasks
WHERE
%s
AND measure_id = @measure_id
`
q = fmt.Sprintf(q, scope.SQLFragment())
args := pgx.StrictNamedArgs{"measure_id": measureID}
maps.Copy(args, scope.SQLArguments())
row := conn.QueryRow(ctx, q, args)
var count int
err := row.Scan(&count)
if err != nil {
return 0, fmt.Errorf("cannot collect tasks: %w", err)
}
return count, nil
}
func (c *Tasks) LoadByMeasureID(
ctx context.Context,
conn pg.Conn,