79 lines
7.1 KiB
OpenEdge ABL
79 lines
7.1 KiB
OpenEdge ABL
/**
|
|
* ─────────────────────────────────────────────────────────────────────────────────────────────────┐
|
|
* This web service class is use for update admin access token for particular store.
|
|
* Trigger on Order update or create.
|
|
* 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>
|
|
* ──────────────────────────────────────────────────────────────────────────────────────────────────
|
|
*/
|
|
@RestResource(urlMapping='/UpdateAdminAccessToken/*')
|
|
global with sharing class UpdateAdminAccessToken {
|
|
public static String generic_value1 = '';
|
|
public static string Name = '';
|
|
public static list<HIC_ShopifySync__HIC_Configuration__c > configurationList = new list<HIC_ShopifySync__HIC_Configuration__c >();
|
|
|
|
|
|
@HttpPost
|
|
global static void updateShopifyToken(){
|
|
RestRequest request = RestContext.request;
|
|
String store = 'Default';
|
|
Map <String, String> params = request.params;
|
|
if(!params.isEmpty() && params.containsKey('store') && params.get('store') != null)
|
|
store = params.get('store');
|
|
|
|
|
|
String query = 'Select '+CheckAccessibility.isAccessible('name, HIC_ShopifySync__Salesforce_Pricebook__c, HIC_ShopifySync__Draft_Order_Sync__c,HIC_ShopifySync__Default_Field_Mapping__c,HIC_ShopifySync__Specify_Close_Date__c,HIC_ShopifySync__Batch_Is_Processing__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c, HIC_ShopifySync__Person_Account__c, HIC_ShopifySync__Order_Sync__c, HIC_ShopifySync__Opportunity_Sync__c ','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('HIC_ShopifySync__Store__c', 'HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 49999';
|
|
configurationList = database.query(query);
|
|
|
|
RestResponse response = RestContext.response;
|
|
String jSONRequestBody = request.requestBody.toString().trim();
|
|
|
|
addNewStoreToken(jSONRequestBody);
|
|
}
|
|
|
|
global static void addNewStoreToken(String JSONResponseBody ){
|
|
System.debug('JSONResponseBody---'+JSONResponseBody);
|
|
Map<String, Object> meta = (Map<String, Object>) JSON.deserializeUntyped(JSONResponseBody);
|
|
if(!meta.isEmpty() && (meta.containskey('access_token') && meta.get('access_token') != null && meta.get('access_token') != '') &&
|
|
(meta.containskey('store_url') && meta.get('store_url') != null && meta.get('store_url') != '')){
|
|
String access_token = String.valueof(meta.get('access_token'));
|
|
System.debug('access_token--'+access_token);
|
|
String StoreURL = String.valueof(meta.get('store_url'));
|
|
String store = StoreURL.replace('https://','').replace('.myshopify.com','').remove('/').remove('"');
|
|
if(access_token != null && access_token != ''){
|
|
list<HIC_ShopifySync__HIC_Configuration__c> listofConfiguration = new list<HIC_ShopifySync__HIC_Configuration__c>();
|
|
|
|
String query = 'Select '+CheckAccessibility.isAccessible('id,name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c, HIC_ShopifySync__Account_Contact__c, HIC_ShopifySync__Person_Account__c, HIC_ShopifySync__Default_Account__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Refresh_Token__c,HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('name','HIC_ShopifySync__HIC_Configuration__c')+' = \''+store+'\' LIMIT 1';
|
|
System.debug('query--'+query);
|
|
listofConfiguration = database.query(query);
|
|
system.debug('***listofConfiguration ' +listofConfiguration);
|
|
if(listofConfiguration.isEmpty()) {
|
|
query = 'Select '+CheckAccessibility.isAccessible('id,name,HIC_ShopifySync__Batch_Is_Processing__c,HIC_ShopifySync__Specify_Close_Date__c, HIC_ShopifySync__Account_Contact__c, HIC_ShopifySync__Person_Account__c, HIC_ShopifySync__Default_Account__c, HIC_ShopifySync__Shopify_URL__c, HIC_ShopifySync__API_Key__c, HIC_ShopifySync__Private_Key_Password__c, HIC_ShopifySync__Opportunity__c, HIC_ShopifySync__Order__c, HIC_ShopifySync__Refresh_Token__c,HIC_ShopifySync__Opportunity_Line_Item__c, HIC_ShopifySync__Order_Line_Item__c, HIC_ShopifySync__Order_Fulfillment__c','HIC_ShopifySync__HIC_Configuration__c')+' from HIC_ShopifySync__HIC_Configuration__c where '+CheckAccessibility.isAccessible('name','HIC_ShopifySync__HIC_Configuration__c')+' = \'Default\' LIMIT 1';
|
|
listofConfiguration = database.query(query);
|
|
}
|
|
//HIC_ShopifySync__HIC_Configuration__c config = new HIC_ShopifySync__HIC_Configuration__c();
|
|
listofConfiguration[0].Id = null;
|
|
listofConfiguration[0].Name = store;
|
|
listofConfiguration[0].HIC_ShopifySync__Store__c = store;
|
|
listofConfiguration[0].HIC_ShopifySync__Shopify_URL__c = 'https://'+store+'.myshopify.com';
|
|
listofConfiguration[0].HIC_ShopifySync__Private_Key_Password__c = access_token;
|
|
//listofConfiguration.add(config);
|
|
|
|
if(listofConfiguration != null && !listofConfiguration.isEmpty()){
|
|
try{
|
|
upsert listofConfiguration name;
|
|
}catch(Exception e){
|
|
|
|
System.debug('Error '+ e.getMessage());
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
} |