Git Product home page Git Product logo

salesforce-data-api's People

Contributors

aleksandrmolchagin avatar arch-jn avatar archana-llamas avatar code2siva avatar critiqalpete avatar ignacioals avatar kutadepa avatar lautirozen avatar matthewjerome avatar nismail1 avatar shivam-khandelwal-sf avatar shivam-khandelwal15 avatar smankala-mulesoft avatar speedy-guacamole avatar tharunkumarreddypolu avatar zombiewoofers avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

navisheree

salesforce-data-api's Issues

(Contact Endpoint) Create/Update Students should always have Contact_Type__c set to SCORES Student and a School Account Linked

Two Requirements of the Program custom object schema and business logic:

A. The Contact_Type__C impacts various views in Salesforce so we need it set to the correct (picklist constrained) value, which is "SCORES Student"

B. All student Contact records need to be associated with a valid School Account in the Contact.AccountID field
Valid Examples can be seen as SELECT Name, Site_Type__c FROM Account WHERE Site_Type__c != ''
Ideally, the API will return an error "Student Record Requires Valid Account Type'Site' "

We can test this in conjunction with a record creation using the Sync_Robot or the Student Registration app.

DATA REQUIREMENTS

  • Contact_Type__c always = 'SCORES Student'
  • RecordTypeId always = '01250000000VBbXAAW'
  • AccountID can be from a list on the Client but 1) must always be set (not null) and if for some reason no value is provided set to 0051T000008gANBQA2 (America Scores Bay Area account)

endpoint supports create/update of sessions

Here is an example of possible fields that are extracted from the District System.

In the District System, ServiceDateID is the Key ID while in Salesforce, the Key ID should be a combination of Salesforce Team Season ID + Date. This assumes that there will only be max of one session per day.

{
	"_id" : "district_1_87654321",
	"ServiceDate" : "Tuesday, October 27, 2020",
	"BeginTime" : "3:00 PM",
	"EndTime" : "4:00 PM",
	"ServiceDateID" : "87654321",
	"district" : "district_1",
	"ActivityType" : "Soccer Practice",
	"ActivityName" : "School Name 2020-2021",
	"ActivityCategory" : "Skill Building/Enrichment",
	"ActivityDescription" : "Coaches will lead soccer practices",
	"ActivitySite" : "Virtual Learning",
	"ActivityID" : "1234567890"
}

get/contacts endpoint does not return contact id

Dependency
AmericaScores-CoachApp

Is your feature request related to a problem? Please describe.
We need the coach app to be able to search and enroll students to a Team Season.

Describe the solution you'd like
We need the get/contacts endpoint to return contactId field to then enroll that Student with the enrollments endpoint using that id.

The endpoint(s) supporting lists of teams by coachID can provide a list of teams by Team:Account:Region for the App to display to an active coach, limiting their visibility to only regions they are already assigned to

Refer to the app ticket for more detail:
AmericaSCORESBayArea/AmericaScores-CoachApp#23

This is particularly important to supporting different contract organizations, such as school districts .

A coach may be contracted to only one school district, or several, but in either case, they should see only teams in regions they are already active.

Sessions endpoint needs to return assessment records in addition to attendance

Dependency
Coach App

The app will create assessment records which link a student to a session to an assessment value/response.
The coach needs to quickly see for which students there are records so they can complete the data collection for the entire roster, much like how the app displays attendance status.

Ideally the endpoint returns a list based on the session roster. We should follow the same pattern used in the creation and query of attendance records, combining student and session ID's into a unique. This way potential for multiple assessment records per session is protected (presumably using dynamic third value from the DB).

Team Season Endpoint can be filtered by Season (Mobile App)

Related issue: AmericaSCORESBayArea/AmericaScores-CoachApp#35

Coach needs to see (by default) the latest/current season.
Current season, by definition, has a start date before today() and end date after. The user may need to select a prior season, especially in the days following the end of that season.

  1. The List of Seasons needs to be provided to the App to support selection
  2. The Team Season request will include, optionally, a seasonID

The choice of season can be determined by the Mobile App logic.

(bug) API Support Needed

