Tuesday, 23 April 2019

Platform Developer I Certification Maintenance (Spring '19)

1.Which Apex interface can be implemented to allow My Domain users to log in with         something other than their username and password?
A.auth.MyDomainLogindiscoveryHandler

  2. With Spring '19, which method returns a list of OrgLimit instances used to investigate limits and their names, current value, and maximum value?
     A. getAll() from the system.OrgLimits Class

      3. With Spring '19, which properties of an unhandled Apex exception are available in Event Monitoring log files?
     A.Excepttion message, exception type name and stack trace

    4. Which field of the SandboxInfo object is a reference to the ID of the SandboxInfo that served as the source org for a cloned sandbox?
    A. SourceId

    5. You created a custom metadata type to handle your company's warranty policy. The custom metadata type's label is WarrantyRule. For it, you created a custom field labeled Warranty and a metadata record labeled Gold. What is the correct syntax to reference the value stored in the Gold metadata record?
    A. ScustomMetadata.Warrantyrule___mdt.gold.Warranty__c


    Step2: hands on practice
  • Create a new custom field on the Contact object to establish a field that contains sensitive information about the secret keys of our customers.
    • Field Label: Secret Key
    • Type: Text
    • Field Name: Secret_Key
    • Length: 255
  • Uncheck the Visible box for the “Standard User” profile when defining field-level security.
SecureApexRest.apxc


@RestResource(urlMapping='/secureApexRest')
global with sharing class SecureApexRest {
    @HttpGet
       global static Contact doGet(){
        Id recordId = RestContext.request.params.get('id');
        Contact result;
        if (recordId == null){
            throw new FunctionalException('Id parameter is required');
        }
            List<Contact> results;
              try{
                   results = [SELECT id, Name, Secret_Key__c FROM Contact WHERE                                                          id=:recordId WITH SECURITY_ENFORCED];
                   }catch(QueryException e){}
        
                if (!results.isEmpty()) {
                        result = results[0];
                  }
                  return result;
    }
    public class FunctionalException extends Exception{}
    public class SecurityException extends Exception{}
}




No comments: