Files
Riabu_Integration/force-app/main/default/classes/RiabuAuthAccessToken.cls
2025-11-26 16:38:23 +05:30

45 lines
1.6 KiB
OpenEdge ABL

public class RiabuAuthAccessToken {
public static String getAccessToken() {
RIABU_Integration__mdt config = RIABU_Integration__mdt.getInstance('Riabu_Record');
System.debug('🔄 Token expired or unavailable. Requesting new token...');
HttpRequest req = new HttpRequest();
req.setEndpoint(config.Endpoint__c + '/api/v1/oauth/token');
req.setMethod('POST');
req.setHeader('Content-Type', 'application/json');
Map<String, String> payload = new Map<String, String>();
payload.put('username', config.Username__c);
payload.put('client_id',config.Client_Id__c);
payload.put('client_secret',config.Client_Secret__c);
payload.put('password', config.Password__c);
payload.put('grant_type', config.Grant_Type__c);
req.setBody(JSON.serialize(payload));
Http http = new Http();
HttpResponse res = http.send(req);
System.debug('📥 Token Response: ' + res.getBody());
if (res.getStatusCode() != 200) {
System.debug(' Token generation failed');
return null;
}
Map<String, Object> tokenMap = (Map<String, Object>) JSON.deserializeUntyped(res.getBody());
String newAccessToken = (String) tokenMap.get('access_token');
String newRefreshToken = (String) tokenMap.get('refresh_token');
System.enqueueJob(new RiabuTokenUpdateJob('Riabu_Record', newAccessToken, newRefreshToken));
System.debug(' Token refreshed and CMDT update queued');
return newAccessToken;
}
}