Creates an issue or a sub-task from a JSON representation.
curl -X POST --user jira@example.com:JIRA_API_TOKEN \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '
{
"fields": {
"project": {
"id": "10000"
},
"summary": "something is wrong",
"issuetype": {
"id": "10000"
},
"assignee": {
"name": "matt"
},
"priority": {
"id": "3"
},
"labels": [
"bugfix",
"blitz_test"
],
"description": "description",
"fixVersions": [
{
"id": "10001"
}
],
"customfield_10005": "blah blah"
}
}' \
--url 'https://your-domain.atlassian.net/rest/api/2/issue'
#import <CkoRest.h>
#import <CkoJsonObject.h>
#import <CkoStringBuilder.h>
#import <NSString.h>
CkoRest *rest = [[CkoRest alloc] init];
BOOL success;
// URL: https://your-domain.atlassian.net/rest/api/2/issue
BOOL bTls = YES;
int port = 443;
BOOL bAutoReconnect = YES;
success = [rest Connect: @"your-domain.atlassian.net" port: [NSNumber numberWithInt: port] tls: bTls autoReconnect: bAutoReconnect];
if (success != YES) {
NSLog(@"%@%d",@"ConnectFailReason: ",[rest.ConnectFailReason intValue]);
NSLog(@"%@",rest.LastErrorText);
return;
}
[rest SetAuthBasic: @"jira@example.com" password: @"JIRA_API_TOKEN"];
CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"fields.project.id" value: @"10000"];
[json UpdateString: @"fields.summary" value: @"something is wrong"];
[json UpdateString: @"fields.issuetype.id" value: @"10000"];
[json UpdateString: @"fields.assignee.name" value: @"matt"];
[json UpdateString: @"fields.priority.id" value: @"3"];
[json UpdateString: @"fields.labels[0]" value: @"bugfix"];
[json UpdateString: @"fields.labels[1]" value: @"blitz_test"];
[json UpdateString: @"fields.description" value: @"description"];
[json UpdateString: @"fields.fixVersions[0].id" value: @"10001"];
[json UpdateString: @"fields.customfield_10005" value: @"blah blah"];
[rest AddHeader: @"Content-Type" value: @"application/json"];
[rest AddHeader: @"Accept" value: @"application/json"];
CkoStringBuilder *sbRequestBody = [[CkoStringBuilder alloc] init];
[json EmitSb: sbRequestBody];
CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
success = [rest FullRequestSb: @"POST" uriPath: @"/rest/api/2/issue" requestBody: sbRequestBody responseBody: sbResponseBody];
if (success != YES) {
NSLog(@"%@",rest.LastErrorText);
return;
}
int respStatusCode = [rest.ResponseStatusCode intValue];
if (respStatusCode >= 400) {
NSLog(@"%@%d",@"Response Status Code = ",respStatusCode);
NSLog(@"%@",@"Response Header:");
NSLog(@"%@",rest.ResponseHeader);
NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[sbResponseBody GetAsString]);
return;
}
CkoJsonObject *jsonResponse = [[CkoJsonObject alloc] init];
[jsonResponse LoadSb: sbResponseBody];
NSString *id = 0;
NSString *key = 0;
NSString *self = 0;
id = [jsonResponse StringOf: @"id"];
key = [jsonResponse StringOf: @"key"];
self = [jsonResponse StringOf: @"self"];
{
"id": "10023",
"key": "SCRUM-24",
"self": "https://chilkat.atlassian.net/rest/api/2/issue/10023"
}