Skip to content

Commit c2de604

Browse files
authored
Merge pull request #82 from marc0l92/feature/2023-05-30
Implement paging offset in the plugin api #75
2 parents 790ffce + 55241fc commit c2de604

File tree

5 files changed

+30
-25
lines changed

5 files changed

+30
-25
lines changed

Diff for: docs-gen/docs/api/api-base.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Retrieve all details related to an issue based on the key. Use the parameter `op
2121
Return value type: [`Promise<IJiraIssue>`](https://github.com/marc0l92/obsidian-jira-issue/blob/master/src/interfaces/issueInterfaces.ts#L3-L79)
2222

2323
## getSearchResults
24-
- `$ji.base.getSearchResults(query: string, options: { limit?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {})`
24+
- `$ji.base.getSearchResults(query: string, options: { limit?: number, offset?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {})`
2525

2626
Execute a JQL query to get all the matching issues.
2727

@@ -50,7 +50,7 @@ To check your the list of Authorized Application go to [`Profile > Tools > View
5050
Return value type: [`Promise<IJiraDevStatus>`](https://github.com/marc0l92/obsidian-jira-issue/blob/master/src/interfaces/issueInterfaces.ts#L163-L202)
5151

5252
## getBoards
53-
- `$ji.base.getBoards(projectKeyOrId: string, options: { limit?: number, account?: IJiraIssueAccountSettings } = {})`
53+
- `$ji.base.getBoards(projectKeyOrId: string, options: { limit?: number, offset?: number, account?: IJiraIssueAccountSettings } = {})`
5454

5555
Retrieve list of boards associated to a project.
5656

@@ -63,7 +63,7 @@ Retrieve list of boards associated to a project.
6363
Return value type: [`Promise<IJiraBoard[]>`](https://github.com/marc0l92/obsidian-jira-issue/blob/master/src/interfaces/issueInterfaces.ts#L204-L208)
6464

6565
## getSprints
66-
- `$ji.base.getSprints(boardId: number, options: { limit?: number, state?: ESprintState[], account?: IJiraIssueAccountSettings } = {})`
66+
- `$ji.base.getSprints(boardId: number, options: { limit?: number, offset?: number, state?: ESprintState[], account?: IJiraIssueAccountSettings } = {})`
6767

6868
Retrieve list of sprints associated to a board.
6969

Diff for: docs-gen/docs/api/api-defaulted.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ The responses are cached in order to reduce the network load. You can clean the
1515
Read [$ji.base.getIssue](/docs/api/api-base#getIssue)
1616

1717
## getSearchResults
18-
- `$ji.defaulted.getSearchResults(query: string, options: { limit?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {})`
18+
- `$ji.defaulted.getSearchResults(query: string, options: { limit?: number, offset?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {})`
1919

2020
Read [$ji.base.getSearchResults](/docs/api/api-base#getSearchResults)

Diff for: docs-gen/docs/api/api-introduction.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ This category contains all the functions to directly access the Jira API.
3131
The responses are cached in order to reduce the network load.
3232

3333
- [`$ji.base.getIssue(issueKey: string, options: { fields?: string[], account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getIssue)
34-
- [`$ji.base.getSearchResults(query: string, options: { limit?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getSearchResults)
34+
- [`$ji.base.getSearchResults(query: string, options: { limit?: number, offset?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getSearchResults)
3535
- [`$ji.base.getDevStatus(issueId: string, options: { account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getDevStatus)
36-
- [`$ji.base.getBoards(projectKeyOrId: string, options: { limit?: number, account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getBoards)
36+
- [`$ji.base.getBoards(projectKeyOrId: string, options: { limit?: number, offset?: number, account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getBoards)
3737
- [`$ji.base.getSprint(sprintId: number, options: { account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getSprint)
38-
- [`$ji.base.getSprints(boardId: number, options: { limit?: number, state?: ESprintState[], account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getSprints)
38+
- [`$ji.base.getSprints(boardId: number, options: { limit?: number, offset?: number, state?: ESprintState[], account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-base#getSprints)
3939
- [`$ji.base.getLoggedUser(account: IJiraIssueAccountSettings = null)`](/docs/api/api-base#getLoggedUser)
4040

4141
### API Category - [Defaulted](/docs/api/api-defaulted)
@@ -47,7 +47,7 @@ The responses are cached in order to reduce the network load.
4747

4848

4949
- [`$ji.defaulted.getIssue(issueKey: string, options: { fields?: string[], account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-defaulted#getIssue)
50-
- [`$ji.defaulted.getSearchResults(query: string, options: { limit?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-defaulted#getSearchResults)
50+
- [`$ji.defaulted.getSearchResults(query: string, options: { limit?: number, offset?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {})`](/docs/api/api-defaulted#getSearchResults)
5151

5252
### API Category - [Macro](/docs/api/api-macro)
5353

Diff for: src/api/apiBase.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,23 @@ export async function getIssue(issueKey: string, options: { fields?: string[], a
2424
return cacheWrapper(JiraClient.getIssue)(issueKey, options)
2525
}
2626

27-
export async function getSearchResults(query: string, options: { limit?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSearchResults> {
27+
export async function getSearchResults(query: string, options: { limit?: number, offset?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSearchResults> {
2828
return cacheWrapper(JiraClient.getSearchResults)(query, options)
2929
}
3030

3131
export async function getDevStatus(issueId: string, options: { account?: IJiraIssueAccountSettings } = {}): Promise<IJiraDevStatus> {
3232
return cacheWrapper(JiraClient.getDevStatus)(issueId, options)
3333
}
3434

35-
export async function getBoards(projectKeyOrId: string, options: { limit?: number, account?: IJiraIssueAccountSettings } = {}): Promise<IJiraBoard[]> {
35+
export async function getBoards(projectKeyOrId: string, options: { limit?: number, offset?: number, account?: IJiraIssueAccountSettings } = {}): Promise<IJiraBoard[]> {
3636
return cacheWrapper(JiraClient.getBoards)(projectKeyOrId, options)
3737
}
3838

3939
export async function getSprint(sprintId: number, options: { account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSprint> {
4040
return cacheWrapper(JiraClient.getSprint)(sprintId, options)
4141
}
4242

43-
export async function getSprints(boardId: number, options: { limit?: number, state?: ESprintState[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSprint[]> {
43+
export async function getSprints(boardId: number, options: { limit?: number, offset?: number, state?: ESprintState[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSprint[]> {
4444
return cacheWrapper(JiraClient.getSprints)(boardId, options)
4545
}
4646

Diff for: src/client/jiraClient.ts

+19-14
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export default {
171171
async getIssue(issueKey: string, options: { fields?: string[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraIssue> {
172172
const opt = {
173173
fields: options.fields || [],
174-
account: options.account || null
174+
account: options.account || null,
175175
}
176176
const queryParameters = new URLSearchParams({
177177
fields: opt.fields.join(','),
@@ -188,17 +188,18 @@ export default {
188188
return issue
189189
},
190190

191-
async getSearchResults(query: string, options: { limit?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSearchResults> {
191+
async getSearchResults(query: string, options: { limit?: number, offset?: number, fields?: string[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSearchResults> {
192192
const opt = {
193-
limit: options.limit || 50,
194193
fields: options.fields || [],
195-
account: options.account || null
194+
offset: options.offset || 0,
195+
limit: options.limit || 50,
196+
account: options.account || null,
196197
}
197198
const queryParameters = new URLSearchParams({
198199
jql: query,
199-
startAt: '0',
200-
maxResults: opt.limit > 0 ? opt.limit.toString() : '',
201200
fields: opt.fields.join(','),
201+
startAt: opt.offset > 0 ? opt.offset.toString() : '',
202+
maxResults: opt.limit > 0 ? opt.limit.toString() : '',
202203
})
203204
const searchResults = await sendRequest(
204205
{
@@ -314,7 +315,7 @@ export default {
314315

315316
async getDevStatus(issueId: string, options: { account?: IJiraIssueAccountSettings } = {}): Promise<IJiraDevStatus> {
316317
const opt = {
317-
account: options.account || null
318+
account: options.account || null,
318319
}
319320
const queryParameters = new URLSearchParams({
320321
issueId: issueId,
@@ -330,14 +331,16 @@ export default {
330331
) as IJiraDevStatus
331332
},
332333

333-
async getBoards(projectKeyOrId: string, options: { limit?: number, account?: IJiraIssueAccountSettings } = {}): Promise<IJiraBoard[]> {
334+
async getBoards(projectKeyOrId: string, options: { limit?: number, offset?: number, account?: IJiraIssueAccountSettings } = {}): Promise<IJiraBoard[]> {
334335
const opt = {
336+
offset: options.offset || 0,
335337
limit: options.limit || 50,
336-
account: options.account || null
338+
account: options.account || null,
337339
}
338340
const queryParameters = new URLSearchParams({
339341
projectKeyOrId: projectKeyOrId,
340-
maxResults: opt.limit.toString(),
342+
startAt: opt.offset > 0 ? opt.offset.toString() : '',
343+
maxResults: opt.limit > 0 ? opt.limit.toString() : '',
341344
})
342345
const boards = await sendRequest(
343346
{
@@ -354,15 +357,17 @@ export default {
354357
return []
355358
},
356359

357-
async getSprints(boardId: number, options: { limit?: number, state?: ESprintState[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSprint[]> {
360+
async getSprints(boardId: number, options: { limit?: number, offset?: number, state?: ESprintState[], account?: IJiraIssueAccountSettings } = {}): Promise<IJiraSprint[]> {
358361
const opt = {
359-
limit: options.limit || 50,
360362
state: options.state || [],
361-
account: options.account || null
363+
offset: options.offset || 0,
364+
limit: options.limit || 50,
365+
account: options.account || null,
362366
}
363367
const queryParameters = new URLSearchParams({
364-
maxResults: opt.limit.toString(),
365368
state: opt.state.join(','),
369+
startAt: opt.offset > 0 ? opt.offset.toString() : '',
370+
maxResults: opt.limit > 0 ? opt.limit.toString() : '',
366371
})
367372
const sprints = await sendRequest(
368373
{

0 commit comments

Comments
 (0)