Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Register
Sign in
Toggle navigation
Menu
UPSMF
knowledge-platform
Commits
e204154c
Commit
e204154c
authored
4 years ago
by
rheafernandes
Browse files
Options
Download
Patches
Plain Diff
Added changes to handle visibility Public only
parent
e8e30675
schema-updates
3.9.0-prod-fix
4.1.0_fixes
AmiableAnil-patch-1
Gcloud_copy
Gcloud_fix
Remove_unwantedCode_Gcloud_fix
actors-test
bulk-upload-comptenecy-mapping
bulk-upload-excelsheet
bulk-upload-test_excel
bulk_upload
code-cleanup
csp-migration
dependabot/maven/platform-core/platform-telemetry/ch.qos.logback-logback-core-1.2.9
dependabot/maven/search-api/search-core/org.apache.httpcomponents-httpclient-4.5.13
knowlg-friday
knowlg-oneclick
local-setup-fix
local-setup-kube
m-4.2.0
master
master-data
org-target-enhancement
patch-1
patch-2
patch-3
poc_bulk_upload
qs-schema
rahul_bulk_upload_postgres
release-3.6.0
release-3.6.0.1
release-3.7.0
release-3.8.0
release-3.9.0
release-4.0.0
release-4.1.0
release-4.10.0
release-4.10.1
release-4.2.0
release-4.3.0
release-4.4.0
release-4.5.0
release-4.6.0
release-4.7.0
release-4.7.0-debug
release-4.8.0
release-4.8.0-debug
release-4.9.0
release-4.9.1
release-5.0.0
release-5.0.1
release-5.1.0
release-5.1.0-content
release-5.2.0
release-5.3.0
revert-718-visiblity-private-api
revert-719-assessment-private-read-api
revert-720-visiblity-public-search-api
revert-721-visiblity-private-search-api
review-4.1.0
s-debug
schema-update-4.0
release-5.2.0_RC2
release-5.2.0_RC1
release-5.1.0_RC1
release-5.0.0_RC2
release-5.0.0_RC1
release-4.10.0_RC2
release-4.10.0_RC1
release-4.9.1_RC1
release-4.9.0_RC8
release-4.9.0_RC7
release-4.9.0_RC6
release-4.9.0_RC5
release-4.9.0_RC4
release-4.9.0_RC3
release-4.9.0_RC2
release-4.9.0_RC1
release-4.8.0_RC5
release-4.8.0_RC4
release-4.8.0_RC3
release-4.8.0_RC2
release-4.8.0_RC1
release-4.7.0_RC6
release-4.7.0_RC5
release-4.7.0_RC4
release-4.7.0_RC3
release-4.7.0_RC2
release-4.7.0_RC1
release-4.6.0_RC2
release-4.6.0_RC1
release-4.5.0_RC2
release-4.5.0_RC1
release-4.4.0_RC6
release-4.4.0_RC5
release-4.4.0_RC4
release-4.4.0_RC3
release-4.4.0_RC2
release-4.4.0_RC1
release-4.3.0_RC10
release-4.3.0_RC9
release-4.3.0_RC8
release-4.3.0_RC7
release-4.3.0_RC6
release-4.3.0_RC5
release-4.3.0_RC4
release-4.3.0_RC3
release-4.3.0_RC2
release-4.3.0_RC1
release-4.2.0_RC13
release-4.2.0_RC12
release-4.2.0_RC11
release-4.2.0_RC10
release-4.2.0_RC9
release-4.2.0_RC8
release-4.2.0_RC7
release-4.2.0_RC6
release-4.2.0_RC5
release-4.2.0_RC4
release-4.2.0_RC3
release-4.2.0_RC2
release-4.2.0_RC1
release-4.1.0_RC13
release-4.1.0_RC12
release-4.1.0_RC11
release-4.1.0_RC10
release-4.1.0_RC9
release-4.1.0_RC8
release-4.1.0_RC7
release-4.1.0_RC6
release-4.1.0_RC5
release-4.1.0_RC4
release-4.1.0_RC3
release-4.1.0_RC2
release-4.1.0_RC1
release-4.0.0_RC9
release-4.0.0_RC8
release-4.0.0_RC7
release-4.0.0_RC6
release-4.0.0_RC5
release-4.0.0_RC4
release-4.0.0_RC3
release-4.0.0_RC2
release-4.0.0_RC1
release-3.9.0_RC12
release-3.9.0_RC11
release-3.9.0_RC10
release-3.9.0_RC9
release-3.9.0_RC8
release-3.9.0_RC7
release-3.9.0_RC6
release-3.9.0_RC5
release-3.9.0_RC4
release-3.9.0_RC3
release-3.9.0_RC2
release-3.9.0_RC1
release-3.8.0_RC9
release-3.8.0_RC8
release-3.8.0_RC7
release-3.8.0_RC6
release-3.8.0_RC5
release-3.8.0_RC4
release-3.8.0_RC3
release-3.8.0_RC2
release-3.8.0_RC1
release-3.7.0_RC1
release-3.6.0_RC5
release-3.6.0_RC4
release-3.6.0_RC3
No related merge requests found
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
assessment-api/assessment-actors/src/main/scala/org/sunbird/actors/QuestionActor.scala
+18
-12
...ors/src/main/scala/org/sunbird/actors/QuestionActor.scala
assessment-api/assessment-actors/src/main/scala/org/sunbird/actors/QuestionSetActor.scala
+23
-13
.../src/main/scala/org/sunbird/actors/QuestionSetActor.scala
assessment-api/assessment-service/app/controllers/v4/QuestionController.scala
+1
-1
...sment-service/app/controllers/v4/QuestionController.scala
assessment-api/assessment-service/app/controllers/v4/QuestionSetController.scala
+1
-1
...nt-service/app/controllers/v4/QuestionSetController.scala
schemas/question/1.0/config.json
+7
-0
schemas/question/1.0/config.json
schemas/questionset/1.0/config.json
+1
-1
schemas/questionset/1.0/config.json
with
51 additions
and
28 deletions
+51
-28
assessment-api/assessment-actors/src/main/scala/org/sunbird/actors/QuestionActor.scala
+
18
−
12
View file @
e204154c
...
...
@@ -12,6 +12,7 @@ import org.sunbird.graph.OntologyEngineContext
import
org.sunbird.graph.nodes.DataNode
import
org.sunbird.graph.utils.NodeUtil
import
org.sunbird.managers.QuestionManager
import
org.sunbird.utils.RequestUtil
import
scala.collection.JavaConverters
import
scala.concurrent.
{
ExecutionContext
,
Future
}
...
...
@@ -37,11 +38,12 @@ class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends BaseA
if
(
StringUtils
.
isBlank
(
visibility
))
throw
new
ClientException
(
"ERR_QUESTION_CREATE"
,
"Visibility is a mandatory parameter"
)
visibility
match
{
case
"Parent"
=>
if
(!
request
.
getRequest
.
containsKey
(
"parent"
))
throw
new
ClientException
(
"ERR_QUESTION_CREATE"
,
"For visibility Parent, parent id is mandatory"
)
else
request
.
getRequest
.
put
(
"questionSet"
,
List
[
java.util.Map
[
String
,
AnyRef
]](
Map
(
"identifier"
->
request
.
get
(
"parent"
)).
asJava
).
asJava
)
//TODO: Enable support in future
// case "Parent" => if (!request.getRequest.containsKey("parent"))
// throw new ClientException("ERR_QUESTION_CREATE", "For visibility Parent, parent id is mandatory") else
// request.getRequest.put("questionSet", List[java.util.Map[String, AnyRef]](Map("identifier" -> request.get("parent")).asJava).asJava)
case
"Public"
=>
if
(
request
.
getRequest
.
containsKey
(
"parent"
))
throw
new
ClientException
(
"ERR_QUESTION_CREATE"
,
"For visibility Public, question can't have parent id"
)
case
_
=>
throw
new
ClientException
(
"ERR_QUESTION_CREATE"
,
"Visibility should be one of [
\"Parent\",
\"Public\"]"
)
case
_
=>
throw
new
ClientException
(
"ERR_QUESTION_CREATE"
,
"Visibility should be one of [\"Public\"]"
)
}
DataNode
.
create
(
request
).
map
(
node
=>
{
val
response
=
ResponseHandler
.
OK
...
...
@@ -63,16 +65,20 @@ class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends BaseA
}
def
update
(
request
:
Request
)
:
Future
[
Response
]
=
{
RequestUtil
.
restrictProperties
(
request
)
request
.
getRequest
.
put
(
"identifier"
,
request
.
getContext
.
get
(
"identifier"
))
DataNode
.
read
(
request
).
flatMap
(
node
=>
{
request
.
getRequest
.
getOrDefault
(
"visibility"
,
""
)
match
{
case
"Public"
=>
request
.
put
(
"parent"
,
null
)
case
"Parent"
=>
if
(!
node
.
getMetadata
.
containsKey
(
"parent"
)
||
!
request
.
getRequest
.
containsKey
(
"parent"
))
throw
new
ClientException
(
"ERR_QUESTION_CREATE_FAILED"
,
"For visibility Parent, parent id is mandatory"
)
if
(
node
.
getMetadata
.
containsKey
(
"questionSet"
))
throw
new
ClientException
(
"ERR_QUESTION_CREATE_FAILED"
,
"For visibility Parent, cannot pass questionSet metadata"
)
else
request
.
getRequest
.
put
(
"questionSet"
,
List
[
java.util.Map
[
String
,
AnyRef
]](
Map
(
"identifier"
->
request
.
get
(
"parent"
)).
asJava
).
asJava
)
case
_
=>
request
}
//TODO: Remove commented when required
// request.getRequest.getOrDefault("visibility", "") match {
// case "Public" => request.put("parent", null)
// case "Parent" => {
// if (!node.getMetadata.containsKey("parent") || !request.getRequest.containsKey("parent"))
// throw new ClientException("ERR_QUESTION_CREATE_FAILED", "For visibility Parent, parent id is mandatory")
// if(request.getRequest.containsKey("questionSet"))
// throw new ClientException("ERR_QUESTION_CREATE_FAILED", "For visibility Parent, cannot pass questionSet metadata")
// else request.getRequest.put("questionSet", List[java.util.Map[String, AnyRef]](Map("identifier" -> request.get("parent")).asJava).asJava)}
// case _ => request
// }
DataNode
.
update
(
request
).
map
(
node
=>
{
val
response
:
Response
=
ResponseHandler
.
OK
response
.
putAll
(
Map
(
"identifier"
->
node
.
getIdentifier
.
replace
(
".img"
,
""
),
"versionKey"
->
node
.
getMetadata
.
get
(
"versionKey"
)).
asJava
)
...
...
This diff is collapsed.
Click to expand it.
assessment-api/assessment-actors/src/main/scala/org/sunbird/actors/QuestionSetActor.scala
+
23
−
13
View file @
e204154c
...
...
@@ -14,7 +14,7 @@ import org.sunbird.graph.dac.model.Relation
import
org.sunbird.graph.nodes.DataNode
import
org.sunbird.graph.utils.NodeUtil
import
org.sunbird.managers.QuestionManager
import
org.sunbird.utils.RequestUtil
import
org.sunbird.utils.
{
RequestUtil
}
import
scala.collection.JavaConverters
import
scala.collection.JavaConverters._
...
...
@@ -45,11 +45,11 @@ class QuestionSetActor @Inject() (implicit oec: OntologyEngineContext) extends B
if
(
StringUtils
.
isBlank
(
visibility
))
throw
new
ClientException
(
"ERR_QUESTION_SET_CREATE"
,
"Visibility is a mandatory parameter"
)
visibility
match
{
case
"Parent"
=>
if
(!
request
.
getRequest
.
containsKey
(
"parent"
))
throw
new
ClientException
(
"ERR_QUESTION_SET_CREATE"
,
"For visibility Parent, parent id is mandatory"
)
else
request
.
getRequest
.
put
(
"parent"
,
List
[
java.util.Map
[
String
,
AnyRef
]](
Map
(
"identifier"
->
request
.
get
(
"parent"
)).
asJava
).
asJava
)
//
case "Parent" => if (!request.getRequest.containsKey("parent"))
//
throw new ClientException("ERR_QUESTION_SET_CREATE", "For visibility Parent, parent id is mandatory") else
//
request.getRequest.put("parent", List[java.util.Map[String, AnyRef]](Map("identifier" -> request.get("parent")).asJava).asJava)
case
"Public"
=>
if
(
request
.
getRequest
.
containsKey
(
"parent"
))
throw
new
ClientException
(
"ERR_QUESTION_SET_CREATE"
,
"For visibility Public, question can't have parent id"
)
case
_
=>
throw
new
ClientException
(
"ERR_QUESTION_SET_CREATE"
,
"Visibility should be one of [
\"Parent\",
\"Public\"]"
)
case
_
=>
throw
new
ClientException
(
"ERR_QUESTION_SET_CREATE"
,
"Visibility should be one of [\"Public\"]"
)
}
DataNode
.
create
(
request
).
map
(
node
=>
{
val
response
=
ResponseHandler
.
OK
...
...
@@ -73,14 +73,15 @@ class QuestionSetActor @Inject() (implicit oec: OntologyEngineContext) extends B
def
update
(
request
:
Request
)
:
Future
[
Response
]
=
{
RequestUtil
.
restrictProperties
(
request
)
request
.
getRequest
.
put
(
"identifier"
,
request
.
getContext
.
get
(
"identifier"
))
DataNode
.
read
(
request
).
flatMap
(
node
=>
{
request
.
getRequest
.
getOrDefault
(
"visibility"
,
""
)
match
{
case
"Public"
=>
request
.
put
(
"parent"
,
null
)
case
"Parent"
=>
if
(!
node
.
getMetadata
.
containsKey
(
"parent"
)
||
!
request
.
getRequest
.
containsKey
(
"parent"
))
throw
new
ClientException
(
"ERR_QUESTION_CREATE_FAILED"
,
"For visibility Parent, parent id is mandatory"
)
else
request
.
getRequest
.
put
(
"parent"
,
List
[
java.util.Map
[
String
,
AnyRef
]](
Map
(
"identifier"
->
request
.
get
(
"parent"
)).
asJava
).
asJava
)
case
_
=>
request
}
//TODO: Remove commented when required
DataNode
.
read
(
request
).
flatMap
(
node
=>
{
// request.getRequest.getOrDefault("visibility", "") match {
// case "Public" => request.put("parent", null)
// case "Parent" => if (!node.getMetadata.containsKey("parent") || !request.getRequest.containsKey("parent"))
// throw new ClientException("ERR_QUESTION_CREATE_FAILED", "For visibility Parent, parent id is mandatory")
// else request.getRequest.put("parent", List[java.util.Map[String, AnyRef]](Map("identifier" -> request.get("parent")).asJava).asJava)
// case _ => request
// }
DataNode
.
update
(
request
).
map
(
node
=>
{
val
response
:
Response
=
ResponseHandler
.
OK
response
.
putAll
(
Map
(
"identifier"
->
node
.
getIdentifier
.
replace
(
".img"
,
""
),
"versionKey"
->
node
.
getMetadata
.
get
(
"versionKey"
)).
asJava
)
...
...
@@ -184,6 +185,7 @@ class QuestionSetActor @Inject() (implicit oec: OntologyEngineContext) extends B
}
def
updateHierarchy
(
request
:
Request
)
:
Future
[
Response
]
=
{
Future
(
ResponseHandler
.
OK
())
}
...
...
@@ -191,5 +193,13 @@ class QuestionSetActor @Inject() (implicit oec: OntologyEngineContext) extends B
Future
(
ResponseHandler
.
OK
())
}
// def processUpdateHierarchyRequest(request: Request): (String, Map[String,AnyRef], Map[String, AnyRef]) = {
// val nodesModified: Map[String, AnyRef] = request.getRequest.get("nodesModifier").asInstanceOf[util.Map[String, AnyRef]].asScala.toMap
// val hierarchy:Map[String, AnyRef] = request.getRequest.get("hierarchy").asInstanceOf[util.Map[String, AnyRef]].asScala.toMap
// if (StringUtils.isEmpty(rootId) && StringUtils.isAllBlank(rootId) || StringUtils.contains(rootId, ".img"))
// throw new ClientException("ERR_INVALID_ROOT_ID", "Please Provide Valid Root Node Identifier")
// (rootId, nodesModified, hierarchy)
// }
}
This diff is collapsed.
Click to expand it.
assessment-api/assessment-service/app/controllers/v4/QuestionController.scala
+
1
−
1
View file @
e204154c
...
...
@@ -29,7 +29,7 @@ class QuestionController @Inject()(@Named(ActorNames.QUESTION_ACTOR) questionAct
val
headers
=
commonHeaders
()
val
question
=
new
java
.
util
.
HashMap
().
asInstanceOf
[
java.util.Map
[
String
,
Object
]]
question
.
putAll
(
headers
)
question
.
putAll
(
Map
(
"identifier"
->
identifier
,
"fields"
->
fields
.
getOrElse
(
""
),
"mode"
->
mode
).
asJava
)
question
.
putAll
(
Map
(
"identifier"
->
identifier
,
"fields"
->
fields
.
getOrElse
(
""
),
"mode"
->
mode
.
getOrElse
(
"read"
)
).
asJava
)
val
questionRequest
=
getRequest
(
question
,
headers
,
QuestionOperations
.
readQuestion
.
toString
)
setRequestContext
(
questionRequest
,
version
,
objectType
,
schemaName
)
getResult
(
ApiId
.
READ_QUESTION
,
questionActor
,
questionRequest
)
...
...
This diff is collapsed.
Click to expand it.
assessment-api/assessment-service/app/controllers/v4/QuestionSetController.scala
+
1
−
1
View file @
e204154c
...
...
@@ -29,7 +29,7 @@ class QuestionSetController @Inject()(@Named(ActorNames.QUESTION_SET_ACTOR) ques
val
headers
=
commonHeaders
()
val
questionSet
=
new
java
.
util
.
HashMap
().
asInstanceOf
[
java.util.Map
[
String
,
Object
]]
questionSet
.
putAll
(
headers
)
questionSet
.
putAll
(
Map
(
"identifier"
->
identifier
,
"fields"
->
fields
.
getOrElse
(
""
),
"mode"
->
mode
).
asJava
)
questionSet
.
putAll
(
Map
(
"identifier"
->
identifier
,
"fields"
->
fields
.
getOrElse
(
""
),
"mode"
->
mode
.
getOrElse
(
"read"
)
).
asJava
)
val
questionSetRequest
=
getRequest
(
questionSet
,
headers
,
QuestionSetOperations
.
readQuestionSet
.
toString
)
setRequestContext
(
questionSetRequest
,
version
,
objectType
,
schemaName
)
getResult
(
ApiId
.
READ_QUESTION_SET
,
questionSetActor
,
questionSetRequest
)
...
...
This diff is collapsed.
Click to expand it.
schemas/question/1.0/config.json
+
7
−
0
View file @
e204154c
...
...
@@ -7,6 +7,13 @@
"objects"
:
[
"QuestionSet"
,
"QuestionSetImage"
]
}
},
"restrictProps"
:
{
"create"
:
[
],
"update"
:
[
"visibility"
]
},
"version"
:
"enable"
,
"versionCheckMode"
:
"ON"
,
"frameworkCategories"
:
[],
...
...
This diff is collapsed.
Click to expand it.
schemas/questionset/1.0/config.json
+
1
−
1
View file @
e204154c
...
...
@@ -22,7 +22,7 @@
"children"
],
"update"
:
[
"children"
"children"
,
"visibility"
]
},
"external"
:
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets