Skip to content

Rank API calls failing #335

@Andr3wid

Description

@Andr3wid

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions