mirror of
https://github.com/nathonius/obsidian-github-link.git
synced 2026-07-22 09:20:25 +00:00
🔨 refactor: #114 Extract parameter transformation
This commit is contained in:
parent
a9ff3857c8
commit
5f65a14c24
1 changed files with 29 additions and 52 deletions
|
|
@ -60,32 +60,8 @@ export function getMyIssues(
|
|||
if (!account?.token) {
|
||||
return Promise.resolve({ meta: {}, response: [] });
|
||||
}
|
||||
const listParams = mapObject<QueryParams, IssueListParams>(
|
||||
params,
|
||||
{
|
||||
assignee: true,
|
||||
creator: true,
|
||||
direction: true,
|
||||
labels: (params) => {
|
||||
if (Array.isArray(params.labels)) {
|
||||
return params.labels.join(",");
|
||||
}
|
||||
return params.labels;
|
||||
},
|
||||
mentioned: true,
|
||||
page: true,
|
||||
per_page: true,
|
||||
since: true,
|
||||
sort: (params) => issueListSortFromQuery(params),
|
||||
state: true,
|
||||
},
|
||||
true,
|
||||
true,
|
||||
);
|
||||
|
||||
setPageSize(listParams);
|
||||
|
||||
return api.listIssuesForToken(listParams, account.token, skipCache);
|
||||
return api.listIssuesForToken(toIssueListParams(params), account.token, skipCache);
|
||||
}
|
||||
|
||||
export function getIssuesForRepo(
|
||||
|
|
@ -94,33 +70,7 @@ export function getIssuesForRepo(
|
|||
repo: string,
|
||||
skipCache = false,
|
||||
): Promise<MaybePaginated<IssueListResponse>> {
|
||||
const listParams = mapObject<QueryParams, IssueListParams>(
|
||||
params,
|
||||
{
|
||||
assignee: true,
|
||||
creator: true,
|
||||
direction: true,
|
||||
labels: (params) => {
|
||||
if (Array.isArray(params.labels)) {
|
||||
return params.labels.join(",");
|
||||
}
|
||||
return params.labels;
|
||||
},
|
||||
mentioned: true,
|
||||
page: true,
|
||||
per_page: true,
|
||||
since: true,
|
||||
sort: (params) => issueListSortFromQuery(params),
|
||||
state: true,
|
||||
filter: true,
|
||||
},
|
||||
true,
|
||||
true,
|
||||
);
|
||||
|
||||
setPageSize(listParams);
|
||||
|
||||
return api.listIssuesForRepo(org, repo, listParams, getToken(org), skipCache);
|
||||
return api.listIssuesForRepo(org, repo, toIssueListParams(params), getToken(org), skipCache);
|
||||
}
|
||||
|
||||
export function getIssuesForOrganization(
|
||||
|
|
@ -250,3 +200,30 @@ export async function getPRForIssue(timelineUrl: string, org?: string): Promise<
|
|||
function setPageSize(params: { per_page?: number }): void {
|
||||
params.per_page = params.per_page ?? PluginSettings.defaultPageSize;
|
||||
}
|
||||
|
||||
function toIssueListParams(queryParams: QueryParams): IssueListParams {
|
||||
const listParams = mapObject<QueryParams, IssueListParams>(
|
||||
queryParams,
|
||||
{
|
||||
assignee: true,
|
||||
creator: true,
|
||||
direction: true,
|
||||
labels: (params) => {
|
||||
if (Array.isArray(params.labels)) {
|
||||
return params.labels.join(",");
|
||||
}
|
||||
return params.labels;
|
||||
},
|
||||
mentioned: true,
|
||||
page: true,
|
||||
per_page: true,
|
||||
since: true,
|
||||
sort: (params) => issueListSortFromQuery(params),
|
||||
state: true,
|
||||
},
|
||||
true,
|
||||
true,
|
||||
);
|
||||
setPageSize(listParams);
|
||||
return listParams;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue