Browse Source
Merge pull request #6354 from Budibase/bug/sev2/export-rows-external-table
Bug fix for exporting selected rows from External Datasource
master
melohagan
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
2 additions and
7 deletions
-
packages/server/src/api/controllers/row/external.js
|
|
|
@ -155,27 +155,22 @@ exports.validate = async () => { |
|
|
|
} |
|
|
|
|
|
|
|
exports.exportRows = async ctx => { |
|
|
|
const { datasourceId, tableName } = breakExternalTableId(ctx.params.tableId) |
|
|
|
const { datasourceId } = breakExternalTableId(ctx.params.tableId) |
|
|
|
const db = getAppDB() |
|
|
|
let format = ctx.query.format |
|
|
|
const datasource = await db.get(datasourceId) |
|
|
|
if (!datasource || !datasource.entities) { |
|
|
|
ctx.throw(400, "Datasource has not been configured for plus API.") |
|
|
|
} |
|
|
|
const tables = datasource.entities |
|
|
|
const table = tables[tableName] |
|
|
|
ctx.request.body = { |
|
|
|
query: { |
|
|
|
oneOf: { |
|
|
|
[table.primaryDisplay]: ctx.request.body.rows.map( |
|
|
|
id => breakRowIdField(id)[0] |
|
|
|
), |
|
|
|
_id: ctx.request.body.rows.map(row => JSON.parse(decodeURI(row))[0]), |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
let result = await exports.search(ctx) |
|
|
|
|
|
|
|
let headers = Object.keys(result.rows[0]) |
|
|
|
const exporter = exporters[format] |
|
|
|
const filename = `export.${format}` |
|
|
|
|