Submitting a new request to SANDBOX timesout :

HTTP POST on resource ‘http://mule-worker-internal-salesforce-data-api.us-e2.cloudhub.io:8091/api-internal/contacts’ failed: Timeout exceeded.“”

Equivalent request in PROD (eg, expected behavior) :

data: { ContactId: ‘0031T00004IVgk1QAD’ }

API Support for field-level mappings needs a technical design

Our desire is to maintain the mappings in a human-readable github text file.
Also need instructions for how we can add new mappings for external reporting/sync.
Assumptions:
mapping logic in DataWeave implemented on Anypoint
non-engineer can check and modify the mapping values

Api returns sessions and Teams with region null

Dependency
What app or project needs this?
America SCORES Coach App.
**Is your feature request related to a problem?
Receiving Sessions and Teams with region null makes the app crash, because we are actually using regions to filter for each affliate.

Describe the solution you'd like
The API shouldn´t return teams and sessions with region NULL

externalStudentId and externalStudentIdSource fields not connected in the /contacts GET API

Dependency
Sync Robot

Is your feature request related to a problem? Please describe.
The updated implementation of the /contacts GET API still requires firstName and lastName in the request body and the response is not affected by the values entered in externalStudentId and externalStudentIdSource

Describe the solution you'd like
run in the mode [1] firstName and lastName or [2] externalStudentId and externalStudentIdSource

Add support for families with multiple student contacts to add an update

The Registration flow calls for two situations where families with multiple students have a requirement:
A. AmericaSCORESBayArea/student-registration#105

B. AmericaSCORESBayArea/student-registration#106

Case B will likely require a change in the schema.
Proposed change is addition of a "Guardian" field to the Student Contact Record and the addition of a Contact Type: Guardian. The Student field will contain the contactID of the guardian record

Record Locks during Patch request linked to indeterminate/silent fails from Sync Robot

The Sync-Robot requests include an update/patch to the Attendance object. See attached.
It appears that some of these fail due to a record lock issue.
Observations:

  • When a sync is run a second time, some updates are completed
  • Reducing the number of requests per batch and/or adding a delay between requests is not yet clearly correcting the issue
  • The Robot is not picking up a failed/incomplete response from the API which would be valuable to tracking this condition
    Expectations:
  • The API should support the specified request payload and frequency
  • The API should include a response that will help flag and manage these issues in the future

Needs:

  • Why is this record lock occurring? (presumably a Salesforce behavior)
  • Is the API performing to spec?
  • What, if any, changes need to be made on the client/request side to avoid this?
  • What messaging/response needs to be identified by the client (Sync-Robot) to detect and respond accordingly? Does something need to be added to the API to support this?
    API_record_lock_logentry.txt

Contact endpoints can return mapped values for demographic fields based on an external system argument in the request

Problem:
Different external systems supported by the Sync Robot accept different values for ethnicity, gender etc. Registration forms and other related inputs must depend on simplified option lists.
The Robot needs to transmit the values for fields that can be accepted by those systems.

Solution
API based rules provide mappings based on an option value in the request:External_System (String)
Maintaining the mappings in a single place where it is appropriate and can be managed through a prop file or equivalent, under version control.

Example

  1. A parent of a new Scores Student is required to select an ethnicity to register. (required by that same school district).
  2. They select "Hispanic/Latinx" from the form provided by Scores
  3. Publishing this record to that student's home schools district, the system accepts only the following: "Latino/Latina", "Hispanic of European Descent", "Central or South American"
  4. The sync robot sends a request for the contact record using the contact ID and an argument string identifying the destination mapping "DCYF" (example)
  5. The API retrieves the record, as stored, and based on the correct mapping rule for that field, returns, "Latino/Latina" which is acceptable to that system and agreed by system stakeholders (Program and District officials)
  6. When the record is updated/PATCH, the system has a reverse mapping rule that stores the value "Hispanic/Latinx" based on the source system argument and value sent "Latino/Latina"
  7. A log event reports the mapping took place including original and mapped values.

Dependencies
AmericaSCORESBayArea/student-registration#197

AmericaSCORESBayArea/External-Sync-Robot#166

