AmericaSCORESBayArea / salesforce-data-api

This project is based on Mulesoft Dataweave and Salesforce to provide secure, reliable, API access for all the Scores apps and projects. It is hosted on Anypoint and acts as the transactional hub, in concert with the authentication API
3 stars 1 forks source link

GET /teamSeasons - Date Parameter Issue #203

Closed AleksandrMolchagin closed 4 weeks ago

AleksandrMolchagin commented 1 month ago

Description:

While executing the GET request to /teamSeasons, an error occurs when not providing date as a parameter. The specific error message is as follows:

INFO  2024-05-30 08:15:08,746 [[MuleRuntime].uber.03: [salesforce-data-api-1.0.0-SNAPSHOT-mule-application].get:\teamSeasons:salesforce-data-api-config.CPU_LITE @57b80e7] [processor: entry-flow/processors/0; event: 419f3480-1e7e-11ef-a05c-a07817b1a392] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request received for GET /api-internal/teamSeasons - Payload 
INFO  2024-05-30 08:15:08,748 [[MuleRuntime].uber.02: [salesforce-data-api-1.0.0-SNAPSHOT-mule-application].get:\teamSeasons:salesforce-data-api-config.CPU_INTENSIVE @2b55d97c] [processor: get:\teamSeasons:salesforce-data-api-config/processors/1; event: 419f3480-1e7e-11ef-a05c-a07817b1a392] org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Method and Request Path stored as vars: method=GET, request path=/api-internal/teamSeasons. queryparams={}
ERROR 2024-05-30 08:15:08,751 [[MuleRuntime].uber.04: [salesforce-data-api-1.0.0-SNAPSHOT-mule-application].get:\teamSeasons:salesforce-data-api-config.BLOCKING @8bbf6ce] [processor: ; event: 419f3480-1e7e-11ef-a05c-a07817b1a392] org.mule.runtime.core.internal.exception.OnErrorPropagateHandler: 
********************************************************************************
Message               : "Cannot coerce Null { encoding: UTF-8, mediaType: application/java; charset=UTF-8, mimeType: application/java, raw: null } (null as Null {encoding: "UTF-8", mediaType: "application/java; charset=UTF-8"...) to Date { format: yyyy-MM-dd }

4| date: vars.date as Date {format: 'yyyy-MM-dd'}
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Trace:
  at anonymous::main (line: 4, column: 7)" evaluating expression: "output application/java
---
{
date: vars.date as Date {format: 'yyyy-MM-dd'}
}".
Element               : get:\teamSeasons:salesforce-data-api-config/processors/3 @ salesforce-data-api-1.0.0-SNAPSHOT-mule-application:teamseasons.xml:101 (Query)
Element DSL           : <salesforce:query doc:name="Query" doc:id="09cc2d2c-6b43-49fe-96e1-534e348b7af8" config-ref="Salesforce_Config">
<salesforce:salesforce-query><![CDATA[
SELECT 
                                Anticipated_Players_Enrollment__c,
                                Coach_Soccer__c,
                                Coach_Writing__c,
                                Season__r.Id,
                                CreatedById,
                                CreatedDate,
                                Date_Last_Session_Attended__c,
                                Id,
                                IsDeleted,
                                LastActivityDate,
                                LastModifiedById,
                                LastModifiedDate,
                                LastReferencedDate,
                                LastViewedDate,
                                Name,
                                Number_of_Attendance_Completed__c,
                                Number_of_Attendance_Incomplete__c,
                                Number_of_Students_Absent__c,
                                Number_of_Students_Present__c,
                                Number_of_Team_Seasons__c,
                                Partnership__c,
                                Percent_of_Attendance_Completed__c,
                                Percent_of_Students_Present__c,
                                Schedule__c,
                                School_Site__c,
                                SCORES_Program_Coordinator__r.Name,
                                SCORES_Program_Manager__r.Name,
                                Season_End_Date__c,
                                Season_Start_Date__c,
                                Season__c,
                                SystemModstamp,
                                Team__c,
                                Total_Number_of_Players__c,
                                Total_Number_of_Sessions__c,
                                Coach_Soccer__r.Name,
                                Coach_Writing__r.Name,
                                Team__r.Name,
                                Season__r.Name,
                                Team__r.School_Site__r.Region__c 
                        FROM 
                                Team_Season__c 
                        WHERE 
                                Season_Start_Date__c = :date 
                        ORDER BY 
                                Season_End_Date__c DESC
]]></salesforce:salesforce-query>
<salesforce:parameters><![CDATA[
#[output application/java
---
{
        date: vars.date as Date {format: 'yyyy-MM-dd'}
}]
]]></salesforce:parameters>
</salesforce:query>
Error type            : MULE:EXPRESSION
FlowStack             : at get:\teamSeasons:salesforce-data-api-config(get:\teamSeasons:salesforce-data-api-config/processors/3 @ salesforce-data-api-1.0.0-SNAPSHOT-mule-application:teamseasons.xml:101 (Query))
at salesforce-data-api-main(salesforce-data-api-main/processors/0 @ salesforce-data-api-1.0.0-SNAPSHOT-mule-application:main-api.xml:13)

  (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************

ERROR 2024-05-30 08:15:08,751 [[MuleRuntime].uber.04: [salesforce-data-api-1.0.0-SNAPSHOT-mule-application].get:\teamSeasons:salesforce-data-api-config.BLOCKING @8bbf6ce] [processor: ; event: 419f3480-1e7e-11ef-a05c-a07817b1a392] org.mule.runtime.core.internal.exception.OnErrorPropagateHandler: 
********************************************************************************
Message               : "Cannot coerce Null { encoding: UTF-8, mediaType: application/java; charset=UTF-8, mimeType: application/java, raw: null } (null as Null {encoding: "UTF-8", mediaType: "application/java; charset=UTF-8"...) to Date { format: yyyy-MM-dd }

4| date: vars.date as Date {format: 'yyyy-MM-dd'}
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Trace:
  at anonymous::main (line: 4, column: 7)" evaluating expression: "output application/java
---
{
date: vars.date as Date {format: 'yyyy-MM-dd'}
}".
Element               : (None)
Element DSL           : (None)
Error type            : MULE:EXPRESSION
FlowStack             : (None)

  (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

Steps to Reproduce:

Make a GET request to /teamSeasons without providing a valid date.

Expected Behavior: The application should handle null values by returning a meaningful error message to the client.

AleksandrMolchagin commented 4 weeks ago

Fixed by #207