Skip to content

Commit 5a341f7

Browse files
Modify GET /tasks to add new query params: teamSeasonId, seasonId, startDate, endDate
1 parent da59c69 commit 5a341f7

File tree

3 files changed

+95
-38
lines changed

3 files changed

+95
-38
lines changed

docs/Scores - Salesforce Data API.postman_collection.json

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2168,22 +2168,20 @@
21682168
}
21692169
},
21702170
"url": {
2171-
"raw": "{{base_url_s}}/tasks?contactId=003cX000008IZnXQAW&sessionId=a0pcX0000008y3pQAA",
2171+
"raw": "{{base_url_s}}/tasks?contactId=003cX000008IZnXQAW&sessionId=a0pcX0000008y3pQAA&teamSeasonId=a0qUQ000003FNvRYAW&seasonId=a0oUQ000001MNBtYAO&startDate=2025-05-03&endDate=2024-05-03",
21722172
"host": [
21732173
"{{base_url_s}}"
21742174
],
21752175
"path": [
21762176
"tasks"
21772177
],
21782178
"query": [
2179-
{
2180-
"key": "contactId",
2181-
"value": "003cX000008IZnXQAW"
2182-
},
2183-
{
2184-
"key": "sessionId",
2185-
"value": "a0pcX0000008y3pQAA"
2186-
}
2179+
{ "key": "contactId", "value": "003cX000008IZnXQAW" },
2180+
{ "key": "sessionId", "value": "a0pcX0000008y3pQAA" },
2181+
{ "key": "teamSeasonId", "value": "a0qUQ000003FNvRYAW" },
2182+
{ "key": "seasonId", "value": "a0oUQ000001MNBtYAO" },
2183+
{ "key": "startDate", "value": "2025-05-03" },
2184+
{ "key": "endDate", "value": "2024-05-03" }
21872185
]
21882186
},
21892187
"description": "BODY/JSON:\n\n{ \n\"TeamSeasonName\": \"\", \n\"TeamId\": \"\", \n\"SeasonId\": \"\", \n\"SchoolSite\": \"\", \n\"Partnership\": \"\", \n\"TotalNoOfPlayers\": 0, \n\"TotalNoOfSessions\": 0, \n\"SeasonStartDate\": \"\", \n\"SeasonEndDate\": \"\", \n\"CoachSoccer\": \"\", \n\"CoachWriting\": \"\", \n\"ProgramCoordinator\": \"\", \n\"ProgramManager\": \"\" \n}"

src/main/mule/tasks.xml

