<https://ssoqa.abcoffice.com/api/v1/users?after=200abcdefghijklmno55&l
+imit=200>; rel="next"https://ssoqa.abcoffice.com/api/v1/users?after=2
+00abcdefghijklmno5&limit=200https://ssoqa.abcoffice.com/api/v1/users?
+after=200abcdefghijklmno55&limit=200<https://ssoqa.abcoffice.com/api/
+v1/users?after=200abcdefghijklmno55&limit=200>; rel="self",
There are data structure that i am writing for report and looping for loop . Please check below.
[
{
'status' => 'ACTIVE',
'activated' => '2020-04-29T17:58:43.000Z',
'created' => '2020-04-29T17:58:42.000Z',
'_links' => {
'self' => {
'href' => 'https://ssoqa.abcoffi
+ce.com/api/v1/users/abcdefghijklmno55'
}
},
'passwordChanged' => undef,
'lastUpdated' => '2020-11-06T19:09:08.000Z',
'id' => '00abcdefghijklmn6',
'lastLogin' => '2020-10-05T15:16:53.000Z',
'profile' => {
'email' => 'soula.olla@abc.com',
'middleName' => 'Y',
'countryCode' => 'IN',
'login' => '123456789@ADSYF.SYFBANK.COM',
'streetAddress' => '14-45,idhaian',
'organization' => 'ABC Organization',
'employeeNumber' => '123456789',
'division' => 'ABC - IT',
'AWSrole' => [],
},
'type' => {
'id' => 'omstdyc'
},
'credentials' => {
'provider' => {
'type' => 'AD',
'name' => 'AD.COM'
}
},
'statusChanged' => '2020-06-01T08:56:35.000Z'
},
{
'id' => '00mnopqrstq6',
'lastLogin' => ${\$VAR1->[0]{'passwordChanged'}},
'profile' => {
'managerId' => '2456789',
'userType' => 'Contract',
'city' => 'Stamford',
'zipCode' => '00009',
'JobFunction' => 'IT',
'manager' => 'Kal, R',
'department' => 'IT - IN - CS&T - Client Ec
+om',
'displayName' => 'Bh, M',
'lastName' => 'Bht',
'streetAddress' => '7 Lo Ri Rd',
'email' => 'R.Kal@syf.com',
},
'type' => {
'id' => 'obcdefghijklmn5'
},
'credentials' => {
'provider' => {
'type' => 'AD',
'name' => 'AD.ABC.COM'
}
},
'statusChanged' => '2020-04-29T17:58:49.000Z',
'status' => 'ACTIVE',
'activated' => '2020-04-29T17:58:49.000Z',
'created' => '2020-04-29T17:58:47.000Z',
'_links' => {
'self' => {
'href' => 'https://ssoqa.abc.com
+/api/v1/users/00abcdefghijkl6'
}
},
'passwordChanged' => ${\$VAR1->[0]{'passwordChanged'}},
'lastUpdated' => '2020-11-06T19:09:10.000Z'
},
]
I am getting an error after few times running the code - "JSON error at line 1, byte 1/156: Unexpected character 'C' parsing initial state: expecting whitespace: 'n', '\r', '\t', ' ' or start of string: '"' or digit: '0-9' or minus: '-' or start of an array or object: '{', '[' or start of literal: 't', 'f', 'n' at All-users-Apps.pl line 158." - Please let me know is this is a code issue or network issue.
do {
# Run get the users
run_api_call($apiurlapplog1);
@responsetext = parse_json ($client->responseContent());
push @responsetextall, @responsetext;
$linkheader = $client->responseHeader("Link");
print $linkheader;
if ($linkheader=~ m/next/) {
(my $link1 = $linkheader) =~ s/ .*? (self)/$1/gx;
(my $link2 = $link1) =~ s/self/$1/g;
(my $link3 = $link2) =~ s/</$1/g;
(my $link4 = $link3) =~ s/>/$1/g;
(my $link5 = $link4) =~ s/;/$1/g;
(my $link6 = $link5) =~ s/ /$1/g;
(my $link7 = $link6) =~ s/=\"/$1/g;
(my $link8 = $link7) =~ s/relnext/$1/g;
(my $link9 = $link8) =~ s/"/$1/g;
(my $link10 = $link9) =~ s/,/$1/g;
print $link10;
print $link10;
#$linkheader =~ s/next/$1/g;
$apiurlapplog1 = $link10;
}
} while ($linkheader=~ m/next/);
for my $i (0..$#responsetextall) {
$responsetextall[$i] =~ s/]\[/,/g;
for my $j (0..$#{$responsetextall[$i]}) {
my $responseid = $responsetextall[$i][$j]{id};
my $responsests = $responsetextall[$i][$j]{status};
if ($responsests ne "Deactivated") {
+
run_api_call($apiurluser. $responseid . $apiurl2);
my @responsetext4 = parse_json ($client->responseContent());
my $responsecode1 = $client->responseCode() ;
for my $m (0..$#responsetext4) {
for my $n (0..$#{$responsetext4[$m]}) {
+
$response1 = $responsetext4[$m][$n]{id};
$resplable = $responsetext4 [$m][$n]{l
+abel};
push @mouapps, $resplable;
}
}
my $newurl = ($apiurluser . $responseid );
+
run_api_call($newurl);
+
my @responsetext1 = parse_json ($c
+lient->responseContent());
print Dumper @responsetext1 ;
for my $l (0..$#responsetext1) {
my $response2 = $responsetext1[$l]{id};
my $response3 = $responsetext1[$l]{profile}{firstName};
my $response4 = $responsetext1[$l]{profile}{lastName};
my $response5 = $responsetext1[$l]{profile}{email};
my $response6 = $responsetext1[$l]{credentials}{provide
+r}{name};
## Wrting to the reporting file.
$worksheet->write(0, 0, 'OKTA-ID');
$worksheet->write(0, 1, 'FIRST NAME');
$worksheet->write(0, 2, 'LAST NAME');
$worksheet->write(0, 3, 'EMAIL-ID');
$worksheet->write(0, 4, 'Profile-Master');
$worksheet->write(0, 5, 'APPS');
$worksheet->write($r, 0, $response2);
$worksheet->write($r, 1, $response3);
$worksheet->write($r, 2, $response4);
$worksheet->write($r, 3, $response5);
$worksheet->write($r, 4, $response6);
foreach (@mouapps) {
local $" = '|';
my $response7 = join ("|","@mouapps");
$worksheet->write($r, 5, $response7);
}
$r += 1;
}
} else {
print "Do Nothing" ;
}
}
}
2020-11-08 Athanasius fixed over-long line.
|