Skip to content

Commit 05ca632

Browse files
committed
feat(server): support pagination on GET
1 parent 00def9f commit 05ca632

File tree

11 files changed

+71
-10
lines changed

11 files changed

+71
-10
lines changed

src/server/routes/columns.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,20 @@ export default async (fastify: FastifyInstance) => {
77
Headers: { pg: string }
88
Querystring: {
99
include_system_schemas?: string
10+
limit?: number
11+
offset?: number
1012
}
1113
}>('/', async (request, reply) => {
1214
const connectionString = request.headers.pg
1315
const includeSystemSchemas = request.query.include_system_schemas === 'true'
16+
const limit = request.query.limit
17+
const offset = request.query.offset
1418

1519
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
1620
const { data, error } = await pgMeta.columns.list({
1721
includeSystemSchemas,
22+
limit,
23+
offset,
1824
})
1925
await pgMeta.end()
2026
if (error) {

src/server/routes/config.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,17 @@ import { DEFAULT_POOL_CONFIG } from '../constants'
55
export default async (fastify: FastifyInstance) => {
66
fastify.get<{
77
Headers: { pg: string }
8+
Querystring: {
9+
limit?: number
10+
offset?: number
11+
}
812
}>('/', async (request, reply) => {
913
const connectionString = request.headers.pg
14+
const limit = request.query.limit
15+
const offset = request.query.offset
1016

1117
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
12-
const { data, error } = await pgMeta.config.list()
18+
const { data, error } = await pgMeta.config.list({ limit, offset })
1319
await pgMeta.end()
1420
if (error) {
1521
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/extensions.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,17 @@ import { DEFAULT_POOL_CONFIG } from '../constants'
55
export default async (fastify: FastifyInstance) => {
66
fastify.get<{
77
Headers: { pg: string }
8+
Querystring: {
9+
limit?: number
10+
offset?: number
11+
}
812
}>('/', async (request, reply) => {
913
const connectionString = request.headers.pg
14+
const limit = request.query.limit
15+
const offset = request.query.offset
1016

1117
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
12-
const { data, error } = await pgMeta.extensions.list()
18+
const { data, error } = await pgMeta.extensions.list({ limit, offset })
1319
await pgMeta.end()
1420
if (error) {
1521
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/functions.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ export default async (fastify: FastifyInstance) => {
77
Headers: { pg: string }
88
Querystring: {
99
include_system_schemas?: string
10+
limit?: number
11+
offset?: number
1012
}
1113
}>('/', async (request, reply) => {
1214
const connectionString = request.headers.pg
1315
const includeSystemSchemas = request.query.include_system_schemas === 'true'
16+
const limit = request.query.limit
17+
const offset = request.query.offset
1418

1519
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
16-
const { data, error } = await pgMeta.functions.list({ includeSystemSchemas })
20+
const { data, error } = await pgMeta.functions.list({ includeSystemSchemas, limit, offset })
1721
await pgMeta.end()
1822
if (error) {
1923
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/policies.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ export default async (fastify: FastifyInstance) => {
77
Headers: { pg: string }
88
Querystring: {
99
include_system_schemas?: string
10+
limit?: number
11+
offset?: number
1012
}
1113
}>('/', async (request, reply) => {
1214
const connectionString = request.headers.pg
1315
const includeSystemSchemas = request.query.include_system_schemas === 'true'
16+
const limit = request.query.limit
17+
const offset = request.query.offset
1418

1519
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
16-
const { data, error } = await pgMeta.policies.list({ includeSystemSchemas })
20+
const { data, error } = await pgMeta.policies.list({ includeSystemSchemas, limit, offset })
1721
await pgMeta.end()
1822
if (error) {
1923
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/publications.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,17 @@ import { DEFAULT_POOL_CONFIG } from '../constants'
55
export default async (fastify: FastifyInstance) => {
66
fastify.get<{
77
Headers: { pg: string }
8+
Querystring: {
9+
limit?: number
10+
offset?: number
11+
}
812
}>('/', async (request, reply) => {
913
const connectionString = request.headers.pg
14+
const limit = request.query.limit
15+
const offset = request.query.offset
1016

1117
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
12-
const { data, error } = await pgMeta.publications.list()
18+
const { data, error } = await pgMeta.publications.list({ limit, offset })
1319
await pgMeta.end()
1420
if (error) {
1521
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/roles.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,23 @@ export default async (fastify: FastifyInstance) => {
88
Querystring: {
99
include_default_roles?: string
1010
include_system_schemas?: string
11+
limit?: number
12+
offset?: number
1113
}
1214
}>('/', async (request, reply) => {
1315
const connectionString = request.headers.pg
1416
const includeDefaultRoles = request.query.include_default_roles === 'true'
1517
const includeSystemSchemas = request.query.include_system_schemas === 'true'
18+
const limit = request.query.limit
19+
const offset = request.query.offset
1620

1721
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
18-
const { data, error } = await pgMeta.roles.list({ includeDefaultRoles, includeSystemSchemas })
22+
const { data, error } = await pgMeta.roles.list({
23+
includeDefaultRoles,
24+
includeSystemSchemas,
25+
limit,
26+
offset,
27+
})
1928
await pgMeta.end()
2029
if (error) {
2130
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/schemas.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ export default async (fastify: FastifyInstance) => {
1515
Headers: { pg: string }
1616
Querystring: {
1717
include_system_schemas?: string
18+
limit?: number
19+
offset?: number
1820
}
1921
}>(
2022
'/',
@@ -25,6 +27,8 @@ export default async (fastify: FastifyInstance) => {
2527
}),
2628
querystring: Type.Object({
2729
include_system_schemas: Type.Optional(Type.String()),
30+
limit: Type.Optional(Type.String()),
31+
offset: Type.Optional(Type.String()),
2832
}),
2933
response: {
3034
200: Type.Array(postgresSchemaSchema),
@@ -37,9 +41,11 @@ export default async (fastify: FastifyInstance) => {
3741
async (request, reply) => {
3842
const connectionString = request.headers.pg
3943
const includeSystemSchemas = request.query.include_system_schemas === 'true'
44+
const limit = request.query.limit
45+
const offset = request.query.offset
4046

4147
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
42-
const { data, error } = await pgMeta.schemas.list({ includeSystemSchemas })
48+
const { data, error } = await pgMeta.schemas.list({ includeSystemSchemas, limit, offset })
4349
await pgMeta.end()
4450
if (error) {
4551
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/tables.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ export default async (fastify: FastifyInstance) => {
77
Headers: { pg: string }
88
Querystring: {
99
include_system_schemas?: string
10+
limit?: number
11+
offset?: number
1012
}
1113
}>('/', async (request, reply) => {
1214
const connectionString = request.headers.pg
1315
const includeSystemSchemas = request.query.include_system_schemas === 'true'
16+
const limit = request.query.limit
17+
const offset = request.query.offset
1418

1519
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
16-
const { data, error } = await pgMeta.tables.list({ includeSystemSchemas })
20+
const { data, error } = await pgMeta.tables.list({ includeSystemSchemas, limit, offset })
1721
await pgMeta.end()
1822
if (error) {
1923
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/triggers.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,17 @@ import { DEFAULT_POOL_CONFIG } from '../constants'
55
export default async (fastify: FastifyInstance) => {
66
fastify.get<{
77
Headers: { pg: string }
8+
Querystring: {
9+
limit?: number
10+
offset?: number
11+
}
812
}>('/', async (request, reply) => {
913
const connectionString = request.headers.pg
14+
const limit = request.query.limit
15+
const offset = request.query.offset
1016

1117
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
12-
const { data, error } = await pgMeta.triggers.list()
18+
const { data, error } = await pgMeta.triggers.list({ limit, offset })
1319
await pgMeta.end()
1420
if (error) {
1521
request.log.error(JSON.stringify({ error, req: request.body }))

src/server/routes/types.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ export default async (fastify: FastifyInstance) => {
77
Headers: { pg: string }
88
Querystring: {
99
include_system_schemas?: string
10+
limit?: number
11+
offset?: number
1012
}
1113
}>('/', async (request, reply) => {
1214
const connectionString = request.headers.pg
1315
const includeSystemSchemas = request.query.include_system_schemas === 'true'
16+
const limit = request.query.limit
17+
const offset = request.query.offset
1418

1519
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
16-
const { data, error } = await pgMeta.types.list({ includeSystemSchemas })
20+
const { data, error } = await pgMeta.types.list({ includeSystemSchemas, limit, offset })
1721
await pgMeta.end()
1822
if (error) {
1923
request.log.error(JSON.stringify({ error, req: request.body }))

0 commit comments

Comments
 (0)