Lines changed: 72 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,64 @@
11
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:salesforce="http://www.mulesoft.org/schema/mule/salesforce" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/salesforce http://www.mulesoft.org/schema/mule/salesforce/current/mule-salesforce.xsd http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
22
<flow name="get:\tasks:salesforce-data-api-config">
33
<logger level="INFO" message="get:\tasks:salesforce-data-api-config"></logger>
4-
<ee:transform doc:id="7e56aada-f163-47f0-8ffc-213f3acd09a8" doc:name="Store Query parameters">
4+
<set-variable value="#[attributes.queryParams.'contactId']" doc:name='Set "contactId"' doc:id="9edba73a-8441-465f-ab43-02a563d58f06" variableName="contactId" />
5+
<set-variable value="#[attributes.queryParams.'sessionId']" doc:name='Set "sessionId"' doc:id="15c7e2f2-87f5-4235-861f-7b758e9374e3" variableName="sessionId"/>
6+
<set-variable value="#[attributes.queryParams.'seasonId']" doc:name='Set "seasonId"' doc:id="3f28c949-f7c8-4538-9995-c72483a940fa" variableName="seasonId" />
7+
<set-variable value="#[attributes.queryParams.'teamSeasonId']" doc:name='Set "teamSeasonId"' doc:id="6f013944-30d7-4750-9967-11eb07fb78d1" variableName="teamSeasonId" />
8+
<set-variable value="#[attributes.queryParams.'startDate']" doc:name='Set "startDate"' doc:id="64150931-2428-43e4-94f9-ffd231cc8b27" variableName="startDate" />
9+
<set-variable value="#[attributes.queryParams.'endDate']" doc:name='Set "endDate"' doc:id="324821c3-2447-4d4d-adca-d15fca536163" variableName="endDate" />
10+
<ee:transform doc:id="7e56aada-f163-47f0-8ffc-213f3ecd09a8" doc:name="Prepare Query Condition">
511
<ee:variables>
6-
<ee:set-variable variableName="contactId">
7-
<![CDATA[attributes.queryParams.'contactId']]>
8-
</ee:set-variable>
9-
<ee:set-variable variableName="sessionId">
10-
<![CDATA[attributes.queryParams.'sessionId']]>
11-
</ee:set-variable>
12-
</ee:variables>
13-
</ee:transform>
14-
<ee:transform doc:id="7e56aada-f163-47f0-8ffc-213f3ecd09a8" doc:name="Prepare Query Condition">
15-
<ee:variables>
16-
<ee:set-variable variableName="query">
17-
<![CDATA[
18-
%dw 2.0
19-
output application/json
20-
---
21-
if (vars.sessionId != null)
22-
"Assigned_To__c = '" ++ (vars.contactId default "") ++ "' AND Session__c = '" ++ (vars.sessionId default "") ++ "'"
23-
else
24-
"Assigned_To__c = '" ++ (vars.contactId default "") ++ "'"
25-
]]>
12+
<ee:set-variable variableName="query"><![CDATA[
13+
%dw 2.0
14+
output application/json
15+
16+
var assignedToCond =
17+
if (vars.contactId != null)
18+
"Assigned_To__c = '" ++ (vars.contactId default "not_provided") ++ "'"
19+
else
20+
""
21+
22+
var sessionCond =
23+
if (vars.sessionId != null)
24+
"Session__c = '" ++ (vars.sessionId default "not_provided") ++ "'"
25+
else
26+
""
27+
28+
var teamSeasonCond =
29+
if (vars.teamSeasonId != null)
30+
"Session__r.Team_Season__c = '" ++ (vars.teamSeasonId default "not_provided") ++ "'"
31+
else
32+
""
33+
34+
var seasonCond =
35+
if (vars.seasonId != null)
36+
"Session__r.Team_Season__r.Season__c = '" ++ (vars.seasonId default "not_provided") ++ "'"
37+
else
38+
""
39+
40+
var sessionStartDateCond =
41+
if (vars.startDate != null)
42+
"Session__r.Session_Date__c >= " ++ (vars.startDate default "not_provided")
43+
else
44+
""
45+
46+
var sessionEndDateCond =
47+
if (vars.endDate != null)
48+
"Session__r.Session_Date__c <= " ++ (vars.endDate default "not_provided")
49+
else
50+
""
51+
52+
var conditions =
53+
[assignedToCond, sessionCond, teamSeasonCond, seasonCond, sessionStartDateCond, sessionEndDateCond]
54+
filter (item) -> item != ""
55+
56+
---
57+
conditions joinBy " AND "]]>
2658
</ee:set-variable>
2759
</ee:variables>
2860
</ee:transform>
29-
<salesforce:query config-ref="Salesforce_Config" doc:id="1d085a1a-e15b-412b-a836-1014557a9abd" doc:name="Query to get tasks by contactId">
61+
<salesforce:query config-ref="Salesforce_Config" doc:id="1d085a1a-e15b-412b-a836-1014557a9abd" doc:name="Query to get tasks by contactId">
3062
<salesforce:salesforce-query><![CDATA[
3163
SELECT
3264
Id,
@@ -43,9 +75,12 @@
4375
Priority_Icon__c,
4476
Resource_Link__c,
4577
Session__c,
78+
Session__r.Session_Date__c,
4679
Name,
4780
Task_Status__c,
48-
Task_Type__c
81+
Task_Type__c,
82+
Session__r.Team_Season__c,
83+
Session__r.Team_Season__r.Season__c
4984
FROM
5085
SCORES_Task__c
5186
WHERE
@@ -59,10 +94,9 @@
5994
}]]]>
6095
</salesforce:parameters>
6196
</salesforce:query>
62-
<ee:transform doc:id="cca12834-e1ee-4339-90ef-91c9be555af9" doc:name="Transform Message">
97+
<ee:transform doc:id="cca12834-e1ee-4339-90ef-91c9be555af9" doc:name="Transform Message">
6398
<ee:message>
64-
<ee:set-payload>
65-
<![CDATA[%dw 2.0
99+
<ee:set-payload><![CDATA[%dw 2.0
66100
output application/json
67101
---
68102
payload map ( payload01 , indexOfpayload01 ) -> {
@@ -80,9 +114,12 @@
80114
"PriorityIcon": payload01.Priority_Icon__c as String default "",
81115
"ResourceLink": payload01.Resource_Link__c as String default "",
82116
"Session": payload01.Session__c as String default "",
117+
"SessionDate": payload01.Session__r.Session_Date__c as String default "",
83118
"Name": payload01.Name as String default "",
84119
"TaskStatus": payload01.Task_Status__c as String default "",
85-
"TaskType": payload01.Task_Type__c as String default ""
120+
"TaskType": payload01.Task_Type__c as String default "",
121+
"TeamSeason": payload01.Session__r.Team_Season__c as String default "",
122+
"Season": payload01.Session__r.Team_Season__r.Season__c as String default ""
86123
}]]>
87124
</ee:set-payload>
88125
</ee:message>
@@ -112,9 +149,12 @@
112149
Priority_Icon__c,
113150
Resource_Link__c,
114151
Session__c,
152+
Session__r.Session_Date__c,
115153
Name,
116154
Task_Status__c,
117-
Task_Type__c
155+
Task_Type__c,
156+
Session__r.Team_Season__c,
157+
Session__r.Team_Season__r.Season__c
118158
FROM
119159
SCORES_Task__c
120160
WHERE
@@ -147,9 +187,12 @@ payload map ( payload01 , indexOfpayload01 ) -> {
147187
"PriorityIcon": payload01.Priority_Icon__c as String default "",
148188
"ResourceLink": payload01.Resource_Link__c as String default "",
149189
"Session": payload01.Session__c as String default "",
190+
"SessionDate": payload01.Session__r.Session_Date__c as String default "",
150191
"Name": payload01.Name as String default "",
151192
"TaskStatus": payload01.Task_Status__c as String default "",
152-
"TaskType": payload01.Task_Type__c as String default ""
193+
"TaskType": payload01.Task_Type__c as String default "",
194+
"TeamSeason": payload01.Session__r.Team_Season__c,
195+
"Season": payload01.Session__r.Team_Season__r.Season__c
153196
}]]></ee:set-payload>
154197
</ee:message>
155198
</ee:transform>

src/main/resources/api/salesforce-data-api.raml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,6 +1216,22 @@ uses:
12161216
description: The ID of the session to retrieve tasks for
12171217
type: string
12181218
required: false
1219+
teamSeasonId:
1220+
description: The ID of the team season to retrieve tasks for
1221+
type: string
1222+
required: false
1223+
seasonId:
1224+
description: The ID of the season to retrieve tasks for
1225+
type: string
1226+
required: false
1227+
startDate:
1228+
description: The start date to filter tasks (format: YYYY-MM-DD)
1229+
type: string
1230+
required: false
1231+
endDate:
1232+
description: The end date to filter tasks (format: YYYY-MM-DD)
1233+
type: string
1234+
required: false
12191235
responses:
12201236
200:
12211237
body:

0 commit comments

Comments
 (0)