-
Notifications
You must be signed in to change notification settings - Fork 170
Open
Description
Hello there 👋
I'm currently trying to use the rankIssues(body) method as follows:
// code exists inside a function that answers an HTTP-request
const jiraClient = new JiraApi({ ... });
const rankRequestBody = {
issues: ['ISSUE-10'],
rankBeforeIssue: 'ISSUE-12',
rankCustomFieldId: 10057,
};
return jiraClient.rankIssues(rankRequestBody);The rankIssues call fails with the following reason:
Error: Can not instantiate value of type [simple type, class com.atlassian.greenhopper.api.rest.bean.IssueRankRequestBean] from JSON String; no single-String constructor/factory method
at JiraApi.doRequest (/path/to/project/node_modules/jira-client/lib/jira.js:333:15)
The error seems to indicate that the request-body is malformed according to this source. The exact same request-body works when submitted through postman though. After some digging, it seems that the request body gets stringified twice or something. Indeed if I directly pass rankRequestBody without stringifying it (or changing the expected type to object in the corresponding type-declaration), the call works. 🎉
Is the expected body something different than the stringified request-body, or is this a typing issue?
EDIT:
Intercepted the doRequest() method and inspected the options before they are submitted.
When passing `rankRequestBody` as `object` (--> request works):
{
"auth": {
/* Auth related stuff */
},
"rejectUnauthorized": true,
"method": "PUT",
"uri": "https://my-base-uri.xyz/rest/agile/1.0/issue/rank",
"json": true,
"body": {
"issues": ["ISSUE-10"],
"rankBeforeIssue": "ISSUE-12",
"rankCustomFieldId":10057
}
}When passing `rankRequestBody` as `string`ified version (as noted in comments and types; --> request fails):
{
"auth": {
/* Auth related stuff */
},
"rejectUnauthorized": true,
"method": "PUT",
"uri": "https://my-base-uri.xyz/rest/agile/1.0/issue/rank",
"json": true,
"body": "{\"issues\":[\"ISSUE-10\"],\"rankBeforeIssue\":\"ISSUE-12\",\"rankCustomFieldId\":10057}"
}Metadata
Metadata
Assignees
Labels
No labels