Files
blog-server/internal/db/query/sys_apis.sql

59 lines
1.4 KiB
SQL

-- name: CreateApi :one
INSERT INTO sys_apis (name, group_name, method, path, sort)
VALUES ($1, $2, $3, $4, $5)
RETURNING id;
-- name: ListAllApis :many
SELECT *
FROM sys_apis
ORDER BY sort ASC;
-- name: ListApis :many
SELECT *
FROM sys_apis
WHERE (sqlc.arg('name')::text = '' OR name ILIKE '%' || sqlc.arg('name') || '%')
AND (sqlc.arg('group_name')::text = '' OR group_name ILIKE '%' || sqlc.arg('group_name') || '%')
AND (sqlc.arg('method')::text = '' OR method = sqlc.arg('method'))
ORDER BY id
LIMIT $1 OFFSET $2;
-- name: CountApis :one
SELECT COUNT(*)
FROM sys_apis
WHERE (sqlc.arg('name')::text = '' OR name ILIKE '%' || sqlc.arg('name') || '%')
AND (sqlc.arg('group_name')::text = '' OR group_name ILIKE '%' || sqlc.arg('group_name') || '%')
AND (sqlc.arg('method')::text = '' OR method = sqlc.arg('method'));
-- name: GetApiByID :one
SELECT *
FROM sys_apis
WHERE id = $1;
-- name: UpdateApi :execrows
UPDATE sys_apis
SET name = $2,
method = $3,
path = $4,
sort = $5,
group_name = $6
WHERE id = $1;
-- name: DeleteApi :execrows
DELETE
FROM sys_apis
WHERE id = $1;
-- name: CreateApiPermission :exec
INSERT INTO sys_api_permission (api_id, permission_id)
VALUES ($1, $2);
-- name: DeleteApiPermission :exec
DELETE
FROM sys_api_permission
WHERE api_id = $1;
-- name: ListApiGroups :many
SELECT DISTINCT group_name
FROM sys_apis;