...
Code Block | ||||
---|---|---|---|---|
| ||||
URI: v1/course/batch/count?offset=0&limit=20 Methods: GET --- Internal work flow : When user call this api , it will internally make course batch search by passing different filters. It will internally make two ES call. first call to collect all courseIds with participant list . Based on that response it will keep count of same courseId and remove those courseId for which user is already enrolled. After thatunique courseIds and then based on unique courseListthat it will fetchmake completeanother dataEs andcall mergeto count in new responsecollect details. { "request": { "filters":{ "courseId":["list of courseId found in first search"] "status":["0","1"], "enrollmentType":"open" }, "offset":0, "limit":20 } } ---- Response: { "id": "api.course.batch.count", "ver": "v1", "ts": "2018-11-20 17:53:00:716+0000", "params": { "resmsgid": null, "msgid": "8e27cbf5-e299-43b0-bca7-8347f7e5abcf", "err": null, "status": "success", "errmsg": null }, "responseCode": "OK", "result": { "response": { "count": 8, "content": [ { "identifier": "", "createdFor": [ "", "" ], "courseAdditionalInfo": { "courseName": "SUBU_01", "leafNodesCount": "3", "description": "Why?", "courseLogoUrl": "https://sunbirdstaging.blob.core.windows.net/sunbird-content-staging/content/{}/artifact/images-1_1532061239427.thumb.jpg", "tocUrl": "https://sunbirdstaging.blob.core.windows.net/sunbird-content-staging/content/{}/artifact/{}toc.json", "status": "Live" }, "endDate": "2018-12-31", "description": "nieowhoifheoiw", "participant": { "userId": true }, "countIncrementStatus": false, "createdDate": "2018-11-21 04:47:18:306+0000", "createdBy": "", "courseCreator": "", "hashTagId": "0126384233410641921", "mentors": [], "countDecrementStatus": false, "name": "My batch", "id": "0126384233410641921", "enrollmentType": "open", "courseId": "do_212638416227246080157", "startDate": "2018-11-21", "status": 1, "openBatchCount":2 }, { ........ "courseId": "do_2126299478299033601672", "openBatchCount":2 } ] } } } |
Pros | Cons |
---|---|
|
|
Proposed Solution 3:
Sunbird will define new page section to provide open course list under page api.
TO achieve this we need to do following modification under page assemble api and get page section .
* Now section table need to have calling source as well. which will include (source, indexName, typeName)
* Assemble page business logic will be modified to make call based on source
* local source can have multiple search query with query order.
Pros | Cons |
---|---|
|
|
Proposed Solution 3:
User can make another api as batch search api by passing all courseIds and some extra filters.
...