-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFCServiceAPI.apxc
More file actions
72 lines (61 loc) · 2.92 KB
/
FCServiceAPI.apxc
File metadata and controls
72 lines (61 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
public without sharing class FCServiceAPI {
public FCGenericResponse genericWrapperResponse{get; set;}
public Object objWrap {get; set;}
public FCGatewayAPI gateway {get;set;}
public String method {get;set;}
public String endPoint {get;set;}
public Boolean isJsonString {get;set;}
public String identityDataTarget {get;set;}
public Boolean isExpectedResponseInAformOfList {get;set;}
public FCServiceAPI(){
gateway = new FCGatewayAPI();
}
public void Fitch_GenericResponse(){
String requestBody = null != isJsonString && isJsonString ? String.valueOf(objWrap) : objWrapToJSONString(objWrap);
gateway.identityDataTarget = this.identityDataTarget;
HttpResponse response = gateway.execute(endPoint, method, requestBody);
Set<Integer> OK_STATUS = new Set<Integer>{200, 201, 204};
if(!OK_STATUS.contains(response.getStatusCode())){
genericWrapperResponse = new FCGenericResponse(JSON.deserializeUntyped(response.getBody()),true,response.getStatusCode(),'' );
}else{
genericWrapperResponse = new FCGenericResponse(jsonStringToObjWrap(response),false,response.getStatusCode(),'' );
}
}
public String objWrapToJSONString(Object objWrap){
if(objWrap instanceof FCObject){
return JSON.serialize((FCObject) objWrap);
}else if(objWrap instanceof FCObject.ADD_USER_RELATIONSHIPS_GROUP){
return String.valueOf((FCObject.ADD_USER_RELATIONSHIPS_GROUP) objWrap);
}
return null;
}
/*public Object jsonStringToObjWrap(HttpResponse response){
if(String.isEmpty(response.getBody())){
return null;
}else if(JSON.deserialize(response.getBody(), FCObject.class) instanceof FCObject){
return JSON.deserialize(response.getBody(), FCObject.class);
}else if(JSON.deserialize(response.getBody(), FCObject.ERRORS.class) instanceof FCObject.ERRORS){
return JSON.deserialize(response.getBody(), FCObject.ERRORS.class);
}
//return response.getBody();
return null;
}*/
public Object jsonStringToObjWrap(HttpResponse response){
Set<String> identityDataSet = new Set<String>{'organization', 'user', 'group','package','contact'};
if(String.isEmpty(response.getBody())){
return null;
}else{
if(null != isExpectedResponseInAformOfList && isExpectedResponseInAformOfList){
if(identityDataSet.contains(this.identityDataTarget)){
return JSON.deserialize(response.getBody(), FCObject.FCObjectList.class);
}
}else{
if(identityDataSet.contains(this.identityDataTarget)){
return JSON.deserialize(response.getBody(), FCObject.class);
}
}
}
//return response.getBody();
return null;
}
}