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
SahajSahaj 

Only top-level class variables can be declared static

Hi Community,

I am trying to do callout but i am getting the below error.
Only top-level class variables can be declared static Line 39
I know there are lots of other error too as I am beginer. Please help me with the below code
Thanks
global class Moogsoft {
    
    @future (callout=true)
    public static void getMoog(String inc,String moog)
    {
        
        String authT = getAuth();
        system.debug('####'+authToken);
        String firstC = updateMoog1(inc,moog,authToken);
        system.debug('####'+firstC);
        String secondC = updateMoog2(inc,moog,authToken);
        system.debug('####'+secondC);
    }
    
    public static string authToken()
    {
    String URL1 = 'https://events5.hclmtaas.com:8080/graze/v1/authenticate?username=graze&password=graze';
    HttpResponse resData = HTTPCallout(URL1, 'GET');   
    System.debug('Response from Moog: ('+resData.getStatusCode()+')'+resData.getBody());    
    if(resData.getStatusCode()>299) {
     String error = 'Failed getting a request token. HTTP Code = '+resData.getStatusCode()+
                      '. Message: '+resData.getStatus()+'. Response Body: '+resData.getBody();
     system.debug('failed'+error);
    }
     else{
     JSONParser parser = JSON.createParser(resData.getBody());
      while (parser.nextToken() != null) {
      if (parser.getCurrentToken() == JSONToken.FIELD_NAME){  
       String fieldName = parser.getText();
        parser.nextToken();
        if(fieldName == 'auth_token' ) {
        authToken = parser.getText();
        system.debug('++++++++++'+authToken);
            
        }
                    return authtoken;
    }
    
    public static string firstCall(String a1,String b1,String c1)
    {
        String URL2 = 'abcd.com';
        HttpResponse res = HTTPCallout(URL2, 'POST'); 
        System.debug('Response from Code request: ('+res.getStatusCode()+')'+res.getBody());
        if(res.getStatusCode()>299)
        {
           String error = 'Failed from moog.HTTP Code = '+res.getStatusCode()+
                      '. Message: '+res.getStatus()+'. Response Body: '+res.getBody();
             System.debug('##### Failed: '+error);
            return error;
        }
        else{
            return null;
        }
    }
          
        public static string secondCall(String a2,String b2,String c2)
        {
            
            String URL3 = 'qrws.com';
            HttpResponse resT = HTTPCallout(EP2, 'POST'); 
            System.debug('Response from Code request: ('+resT.getStatusCode()+')'+resT.getBody());
        if(resT.getStatusCode()>299)
        {
           String error = 'Failed from moog.HTTP Code = '+resT.getStatusCode()+
                      '. Message: '+resT.getStatus()+'. Response Body: '+resT.getBody();
             System.debug('##### Failed: '+error);
            return error;
        }
        else{
            return null;
        }
            
            
        }
        
        
    public Static HttpResponse HTTPCallout(String EndPoint, String Method) {
         Http h = new Http();
         HttpRequest req= new HttpRequest();
         req.setEndpoint(EndPoint);
         req.setMethod(Method);         
         HttpResponse res = null;        
         res = h.send(req);
         return res;
     }
        
        

}


 

All Answers

pconpcon
This is because you have a missing closing brace.  Try the following:
 
lobal class Moogsoft {
    @future (callout=true)
    public static void getMoog(String inc, String moog) {
        String authT = getAuth();
        system.debug('####'+authToken);
        String firstC = updateMoog1(inc,moog,authToken);
        system.debug('####'+firstC);
        String secondC = updateMoog2(inc,moog,authToken);
        system.debug('####'+secondC);
    }

    public static string authToken() {
        String URL1 = 'https://events5.hclmtaas.com:8080/graze/v1/authenticate?username=graze&password=graze';
        HttpResponse resData = HTTPCallout(URL1, 'GET');
        System.debug('Response from Moog: ('+resData.getStatusCode()+')'+resData.getBody());

        String authToken;

        if(resData.getStatusCode()>299) {
            String error = 'Failed getting a request token. HTTP Code = '+resData.getStatusCode()+
                            '. Message: '+resData.getStatus()+'. Response Body: '+resData.getBody();
            system.debug('failed'+error);
        } else {
            JSONParser parser = JSON.createParser(resData.getBody());
            while (parser.nextToken() != null) {
                if (parser.getCurrentToken() == JSONToken.FIELD_NAME){
                    String fieldName = parser.getText();
                    parser.nextToken();

                    if(fieldName == 'auth_token' ) {
                        authToken = parser.getText();
                        system.debug('++++++++++'+authToken);
                    }
                }
            }
        }

        return authtoken;
    }

    public static string firstCall(String a1,String b1,String c1) {
        String URL2 = 'abcd.com';
        HttpResponse res = HTTPCallout(URL2, 'POST');
        System.debug('Response from Code request: ('+res.getStatusCode()+')'+res.getBody());

        if(res.getStatusCode()>299) {
            String error = 'Failed from moog.HTTP Code = '+res.getStatusCode()+
                        '. Message: '+res.getStatus()+'. Response Body: '+res.getBody();
            System.debug('##### Failed: '+error);
            return error;
        }

        return null;
    }

    public static string secondCall(String a2,String b2,String c2) {
        String URL3 = 'qrws.com';
        HttpResponse resT = HTTPCallout(EP2, 'POST');
        System.debug('Response from Code request: ('+resT.getStatusCode()+')'+resT.getBody());

        if(resT.getStatusCode()>299) {
            String error = 'Failed from moog.HTTP Code = '+resT.getStatusCode()+
                        '. Message: '+resT.getStatus()+'. Response Body: '+resT.getBody();
            System.debug('##### Failed: '+error);
            return error;
        }

        return null;
    }

    public Static HttpResponse HTTPCallout(String EndPoint, String Method) {
        Http h = new Http();
        HttpRequest req= new HttpRequest();
        req.setEndpoint(EndPoint);
        req.setMethod(Method);
        HttpResponse res = null;
        res = h.send(req);
        return res;
    }
}

This may not work because you do not have updateMoog1 or updateMoog2 defined.  As well as other variables.
SahajSahaj
Thanks for your response, It worked for me. PFB my updated code.
Can you please let me know how can i make my code more mature and i want to write test class for this code,so please share some reference
Thanks again.
Global class Moogsoft {
    @future (callout=true)
    public static void getMoog(Integer inc, Integer moog) {
        String authT = authToken();
        system.debug('####'+authT);
        String firstC = firstCall(inc,moog,authT);
        system.debug('####'+firstC);
        String secondC = secondCall(inc,moog,authT);
        system.debug('####'+secondC);
    }

    public static string authToken() {
        String URL1 = 'https://events5.hclmtaas.com:8080/graze/v1/authenticate?username=graze&password=graze';
        HttpResponse resData = HTTPCallout(URL1, 'GET');
        System.debug('Response from Moog: ('+resData.getStatusCode()+')'+resData.getBody());

        String authToken;

        if(resData.getStatusCode()>299) {
            String error = 'Failed getting a request token. HTTP Code = '+resData.getStatusCode()+
                            '. Message: '+resData.getStatus()+'. Response Body: '+resData.getBody();
            system.debug('failed'+error);
        } else {
            JSONParser parser = JSON.createParser(resData.getBody());
            while (parser.nextToken() != null) {
                if (parser.getCurrentToken() == JSONToken.FIELD_NAME){
                    String fieldName = parser.getText();
                    parser.nextToken();

                    if(fieldName == 'auth_token' ) {
                        authToken = parser.getText();
                        system.debug('++++++++++'+authToken);
                    }
                }
            }
        }

        return authtoken;
    }

    public static string firstCall(Integer a1,Integer b1,String c1) {
        Integer aa = a1;
        Integer bb = b1;
        String cc = c1;
        System.debug('####'+cc);
        String URL2 = 'https://events5.hclmtaas.com:8080/graze/v1/addSigCorrelationInfo?auth_token='+cc+'&sitn_id='+bb+'&service_name=Remedyforce&resource_id='+aa+'';
        HttpResponse res = HTTPCallout(URL2, 'POST');
        System.debug('Response from Code request: ('+res.getStatusCode()+')'+res.getBody());

        if(res.getStatusCode()>299) {
            String error = 'Request failed error.HTTP Code = '+res.getStatusCode()+
                        '. Message: '+res.getStatus()+'. Response Body: '+res.getBody();
            System.debug('##### Failed: '+error);
            return error;
        }
            
        String suc ='successfull';
        return suc;
    }

    public static string secondCall(Integer a2,Integer b2,String c2) {
        Integer aa = a2;
        Integer bb = b2;
        String cc =  c2;
        String URL3 = 'https://events5.hclmtaas.com:8080/graze/v1/addSituationCustomInfo?auth_token='+cc+'&sitn_id='+bb+'&custom_info={incrf:'+aa+'}';
        HttpResponse resT = HTTPCallout(URL3, 'POST');
        System.debug('Response from Code request: ('+resT.getStatusCode()+')'+resT.getBody());

        if(resT.getStatusCode()>299) {
            String error = 'Request failed error.HTTP Code = '+resT.getStatusCode()+
                        '. Message: '+resT.getStatus()+'. Response Body: '+resT.getBody();
            System.debug('##### Failed: '+error);
            return error;
        }

        String suc ='successfull';
        return suc;
    }

    public Static HttpResponse HTTPCallout(String EndPoint, String Method) {
        Http h = new Http();
        HttpRequest req= new HttpRequest();
        req.setEndpoint(EndPoint);
        req.setMethod(Method);
        HttpResponse res = null;
        res = h.send(req);
        return res;
    }
}