Add Support for Student searching with auto-suggested choices

The Coach app needs support from the API when searching Students to get auto-suggested options.

Refer to: AmericaSCORESBayArea/AmericaScores-CoachApp#7

For this an optional approach would be that every time the Coach types a letter in the Student search bar from the app, this would make a call to the API that searches for coincidences in Student name and returns a limited amount of results for the suggestions (5 or 6).

Another option could be to get the list of all students and then filter the results inside the app, but the payload from the call might be too big.

Add Other_Ethnicity to the Contact endpoint(s)

Dependency
Web Registration

We need to support write-in values

We expect this field to be allowed in the input as the Other option is supported by the DB and will return an error in the case that the user chooses Other and no value is in the Write-in

Student Registration Endpoint needs to allow contact creation even if it sees a duplicate and respond with explanation when required fields are missing or salesforce rejects a duplicate contact

Dependency

This depends on #114 being completed

Acceptable API Responses

A. "Matching Record Found"
B. "Contact Created"
C. "Field Error: {fieldname}"

Present Situation

The Student Registration app fails to create a new record as a result of a 500 error.
The Data API log examples posted below.
Duplicate Contact
8:25:10.701 02/23/2022 Worker-0 [MuleRuntime].uber.11120: [salesforce-data-api-prod].post:\contacts:application\json:salesforce-data-api-config.BLOCKING @353e5d67 INFO
event:fd1cf590-9518-11ec-b2a3-06236ed42cd0 Contact with same name and DOB has been found
18:25:10.706 02/23/2022 Worker-0 [MuleRuntime].uber.11119: [salesforce-data-api-prod].post:\contacts:application\json:salesforce-data-api-config.CPU_INTENSIVE @5f459161 ERROR
event:fd1cf590-9518-11ec-b2a3-06236ed42cd0

This may be a result of an invalid (null) value sent to the Student Registration method of the /Contact endpoint, missing Contact_type and School_Site_ID. If that is the case, the API needs to return a graceful error message:
"Missing values for [field list]"

the cause of the fail has to be addressed in the requesting app as well
AmericaSCORESBayArea/student-registration#164

09:40:39.530 11/02/2021 Worker-0 [MuleRuntime].uber.1984: [salesforce-data-api-prod].salesforce-data-api-main.CPU_LITE @7a4c7b62 ERROR
event:d92290f0-3bea-11ec-bfee-02bb758fdc02

Invalid value for a key field


Message : required key [SchoolSiteId] not found
required key [ContactType] not found
Element : salesforce-data-api-main/processors/0 @ salesforce-data-api-prod:salesforce-data-api.xml:48
Element DSL : <apikit:router config-ref="salesforce-data-api-config"></apikit:router>
Error type : APIKIT:BAD_REQUEST
FlowStack : at salesforce-data-api-main(salesforce-data-api-main/processors/0 @ salesforce-data-api-prod:salesforce-data-api.xml:48)
Payload Type : org.mule.runtime.core.internal.streaming.bytes.ManagedCursorStreamProvider

Root Exception stack trace:
org.mule.module.apikit.api.exception.BadRequestException: required key [SchoolSiteId] not found
required key [ContactType] not found
at org.mule.module.apikit.validation.body.schema.v2.RestSchemaV2Validator.validate(RestSchemaV2Validator.java:32)
at org.mule.module.apikit.validation.BodyValidator.validateAsString(BodyValidator.java:128)
at org.mule.module.apikit.validation.BodyValidator.validate(BodyValidator.java:85)
at org.mule.module.apikit.validation.RestRequestValidator.validate(RestRequestValidator.java:60)
at org.mule.module.apikit.api.validation.RequestValidator.validate(RequestValidator.java:44)
at org.mule.module.apikit.api.validation.RequestValidator.validate(RequestValidator.java:29)
at org.mule.module.apikit.Router.doRoute(Router.java:165)
at org.mule.module.apikit.Router.processEvent(Router.java:150)
at org.mule.module.apikit.Router.processWithExtension(Router.java:138)
at org.mule.runtime.core.internal.util.rx.RxUtils.lambda$flatMap$13(RxUtils.java:334)
at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:381)
at org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain$2.onNext(AbstractMessageProcessorChain.java:432)
at org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain$2.onNext(AbstractMessageProcessorChain.java:427)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:351)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204)
at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:447)
at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:534)
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.mule.service.scheduler.internal.AbstractRunnableFutureDecorator.doRun(AbstractRunnableFutureDecorator.java:111)
at org.mule.service.scheduler.internal.RunnableFutureDecorator.run(RunnableFutureDecorator.java:54)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Registrations with Names Containing Apostrophe's Causes Error

