mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-24 10:27:10 +02:00
Api: Exclude deleted and conflicted notes when calling /notes
This commit is contained in:
parent
f1691b7743
commit
57c316a591
@ -239,11 +239,6 @@ async function fetchAllNotes() {
|
|||||||
type: Database.enumId('fieldType', 'text'),
|
type: Database.enumId('fieldType', 'text'),
|
||||||
description: 'If an image is provided, you can also specify an optional rectangle that will be used to crop the image. In format `{ x: x, y: y, width: width, height: height }`',
|
description: 'If an image is provided, you can also specify an optional rectangle that will be used to crop the image. In format `{ x: x, y: y, width: width, height: height }`',
|
||||||
});
|
});
|
||||||
// tableFields.push({
|
|
||||||
// name: 'tags',
|
|
||||||
// type: Database.enumId('fieldType', 'text'),
|
|
||||||
// description: 'Comma-separated list of tags. eg. `tag1,tag2`.',
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lines.push(`## ${toTitleCase(tableName)}`);
|
lines.push(`## ${toTitleCase(tableName)}`);
|
||||||
@ -269,6 +264,11 @@ async function fetchAllNotes() {
|
|||||||
lines.push('');
|
lines.push('');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_NOTE) {
|
||||||
|
lines.push('By default, this call will return the all notes **except** the notes in the trash folder and any conflict note. To include these too, you can specify `include_deleted=1` and `include_conflicts=1` as query parameters.');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
lines.push(`### GET /${tableName}/:id`);
|
lines.push(`### GET /${tableName}/:id`);
|
||||||
lines.push('');
|
lines.push('');
|
||||||
lines.push(`Gets ${singular} with ID :id`);
|
lines.push(`Gets ${singular} with ID :id`);
|
||||||
|
@ -51,6 +51,8 @@ interface RequestQuery {
|
|||||||
|
|
||||||
// For note deletion
|
// For note deletion
|
||||||
permanent?: string;
|
permanent?: string;
|
||||||
|
include_deleted?: string;
|
||||||
|
include_conflicts?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Request {
|
export interface Request {
|
||||||
|
@ -184,4 +184,40 @@ describe('routes/notes', () => {
|
|||||||
|
|
||||||
expect(result.length).toBe(2);
|
expect(result.length).toBe(2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should not return notes in the trash by default', async () => {
|
||||||
|
const api = new Api();
|
||||||
|
const note1 = await Note.save({});
|
||||||
|
const note2 = await Note.save({});
|
||||||
|
await Note.delete(note1.id, { toTrash: true });
|
||||||
|
|
||||||
|
{
|
||||||
|
const notes = await api.route(RequestMethod.GET, 'notes');
|
||||||
|
expect(notes.items.length).toBe(1);
|
||||||
|
expect(notes.items[0].id).toBe(note2.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const notes = await api.route(RequestMethod.GET, 'notes', { include_deleted: '1' });
|
||||||
|
expect(notes.items.length).toBe(2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should not return conflicts by default', async () => {
|
||||||
|
const api = new Api();
|
||||||
|
const note1 = await Note.save({});
|
||||||
|
await Note.save({ is_conflict: 1 });
|
||||||
|
|
||||||
|
{
|
||||||
|
const notes = await api.route(RequestMethod.GET, 'notes');
|
||||||
|
expect(notes.items.length).toBe(1);
|
||||||
|
expect(notes.items[0].id).toBe(note1.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const notes = await api.route(RequestMethod.GET, 'notes', { include_conflicts: '1' });
|
||||||
|
expect(notes.items.length).toBe(2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -478,7 +478,10 @@ export default async function(request: Request, id: string = null, link: string
|
|||||||
throw new ErrorNotFound();
|
throw new ErrorNotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
return defaultAction(BaseModel.TYPE_NOTE, request, id, link);
|
const sql: string[] = [];
|
||||||
|
if (request.query.include_deleted !== '1') sql.push('deleted_time = 0');
|
||||||
|
if (request.query.include_conflicts !== '1') sql.push('is_conflict = 0');
|
||||||
|
return defaultAction(BaseModel.TYPE_NOTE, request, id, link, null, { sql: sql.join(' AND ') });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request.method === RequestMethod.POST) {
|
if (request.method === RequestMethod.POST) {
|
||||||
|
@ -212,6 +212,8 @@ command | 16
|
|||||||
|
|
||||||
Gets all notes
|
Gets all notes
|
||||||
|
|
||||||
|
By default, this call will return the all notes **except** the notes in the trash folder and any conflict note. To include these too, you can specify `include_deleted=1` and `include_conflicts=1` as query parameters.
|
||||||
|
|
||||||
### GET /notes/:id
|
### GET /notes/:id
|
||||||
|
|
||||||
Gets note with ID :id
|
Gets note with ID :id
|
||||||
|
Loading…
Reference in New Issue
Block a user