Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

            AS page api is constructed with list of sections. So before creating page user need to first create sections and then associate those sections with page.

  1. Most of the time user is doing section settings with invalid data type and that will cause page api issues.
  2. Number of sections inside page has no limits, So if user has set too many sections then it won't work as expected.
  3. As of now System can make section call to Content search only or only one end point but there might be scenarios where we need different sections data end to  be collected from different endpoints. 


Proposed Solution 1:

 During section create or update time , system will do the section data type validation, in case  section query is not valid then it won't allow to create it. 

...

Code Block
languagejs
titleCorrect syntax for section
collapsetrue
{
"request":{
		"name": "Featured Content",
		"sectionDataType": "content",
		"display": {
			"name":{
				"en":"Featured Content"
			}
		},
		"searchQuery": {
			"request":{
				"filters":{
					"contentType":["Course","TextBook","Resource"],
					"status":["Live"]
				},
				"sort_by":{"me_averageRating":"desc"},
				"limit":10
			}
		}
    }
}


ProsCons
System will have only valid sections
it's a preventive action

Proposed Solution 2:

         System Will do section validation during page assemble api call, if section is wrongly configured then it will throw proper error. This scenario is already implemented in release-1.13.

  

ProsCons
it's a corrective actionDB will have incorrect section


Problem Statement 2 :

Proposed Solution:

    Sunbird can put some configuration for maximum number of sections inside page. This check will happen during page create/update.

    env: "sunbird_max_page_section_allowed"

Problem Statement 3 :

   Proposed Solution:

        System will define list of target and during section create or update time user need to set target as well, if user is not defining any target then default target will be applied.   

       We need to define a separate table to hold target info. id,url, methodType,auth-key etc.