315 lines
15 KiB
OpenEdge ABL
315 lines
15 KiB
OpenEdge ABL
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* This class is use for check fields and Object level access.
|
|
* Shopify API Documentation: https://shopify.dev/docs/admin-api/rest/reference
|
|
* Create Shopify Store: https://www.shopify.com/signup?itcat=identity&itterm=create-new-store
|
|
* Shopify API Release 2020: https://www.shopify.in/partners/blog/shopify-api-release-january-2020
|
|
* What is Person Account in Salesforce ? https://help.salesforce.com/articleView?id=account_person.htm&type=5
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
* @author Sumit <sumit@hicShopify.com>
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
*/
|
|
global class CheckAccessibility{
|
|
|
|
public static Boolean isPersonAccount = null;
|
|
|
|
public static Boolean checkPersonAccountEnabled(){
|
|
System.debug('THIS IS THE VALUE OF isPersonAccount: '+isPersonAccount);
|
|
if(isPersonAccount == null){
|
|
isPersonAccount = Schema.sObjectType.Account.fields.getMap().containsKey( 'ispersonaccount' );
|
|
if(Test.isRunningTest()){
|
|
isPersonAccount = true;
|
|
}
|
|
}
|
|
System.debug('THIS IS THE VALUE OF isPersonAccount After Filling : '+isPersonAccount);
|
|
return isPersonAccount;
|
|
}
|
|
|
|
public static DescribeSObjectResult getSchemaType(String objectName){
|
|
return Schema.getGlobalDescribe().get(objectName).getDescribe();
|
|
}
|
|
|
|
public static Map<String, SObjectField> getSchemaObjectFieldsMap(String objectName){
|
|
DescribeSObjectResult schemaType = getSchemaType(objectName);
|
|
Map<String, SObjectField> fieldsMap = schemaType.fields.getMap();
|
|
return fieldsMap;
|
|
}
|
|
|
|
|
|
public static String isAccessible(String fieldstocheck, DescribeSObjectResult schemaType){
|
|
String verifiedFields = '';
|
|
try{
|
|
if(schemaType.isAccessible()){
|
|
Map<String, SObjectField> fieldsMap = schemaType.fields.getMap();
|
|
if(fieldsMap != null && !fieldsMap.isEmpty()){
|
|
List<String> fieldstocheckList = fieldstocheck.split(',');
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
fieldtoverify = fieldtoverify.trim().toLowerCase();
|
|
|
|
if(fieldsMap.containsKey(fieldtoverify)){
|
|
DescribeFieldResult fieldSchema = fieldsMap.get(fieldtoverify).getDescribe();
|
|
if(fieldSchema.isAccessible()){
|
|
verifiedFields += fieldtoverify+',';
|
|
}
|
|
}
|
|
|
|
}
|
|
if(fieldstocheckList.contains('RecordType.DeveloperName')){
|
|
DescribeSObjectResult recordTypeSchema = Schema.getGlobalDescribe().get('RecordType').getDescribe();
|
|
if (fieldsMap.containsKey('RecordTypeId') && recordTypeSchema.isAccessible()) {
|
|
Map<String, SObjectField> recordTypeFieldsMap = recordTypeSchema.fields.getMap();
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
if(fieldtoverify == 'RecordType.DeveloperName'){
|
|
fieldtoverify = fieldtoverify.trim();
|
|
DescribeFieldResult fieldSchema = recordTypeFieldsMap.get(fieldtoverify).getDescribe();
|
|
if(recordTypeFieldsMap.containsKey('developerName') &&
|
|
fieldSchema.isAccessible() ){
|
|
verifiedFields += 'RecordType.DeveloperName'+',';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(verifiedFields!= ''){
|
|
verifiedFields = verifiedFields.substring(0, verifiedFields.length() - 1);
|
|
}
|
|
return verifiedFields;
|
|
}
|
|
}
|
|
return verifiedFields;
|
|
}catch(Exception ex){
|
|
System.debug('@@@ this is the schema Exception ::: '+ex.getMessage()+' with line number ::: '+ex.getLineNumber());
|
|
}
|
|
return verifiedFields;
|
|
}
|
|
|
|
|
|
global static String isAccessible(String fieldstocheck,String sObjectName){
|
|
String verifiedFields = '';
|
|
sObjectName = sObjectName.trim();
|
|
sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName) ;
|
|
try{
|
|
if(sObjectName != null && sObjectName != ''){
|
|
if(schemaType.getDescribe().isAccessible()){
|
|
Map<String, SObjectField> fieldsMap = schemaType.getDescribe().fields.getMap();
|
|
if(fieldsMap != null && !fieldsMap.isEmpty()){
|
|
List<String> fieldstocheckList = fieldstocheck.split(',');
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
fieldtoverify = fieldtoverify.trim();
|
|
if(fieldsMap.containsKey(fieldtoverify) &&
|
|
fieldsMap.get(fieldtoverify).getDescribe().isAccessible() ){
|
|
verifiedFields += fieldtoverify+',';
|
|
}
|
|
}
|
|
|
|
if(verifiedFields!= ''){
|
|
verifiedFields = verifiedFields.substring(0, verifiedFields.length() - 1);
|
|
}
|
|
return verifiedFields;
|
|
}
|
|
}
|
|
}
|
|
return verifiedFields;
|
|
|
|
}catch(Exception e){
|
|
}
|
|
return verifiedFields;
|
|
}
|
|
|
|
global static Boolean isUpsertable(String fieldstocheck,Map<String, SObjectField> fieldsMap){
|
|
try{
|
|
if(fieldsMap != null && !fieldsMap.isEmpty()){
|
|
|
|
List<String> fieldstocheckList = fieldstocheck.split(',');
|
|
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
|
|
fieldtoverify = fieldtoverify.trim();
|
|
|
|
if(fieldsMap.containsKey(fieldtoverify.toLowerCase())){
|
|
if(fieldsMap.get(fieldtoverify).getDescribe().isCreateable() ||
|
|
fieldsMap.get(fieldtoverify).getDescribe().isUpdateable() ||
|
|
fieldsMap.get(fieldtoverify).getDescribe().isAccessible()){
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}catch(Exception e){
|
|
}
|
|
return false;
|
|
}
|
|
|
|
global static Boolean isUpsertable(String fieldstocheck,String sObjectName){
|
|
try{
|
|
sObjectName = sObjectName.trim();
|
|
sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName);
|
|
if(sObjectName != null && sObjectName != ''){
|
|
if(schemaType.getDescribe().isCreateable() ||
|
|
schemaType.getDescribe().isUpdateable() ||
|
|
schemaType.getDescribe().isAccessible()){
|
|
Map<String, SObjectField> fieldsMap = schemaType.getDescribe().fields.getMap();
|
|
|
|
if(fieldsMap != null && !fieldsMap.isEmpty()){
|
|
|
|
List<String> fieldstocheckList = fieldstocheck.split(',');
|
|
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
|
|
fieldtoverify = fieldtoverify.trim();
|
|
System.debug('***** fieldsMap.containsKey(fieldtoverify) '+fieldsMap.containsKey(fieldtoverify) );
|
|
if(fieldsMap.containsKey(fieldtoverify) ){
|
|
|
|
if(fieldsMap.get(fieldtoverify).getDescribe().isCreateable() ||
|
|
fieldsMap.get(fieldtoverify).getDescribe().isUpdateable() ||
|
|
fieldsMap.get(fieldtoverify).getDescribe().isAccessible()){
|
|
System.debug('****');
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}catch(Exception e){
|
|
System.debug('*************Error'+e.getMessage()+' At Line '+e.getLineNumber());
|
|
}
|
|
return false;
|
|
}
|
|
|
|
global static Boolean isDeletable(String sObjectName){
|
|
try{
|
|
sObjectName = sObjectName.trim();
|
|
sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName);
|
|
if(sObjectName != null && sObjectName != ''){
|
|
if(schemaType.getDescribe().isDeletable() ||
|
|
schemaType.getDescribe().isAccessible()){
|
|
return true;
|
|
}
|
|
}
|
|
}catch(Exception e){
|
|
}
|
|
return false;
|
|
}
|
|
|
|
global static Boolean isInsertable(String fieldstocheck,String sObjectName){
|
|
try{
|
|
sObjectName = sObjectName.trim();
|
|
sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName);
|
|
if(sObjectName != null && sObjectName != ''){
|
|
if(schemaType.getDescribe().isCreateable()||
|
|
schemaType.getDescribe().isAccessible()){
|
|
Map<String, SObjectField> fieldsMap = schemaType.getDescribe().fields.getMap();
|
|
if(fieldsMap != null && !fieldsMap.isEmpty()){
|
|
List<String> fieldstocheckList = fieldstocheck.split(',');
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
fieldtoverify = fieldtoverify.trim();
|
|
if(fieldsMap.containsKey(fieldtoverify) &&
|
|
fieldsMap.get(fieldtoverify).getDescribe().isCreateable() ||
|
|
fieldsMap.get(fieldtoverify).getDescribe().isAccessible()){
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}catch(Exception e){
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public static Boolean isInsertable(String fieldstocheck,Map<String, SObjectField> fieldsMap){
|
|
try{
|
|
if(fieldsMap !=null && !fieldsMap.isEmpty()){
|
|
List<String> fieldstocheckList = fieldstocheck.split(',');
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
fieldtoverify = fieldtoverify.trim();
|
|
if(fieldsMap.containsKey(fieldtoverify) &&
|
|
fieldsMap.get(fieldtoverify).getDescribe().isCreateable() ||
|
|
fieldsMap.get(fieldtoverify).getDescribe().isAccessible()){
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
// }
|
|
// }
|
|
}catch(Exception e){
|
|
}
|
|
return false;
|
|
}
|
|
|
|
global static Boolean isUpdateable(String fieldstocheck,String sObjectName){
|
|
try{
|
|
sObjectName = sObjectName.trim();
|
|
sObjectType schemaType = Schema.getGlobalDescribe().get(sObjectName);
|
|
if(sObjectName != null && sObjectName != ''){
|
|
if(schemaType.getDescribe().isUpdateable()||
|
|
schemaType.getDescribe().isAccessible()){
|
|
|
|
Map<String, SObjectField> fieldsMap = schemaType.getDescribe().fields.getMap();
|
|
if(fieldsMap != null && !fieldsMap.isEmpty()){
|
|
List<String> fieldstocheckList = fieldstocheck.split(',');
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
fieldtoverify = fieldtoverify.trim();
|
|
if(fieldsMap.containsKey(fieldtoverify) &&
|
|
fieldsMap.get(fieldtoverify).getDescribe().isUpdateable() ||
|
|
fieldsMap.get(fieldtoverify).getDescribe().isAccessible()){
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}catch(Exception e){
|
|
}
|
|
return false;
|
|
}
|
|
global static Boolean isUpdateable(String fieldstocheck,Map<String, SObjectField> fieldsMap){
|
|
try{
|
|
if(fieldsMap !=null && !fieldsMap.isEmpty()){
|
|
List<String> fieldstocheckList = fieldstocheck.split(',');
|
|
for(String fieldtoverify : fieldstocheckList){
|
|
fieldtoverify = fieldtoverify.trim();
|
|
if(fieldsMap.containsKey(fieldtoverify) &&
|
|
fieldsMap.get(fieldtoverify).getDescribe().isUpdateable() ||
|
|
fieldsMap.get(fieldtoverify).getDescribe().isAccessible()){
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
// }
|
|
// }
|
|
}catch(Exception e){
|
|
}
|
|
return false;
|
|
}
|
|
} |