1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-11-06 09:19:22 +02:00

API: Allow accessing revision data

This commit is contained in:
Laurent Cozic
2023-10-06 15:03:32 +01:00
parent 634fa8a61f
commit e49ca26a36
8 changed files with 60 additions and 7 deletions

View File

@@ -10,6 +10,7 @@ import route_search from './routes/search';
import route_ping from './routes/ping';
import route_auth from './routes/auth';
import route_events from './routes/events';
import route_revisions from './routes/revisions';
const { ltrimSlashes } = require('../../path-utils');
const md5 = require('md5');
@@ -113,6 +114,7 @@ export default class Api {
services: this.action_services.bind(this),
auth: route_auth,
events: route_events,
revisions: route_revisions,
};
this.dispatch = this.dispatch.bind(this);

View File

@@ -0,0 +1,7 @@
import defaultAction from '../utils/defaultAction';
import { ModelType } from '../../../BaseModel';
import { Request } from '../Api';
export default async function(request: Request, id: string = null, link: string = null) {
return defaultAction(ModelType.Revision, request, id, link, ['id']);
}

View File

@@ -6,7 +6,7 @@ import readonlyProperties from './readonlyProperties';
import requestFields from './requestFields';
import BaseItem from '../../../models/BaseItem';
export default async function(modelType: number, request: Request, id: string = null, link: string = null) {
export default async function(modelType: number, request: Request, id: string = null, link: string = null, defaultFields: string[] = null) {
if (link) throw new ErrorNotFound(); // Default action doesn't support links at all for now
const ModelClass = BaseItem.getClassByItemType(modelType);
@@ -20,10 +20,10 @@ export default async function(modelType: number, request: Request, id: string =
if (request.method === 'GET') {
if (id) {
return getOneModel({
fields: requestFields(request, modelType),
fields: requestFields(request, modelType, defaultFields),
});
} else {
return paginatedResults(modelType, request);
return paginatedResults(modelType, request, null, defaultFields);
}
}

View File

@@ -5,9 +5,9 @@ import requestPaginationOptions from './requestPaginationOptions';
import paginatedFeed, { WhereQuery, ModelFeedPage } from '../../../models/utils/paginatedFeed';
import BaseItem from '../../../models/BaseItem';
export default async function(modelType: number, request: Request, whereQuery: WhereQuery = null): Promise<ModelFeedPage> {
export default async function(modelType: number, request: Request, whereQuery: WhereQuery = null, defaultFields: string[] = null): Promise<ModelFeedPage> {
const ModelClass = BaseItem.getClassByItemType(modelType);
const fields = requestFields(request, modelType);
const fields = requestFields(request, modelType, defaultFields);
const pagination = requestPaginationOptions(request);
return paginatedFeed(BaseModel.db(), ModelClass.tableName(), pagination, whereQuery, fields);
}