Files
hatchet/pkg/repository/prisma/dbsqlc/dispatchers.sql
T
abelanger5 7c3ddfca32 feat: api server extensions (#614)
* feat: allow extending the api server

* chore: remove internal packages to pkg

* chore: update db_gen.go

* fix: expose auth

* fix: move logger to pkg

* fix: don't generate gitignore for prisma client

* fix: allow extensions to register their own api spec

* feat: expose pool on server config

* fix: nil pointer exception on empty opts

* fix: run.go file
2024-06-19 09:36:13 -04:00

59 lines
1.3 KiB
SQL

-- name: ListStaleDispatchers :many
SELECT
sqlc.embed(dispatchers)
FROM "Dispatcher" as dispatchers
WHERE
-- last heartbeat older than 15 seconds
"lastHeartbeatAt" < NOW () - INTERVAL '15 seconds'
-- not active
AND "isActive" = false;
-- name: ListActiveDispatchers :many
SELECT
sqlc.embed(dispatchers)
FROM "Dispatcher" as dispatchers
WHERE
-- last heartbeat greater than 15 seconds
"lastHeartbeatAt" > NOW () - INTERVAL '15 seconds'
-- active
AND "isActive" = true;
-- name: SetDispatchersInactive :many
UPDATE
"Dispatcher" as dispatchers
SET
"isActive" = false
WHERE
"id" = ANY (sqlc.arg('ids')::uuid[])
RETURNING
sqlc.embed(dispatchers);
-- name: ListDispatchers :many
SELECT
sqlc.embed(dispatchers)
FROM
"Dispatcher" as dispatchers;
-- name: DeleteDispatcher :one
DELETE FROM
"Dispatcher" as dispatchers
WHERE
"id" = sqlc.arg('id')::uuid
RETURNING *;
-- name: CreateDispatcher :one
INSERT INTO
"Dispatcher" ("id", "lastHeartbeatAt", "isActive")
VALUES
(sqlc.arg('id')::uuid, CURRENT_TIMESTAMP, 't')
RETURNING *;
-- name: UpdateDispatcher :one
UPDATE
"Dispatcher" as dispatchers
SET
"lastHeartbeatAt" = sqlc.arg('lastHeartbeatAt')::timestamp
WHERE
"id" = sqlc.arg('id')::uuid
RETURNING *;