Dependency
Sync Robot

Is your feature request related to a problem? Please describe.
When registering a new student with an apostrophe in their name, the single quote character causes an exception (see attached image)

Describe the solution you'd like
Either [1] pre-encode the names on the request and the API decodes it as needed or [2] pass the names with the single quote character and the API handles writing the query to SF as needed

Describe alternatives you've considered
Work-around is to manually create the contact in SF

Apps need to be able to update/PATCH Attendance records

The Coach App is using POST for attendance updates, which in the situation where a records already exists with Attended__c=FALSE in the creation of a new record, rather an updating the record to TRUE.
Multiple Apps and users will be creating new records, so this is an unacceptable solution for reasons of reporting and redundancy.

A PATCH method for the /Attendances endpoint is therefore needed, based on the Attendance record ID.

Repo Documentation of the Data-api needs to include a human-readable, up-to-date spec of endpoints and methods

This might be a task for a new developer intent on learning Mulesoft and getting up to speed with the project(s).
The documentation generated in Anypoint is useful and we need some of it to live in the github repo(s).
Manual updates and screencaps are acceptable but labor-intensive and prone to human error and falling out of date.
Better would be a dynamic solution, such as swagger.io, that helps inform everyone who comes to the repo what is going on there, and also is a linkable resource for the client projects and issues/tickets.

(blocking-bug) Student Contact matches are incorrect resulting in contact fields being overwritten

This issues is observed during updates/sync with external systems where the record match is based on name and DOB.

The only commonality is that the Birthdate values are the same. Here are the two request objects that can be run to observe the anomaly :
#1
{
"OtherLang": "",
"Emergency_Contact_Phone3": "",
"Gender": "",
"Emergency_Contact_Name": "",
"ParentHomeLang": "",
"Second_Emergency_Contact_Phone1": "",
"Relationship": "",
"ParentPhone1": "",
"Emergency_Contact_Phone2": "",
"ParentLName": "",
"LiabilityWaiver": false,
"Ethnicity": "",
"Second_Emergency_Contact_Relationship": "",
"SchoolName": "",
"PermissiontoCommuteAlone": "",
"DCYFStuID": "49065402",
"MailingStreet": "",
"Volunteer": "",
"Grade": "",
"Second_Emergency_Contact_Name": "",
"DataReleaseWaiver": false,
"MailingCity": "",
"MediaReleaseWaiver": false,
"ParentEnglishFluency": "",
"Second_Emergency_Contact_Phone3": "",
"MailingCountry": "",
"MailingZip": 94104,
"ParentPhone3": "",
"Emergency_Contact_Phone1": "",
"ReducedPriceLunch": "",
"Allergies": "",
"Birthdate": "2011-01-11",
"ContactRecordType": "",
"Second_Emergency_Contact_Permission_to_Pickup_child": "",
"Emergency_Contact_Relationship": "",
"ParentEmail": "",
"Emergency_Contact_Permission_to_Pickup_child": "",
"ParentFName": "",
"ParentPhone2": "",
"LastName": "Riley",
"PersonalEmail": "",
"MailingState": "",
"Second_Emergency_Contact_Phone2": "",
"MiddleName": "",
"FirstName": "Daisy",
"HomePhone": ""
}
#2
{
"OtherLang": "",
"Emergency_Contact_Phone3": "",
"Gender": "",
"Emergency_Contact_Name": "",
"ParentHomeLang": "",
"Second_Emergency_Contact_Phone1": "",
"Relationship": "",
"ParentPhone1": "",
"Emergency_Contact_Phone2": "",
"ParentLName": "",
"LiabilityWaiver": false,
"Ethnicity": "",
"Second_Emergency_Contact_Relationship": "",
"SchoolName": "",
"PermissiontoCommuteAlone": "",
"DCYFStuID": "50523267",
"MailingStreet": "",
"Volunteer": "",
"Grade": "",
"Second_Emergency_Contact_Name": "",
"DataReleaseWaiver": false,
"MailingCity": "",
"MediaReleaseWaiver": false,
"ParentEnglishFluency": "",
"Second_Emergency_Contact_Phone3": "",
"MailingCountry": "",
"MailingZip": 94601,
"ParentPhone3": "",
"Emergency_Contact_Phone1": "",
"ReducedPriceLunch": "",
"Allergies": "",
"Birthdate": "2011-01-11",
"ContactRecordType": "",
"Second_Emergency_Contact_Permission_to_Pickup_child": "",
"Emergency_Contact_Relationship": "",
"ParentEmail": "",
"Emergency_Contact_Permission_to_Pickup_child": "",
"ParentFName": "",
"ParentPhone2": "",
"LastName": "Solano",
"PersonalEmail": "",
"MailingState": "",
"Second_Emergency_Contact_Phone2": "",
"MiddleName": "",
"FirstName": "David",
"HomePhone": ""
}
Expectation:
A NEW record is created for at least one of the requests

