function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Dev Org 28Dev Org 28 

API integration and web service

Hi Everyone,

I hope, you are doing well.

I coded a webservice and it return a response  below(json):
{
    "Ticket_id": "500N0000004cbNZIAY",
    "CaseNumber": "00924636"
  }

but I want to return Status code in reponse instead of above json.
For example,
1.If case is created means if successed then it return status code in response like below(json):
{
 "Status code":"200 OK"
}
2.If case is not created means if failed then it return status code in response like below(json):

{
 "Status code":"400 Bad  Request"
}

Please suggest me,what changes I can make in this code or make changes if possible.
Code:

/*
Created by Gulam
*/
@RestResource(urlMapping='/Paytm_SellerPanel_CaseCreationNew/*')

global class Paytm_SellerPanel_CaseCreationNew{
global static string message;
@HttpPost
global static void Paytm_SellerPanel_Case()
{   
    RestRequest req = RestContext.request;
    RestResponse res = Restcontext.response;

    string RespBody=RestContext.request.requestBody.tostring().trim();
    system.debug('respbody    '+respbody);

    records deserializedBody =(records)JSON.deserialize(RespBody, records.class);
    system.debug('deserializedBody  '+deserializedBody);
    string message1 = createcase(deserializedBody);
        res.addHeader('Content-Type', 'application/json');
        res.StatusCode = 200; //Success & no content
        res.responseBody = blob.valueof(message1);  
       system.debug('resStatusCode ====='+res.StatusCode);
    /*if(createcase(deserializedBody).Contains('List index out of bounds'))
    {
            
        res.StatusCode = 404; //NOT_FOUND
        res.responseBody = Blob.valueOf('Parameters missing in request.');
    }
    else if(createcase(deserializedBody).Contains('Bad request'))
    {
        res.StatusCode = 500;//Internal Server Error
    }
    else if(createcase(deserializedBody).Contains('Successfull'))
    {
        
        res.StatusCode = 204; //Success & no content
        res.responseBody = Blob.valueOf('Successfull');
        
    } */
    
    
    
}
global class records{
    public string timestamp{get;set;}
    public String addcat_name{get;set;}
    public list<fields> fields{get;set;}
    public string merchant_id{get;set;}
}

global class ReturnCase{
    public string CaseNumber{get;set;}
    public string Ticket_id{get;set;}
    
}

public List<fields> fields;

public class fields
{
    public string ApiName{get;set;}
    public string label{get;set;}
    public string value{get;set;}
    public string datatype{get;set;}
}

public static string createcase(records CasRecords) 
{
    string uploadOn='';
   // string message;
    string out='true';
    string chk='';
    string teamName='';
    string TemplateName='';
    boolean CaseMgm=true;
    list <Case> GetCaseNumber = new list<case>();
    ReturnCase ReturnCaseDetails = new ReturnCase();
    List<ReturnCase> ReturnCaseDetailslst= new list<ReturnCase >();
    system.debug('CasRecords   '+CasRecords);
   // try{
        system.debug('CasRecords.merchant_id  '+CasRecords.merchant_id);
        List<MHD2_Doc_Attachment__c> DocAttchLst=new List<MHD2_Doc_Attachment__c>();
        MHD2_order_item_validation objValidation = new MHD2_order_item_validation();

        List<Account> ListOfAccount = [select id,PT_Email__c from Account where PT_Merchant_ID__c =: CasRecords.merchant_id limit 1];

        List<MHD2_Additional_Category__c> listOfAdditionalCat=[SELECT id,Name,Show_Upload__c,MHD2_Call_Me__c,       MHD2_Packaging_Material__c,MHD2_Case_Management__c,MHD2_Upload_Required__c,MHD2_Team_Name__c,MHD2_Call_Me_Team_Name__c,MHD2_Releted_Field_Set__c,MHD2_Knowledge_Bank__c,Sequence__c,MHD2_Sub_Category__c,MHD2_Sub_Category__r.name,
        MHD2_Sub_Category__r.MHD2_Category__r.Name,MHD2_Template_Name__c, MHD2_Sub_Category__r.MHD2_Category__r.MHD2Subcategory_Icon__c, MHD2_Sub_Category__r.MHD2_Category__c, MHD2_isTabbedHelpdesk__c
        FROM MHD2_Additional_Category__c WHERE name=: CasRecords.addcat_name Limit 1];

        if(listOfAdditionalCat != null && listOfAdditionalCat.size() > 0)
        {
            teamName = listOfAdditionalCat[0].MHD2_Team_Name__c;
            CaseMgm = listOfAdditionalCat[0].MHD2_Case_Management__c;
            TemplateName = listOfAdditionalCat[0].MHD2_Template_Name__c;
        }
        system.debug('CaseMgm  '+CaseMgm);
        
        RecordType rt=new RecordType();
        
            if((listOfAdditionalCat.size()>0) && (listOfAdditionalCat[0].MHD2_isTabbedHelpdesk__c == true))
        {
            rt = [SELECT id,name FROM recordtype WHERE name = 'Tagged Helpdesk' and sobjecttype = 'Case' limit 1];
           // origin = 'MHD WEB';
        }
        else
        {
        if (CaseMgm == false)
        {
            //rt = [SELECT id,name FROM recordtype WHERE name='Helpdesk' and sobjecttype = 'Case' limit 1];
            rt = [SELECT id,name FROM recordtype WHERE name='Helpdesk' and sobjecttype = 'Case' limit 1];
            uploadOn = 'aws';
        }
        else
        {
            //rt = [SELECT id,name FROM recordtype WHERE name='Catalog Web MHD2' and sobjecttype = 'Case' limit 1];
              rt = [SELECT id,name FROM recordtype WHERE name='Case Management' and sobjecttype = 'Case' limit 1];
           // uploadOn = 'ftp';
            uploadOn = 'aws';
        }
        }
        Case cas=new Case();

        cas.Merchant_MID__c=CasRecords.merchant_id;
        cas.MHD2_Additional_Category__c=listOfAdditionalCat[0].id;
        cas.UserTeam__c = teamName;
        cas.MHD2_Template_Name__c = TemplateName;
        cas.MHD_Tag__c = 'None';
        if(listOfAdditionalCat.size()>0)
        {
        cas.Ticket_Category__c = listOfAdditionalCat[0].MHD2_Sub_Category__r.MHD2_Category__r.Name;
        cas.Ticket_Sub_category__c = listOfAdditionalCat[0].MHD2_Sub_Category__r.Name;
        cas.MHD2Additional_Category__c =listOfAdditionalCat[0].Name;
        }
        cas.MHD2_Web_Guest_User__c = true;
        system.debug('rt    '+rt.id);
        
        if(rt.id != null)
            cas.RecordTypeId= rt.id;
        
        if(ListOfAccount != null && ListOfAccount.size()>0)
            cas.AccountId = ListOfAccount[0].id;
        
       /* if (uploadOn == 'ftp')
          cas.origin = 'Catalog Web';
        else
            cas.origin = 'MHD Web';*/
        if (rt.name =='Case Management')
            cas.origin = 'Catalog App';
        else
            cas.origin = 'MHD App';
        
        if(!test.isRunningTest())
     {
            for(fields ftemp:CasRecords.fields)
            {
                system.debug('MHD2_ItemId__c debug  '+ftemp.apiname);
                system.debug('ftemp.value debug  '+ftemp.datatype);
                if(ftemp.datatype =='DATE'  )
                {
                    if(ftemp.value!=null && ftemp.value!='')
                        cas.put(ftemp.apiname,date.parse(ftemp.value));
                    else
                        cas.put(ftemp.apiname,null);
                }
                else if((ftemp.apiname=='Order_Id__c') && (ftemp.value==null || ftemp.value==''))
                    cas.put(ftemp.apiname,'0');
                else if(ftemp.apiname=='MHD2_ItemId__c' && (ftemp.value==null || ftemp.value==''))
                {
                    system.debug('ftemp.value debug  '+ftemp.value);
                    cas.put(ftemp.apiname,'0');
                } 
        else if(ftemp.datatype =='BOOLEAN'  )
                    cas.put(ftemp.apiname,boolean.valueof(ftemp.value));
        else if(ftemp.datatype =='DOUBLE'  ){
            if(!string.isblank(ftemp.value))
                    cas.put(ftemp.apiname,decimal.valueof(ftemp.value)); 
            }                   
                else
                    cas.put(ftemp.apiname,ftemp.value);
            }
        
        system.debug('CasRecords.timestamp  '+CasRecords.timestamp);
        system.debug('cas.MHD2_ItemId__c  '+cas.MHD2_ItemId__c);
         system.debug('cas.Order_Id__c  '+cas.Order_Id__c);
         //remove Item Id and Order Id error
       /* if(cas.MHD2_ItemId__c != '0' && cas.Order_Id__c != '0' && cas.MHD2_ItemId__c!=null && cas.Order_Id__c != null)
        {
            objValidation.Mid = cas.Merchant_MID__c;
            objValidation.OrderID = cas.Order_Id__c;
            objValidation.ItemID = cas.MHD2_ItemId__c;
            out = objValidation.getValidateRecord();
            if (out != 'true')
            message = 'Please check Order ID or Item ID is not Valid';
        }
        else if(cas.MHD2_ItemId__c != '0' && cas.MHD2_ItemId__c != null && (cas.Order_Id__c == '0' || cas.Order_Id__c == null))
        {
            objValidation.Mid = cas.Merchant_MID__c;
            objValidation.OrderID = '0';
            objValidation.ItemID = cas.MHD2_ItemId__c;
            out = objValidation.getValidateRecord();
            if (out != 'true')
            message = 'Please check Item ID is not Valid';
        }
        else if ((cas.MHD2_ItemId__c == '0' || cas.MHD2_ItemId__c == null) && cas.Order_Id__c !='0' && cas.Order_Id__c !=null)
        {
            objValidation.Mid = cas.Merchant_MID__c;
            objValidation.OrderID = cas.Order_Id__c;
            objValidation.ItemID = '0';
            out = objValidation.getValidateRecord();
            if (out != 'true')
            message = 'Please check Order ID is not Valid';
        }
        system.debug('out  '+out);  */
        
       if(out=='true')
        {
            
            if((!string.isblank(CasRecords.timestamp)) && rt.name == 'Case Management')
            {
                system.debug('enterrrr'+CasRecords.timestamp);
                List<MHD2_Doc_Attachment__c> DocAttch=[select id,MHD2_Attachment_Upload_URL__c,MHD2_Ticket__c,MHD2_TimeStamp__c from MHD2_Doc_Attachment__c where MHD2_TimeStamp__c=:CasRecords.timestamp];
                
                if(DocAttch.size()>0)
                {
                String s1 = DocAttch[0].MHD2_Attachment_Upload_URL__c;
                //String ss1 = s1.left(s1.lastIndexOf('\\'));
                             
                cas.PTM_Merchant_Catalog_Link__c = s1;
                }
                 cas.Status = 'WIP';
                  cas.PT_Catalog_link__c ='aws';
                  
                Map<String, MHD2_Catalogue_Mapping__c> mapCatalogueType = MHD2_Catalogue_Mapping__c.getAll();
                
                for (MHD2_Catalogue_Mapping__c m  : mapCatalogueType.Values() )
                {
                    System.debug('Name:'+m.Name+'  Catalogue Type:'+m.Catalogue_Type_Name__c);
                    if (cas.PT_Catalog_Type__c == m.Catalogue_Type_Name__c)
                    {
                    cas.PT_Catalog_Type__c = m.name;
                    }
                }
                cas.PT_Merchant_Type__c = 'Web Seller';
                string 
                string key = GenerateUniqueKey();
                 cas.Unique_Identifier__c= key;
                system.debug('cas   '+cas);
                insert Cas;
                GetCaseNumber = [select id,casenumber from case where Unique_Identifier__c = :key limit 1];
                ReturnCaseDetails.ticket_id = GetCaseNumber[0].id;
                ReturnCaseDetails.casenumber = GetCaseNumber[0].casenumber;
                ReturnCaseDetailslst.add(ReturnCaseDetails);
                message=System.JSON.serialize(ReturnCaseDetailslst); //Today
               /* if(message!=null)
                {
                    message = '200';
                }
                else
                {
                    message = '400';
                } */
            }
            else
            {
               string key = GenerateUniqueKey();
                 cas.Unique_Identifier__c= key;
                insert Cas;
                GetCaseNumber = [select id,casenumber from case where Unique_Identifier__c = :key limit 1];
                ReturnCaseDetails.ticket_id = GetCaseNumber[0].id;
                ReturnCaseDetails.casenumber = GetCaseNumber[0].casenumber;
                ReturnCaseDetailslst.add(ReturnCaseDetails);
                message=System.JSON.serialize(ReturnCaseDetailslst); //today
                /*if(message!=null)
                {
                    message = '200';
                }
                else
                {
                    message = '400';
                }
               */
                //message=getStatusCode();
                
            } 
            //message=string.valueof(GetCaseNumber[0].casenumber);
       }
        system.debug('message ================= '+message);
    }
        system.debug('timestamp   '+CasRecords.timestamp);
        if((!string.isblank(CasRecords.timestamp)) && (cas.id!=null || cas.id!=''))
        {
            system.debug('CasRecords.timestamp  '+CasRecords.timestamp);
            List<MHD2_Doc_Attachment__c> DocAttch=[select id,MHD2_Ticket__c,MHD2_TimeStamp__c from MHD2_Doc_Attachment__c where MHD2_TimeStamp__c=:CasRecords.timestamp];
            
            system.debug('DocAttch  '+DocAttch);
            for(MHD2_Doc_Attachment__c DocAttchTemp:DocAttch)
            {
                DocAttchTemp.MHD2_Ticket__c=Cas.id;
                DocAttchLst.add(DocAttchTemp);
            }
            update DocAttchLst;
        }
        
   
    system.debug('message   debug  '+message);
    return message;
}
public static string GenerateUniqueKey(){
    String hashString = '1000' + String.valueOf(Datetime.now().formatGMT('yyyy-MM-dd HH:mm:ss.SSS'));
    Blob hash = Crypto.generateDigest('MD5', Blob.valueOf(hashString));
    String hexDigest = EncodingUtil.convertToHex(hash);

    return hexDigest ;
}
}

I hope,I will get solution here.
Thanks in Advance,
Gulam