mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Adds endpoint to update webhook
Summary: Adds a new endpoint to update webhook. Perform some refactoring to allow code reuse from endpoint allowing to _subscribe and _unsubscribe webhooks. One aspect of webhook is that url are stored in the home db while the rest of the fields (tableRef, isReadyColRef, ...) are stored in sqlite. So care must be taken when updating fields, to properly rollback if anything should fail. Follow up diff will bring UI to edit webhook list Test Plan: Updated doc api server tests Reviewers: jarek Reviewed By: jarek Subscribers: paulfitz Differential Revision: https://phab.getgrist.com/D3821
This commit is contained in:
@@ -347,6 +347,7 @@ export class ActiveDoc extends EventEmitter {
|
||||
|
||||
public get isShuttingDown(): boolean { return this._shuttingDown; }
|
||||
|
||||
public get triggers(): DocTriggers { return this._triggers; }
|
||||
|
||||
public get rowLimitRatio(): number {
|
||||
return getUsageRatio(
|
||||
@@ -1119,7 +1120,7 @@ export class ActiveDoc extends EventEmitter {
|
||||
* @param options: As for applyUserActions.
|
||||
* @returns Promise of retValues, see applyUserActions.
|
||||
*/
|
||||
public async applyUserActionsById(docSession: DocSession,
|
||||
public async applyUserActionsById(docSession: OptDocSession,
|
||||
actionNums: number[],
|
||||
actionHashes: string[],
|
||||
undo: boolean,
|
||||
@@ -2445,6 +2446,21 @@ export function tableIdToRef(metaTables: { [p: string]: TableDataAction }, table
|
||||
return tableRefs[tableRowIndex];
|
||||
}
|
||||
|
||||
// Helper that converts a Grist column colId to a ref given the corresponding table.
|
||||
export function colIdToRef(metaTables: {[p: string]: TableDataAction}, tableId: string, colId: string) {
|
||||
|
||||
const tableRef = tableIdToRef(metaTables, tableId);
|
||||
|
||||
const [, , colRefs, columnData] = metaTables._grist_Tables_column;
|
||||
const colRowIndex = columnData.colId.findIndex((_, i) => (
|
||||
columnData.colId[i] === colId && columnData.parentId[i] === tableRef
|
||||
));
|
||||
if (colRowIndex === -1) {
|
||||
throw new ApiError(`Column not found "${colId}"`, 404);
|
||||
}
|
||||
return colRefs[colRowIndex];
|
||||
}
|
||||
|
||||
export function sanitizeApplyUAOptions(options?: ApplyUAOptions): ApplyUAOptions {
|
||||
return pick(options||{}, ['desc', 'otherId', 'linkId', 'parseStrings']);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user