archana-llamas 7:44 PM
The POST /contact endpoint searches existing records for given Full name + DOB or Email + DOB , if matched it updates the record otherwise creates a new one
Not sure why it's designed so, I see this logic was written by @kushaal most probably for Coach app?

Matt 7:46 PM
thanks Archana - is there something about the two names David Solano and Daisy Riley that are causing them to evaluate to the same SalesForce record?

  • same DOB?

Add Endpoint for Returning SF Contact Record Type by Phone

Dependency
Student Web Registration

Is your feature request related to a problem? Please describe.
No problem but new functionality.

Describe the solution you'd like
A new end point that takes a phone number as input ( query param or POST body doesn't matter ) and returns the account type ( if parent, coach, other etc ). Based on the response, different features will be displayed on the UI.

Limit the return payload to support app performance

Filter results at the API to exclude:

  • previous years' data (unless specifically requested) by actually using the date param to determine the correct season & year to return

RESULTS:

  1. Limits the number of team-seasons per year by not retrieving unwanted affiliate/regions: (a list of wanted regions will be requested by the app)

  2. Modify the Sessions endpoint (or make an alternative) to improve performance/response size

API Support Needed

Dependency
Data Science Tableau projects that will be publicly viewed

Custom Masking at the Contact API protects students
We have identified a list of fields that need various forms of obfuscation applied.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Sessions endpoint returns details of Team, Team Season, and Region

Dependency
What app or project needs this?
AmericaScores-CoachApp
**Is your feature request related to a problem?
I need to show Team's name, Season name and Session time in the sessions screen. Also i need to filter the Team's by Region in the Teams screen.

Describe the solution you'd like
I need the API to add to the return payload in the /all endpoint the requested fields (Team name, Season name and Session time) so we don´t use another unrelated endpoint. Also, I need the API to add the requested field (Team Region) to the return payload in the /coach/{coachId}/teamseasons endpoint.

API endpoint for Student Assessments

Dependency
Coach App Requirement

Coaches can record fitness assessment scores on the Coach App
Scores is obligated to report on fitness scores of more than one type and often collecting the data is an obstacle

API Support for Assessment Scores
The Assessment Object is related to the Student Contact Record.
Assessments have a Type, score, sessionID, StudentID, TeamSeasonID, Created (date), CoachID

Considerations
The Assessment object will support a variety of measurement types. Planned development includes objects that store information about specific assessment questions and score-types.
including:

  • Coach may choose the assessment question before recording results
  • assessment question type will inform the app on how to render the UI
  • assessment results may be numeric/float, string, long-string in the future

Set up CI/CD for Mule apps

  • Trigger maven build on PR to master
  • Automate deployment to Sandbox on build success
  • Automate deployment to Production after manual approval
  • Add code coverage steps
  • Add munit run

Add support to retrieve a list of Accounts of type school, or lead agency based on Region

The Student Registration Web App needs to provide parents with a list of schools to select from. The AccountID for that school (or lead agency in some cases) will be added to Student Contact record.
Web-Flow:

  1. Parent selects a Region (or this value is set based on a URL)
  2. Form updates the dropbox in the page with the list of school names
  3. Parent selects the proper school
  4. When the Student Contact is created/updated, the AccountID is added to that field on the Contact record

App ticket: AmericaSCORESBayArea/student-registration#19

Endpoint for Student Registration returns Student Contact

Supports returning a list of Contacts, creating a new contact, updating a contact

Dependency
Student-Web-Registration

Functional Requirements:

  1. (Returning Students only) A Student Contact record (ContactID) (or list of records) can be retrieved based on the Primary Phone # on that record (after authentication)
  2. (New Students only) A new Student Contact record is created once a user (new parent) has successfully completed authentication, starting with the Primary and Mobile Phone fields being populated with that number
  3. The Student Record is updated with the values entered in the form by that user, to complete the registration

Families need to:

  1. Authenticate using their mobile phone (Auth API returns ContactID) (AUTH API+FIREBASE)
  2. Register a Student for the first time (POST Contact)
  3. Change info on an existing record (PATCH)
  4. Add a new student with the same family info (POST)
  5. Retrieve all student contacts with the same mobile phone (GET)
  6. Have the same phone number they use to authenticate appear on all records they access and create

ERROR CONDITIONS:

  • A duplication error needs to be handled (if name and DOB match) by returning a detailed error message the user can share with Support

Client Apps:
AmericaSCORESBayArea/AmericaScores-CoachApp#7
AmericaSCORESBayArea/student-registration#25

Contact endpoint includes External ID

The integrity of syncs with various school districts can be improved by storing the student's foreign key.

DB Dependency:
The current DYCF ID field needs to be repurposed and renamed. Further, this field may need a supporting "district ID" field as well. That should be evaluated before implementing.

Client App Requirement:
AmericaSCORESBayArea/External-Sync-Robot#45

Use Case:

  • Sync Robot requests a record for a student with a common name. Several results can be returned. None of them match the birthdate but several have no birthdate. The Sync Robot incorrectly assumes a new record needs to be created. Matching on the unique foreign Key helps reduce this error.

Catch missing Attendance Records based on Enrollment and Session records and Create them as-needed for Coach App to display and update

There are mechanisms in Salesforce and external systems which assume Attendance Records have three values:

  • True = Student Attended
  • False = Student Absent
    Null/Non-Existing = Student is not expected/enrolled on that date
    Enrollment Records have a Start/End Date which can assist in determination of the above
    The Coach App expects an Attendance Record to Exist for all students enrolled with a give team-season within the Start/End of the student enrollment period and the start/end of the team-season, for each Session.
    The API needs to detect for the case when enrollments don't match the returned list of Attendance records.
  • If an Attendance record is missing for a Student & valid Session, then automatically create one and include it in the GET response to the App.
  • (log that a record is created on the API log for later analysis)
  • When a PATCH request is received from the App that includes the new Attendance record, update its values in the same way others are updated

Coach app requires an endpoint that returns the list of Regions a Coach belongs to

Dependency
AmericaScores-CoachApp

Is your feature request related to a problem? Please describe.
The Coach app needs to support different flows and filter the data according to the region a coach selects and needs an endpoint that retrieves the list of Regions a Coach belongs to, to create said flows in the app.

Describe the solution you'd like
An endpoint that retrieves all Regions a Coach belongs to in the latest Season

Add Support to Session endpoint to support any valid picklist value

Presently, the API will allow only two values in Patch or Create: Writing and Soccer.
There are two other values in the picklist which need to be supported.

If an invalid value is submitted, the error response should include an easily enumerated list of all valid options. This will enable the application to self-configure to provide the user with only valid values.
Requesting Ticket:
AmericaSCORESBayArea/AmericaScores-CoachApp#75

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.