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
08783dda
Commit
08783dda
authored
5 years ago
by
Mahesh Kumar Gangula
Browse files
Options
Download
Patches
Plain Diff
Issue #SB-18415 fix: code refactoring.
parent
c460460b
taxonomy-api
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
flag-api
ft-spike
knowlg-friday
knowlg-oneclick
loadtest-release-2.10
local-setup-fix
local-setup-kube
m-4.2.0
master
master-data
neo4j-3.4.9
neo4j-4-code
new_objecttype
org-target-enhancement
patch-1
patch-2
patch-3
poc_bulk_upload
qs-schema
rahul_bulk_upload_postgres
release-2.10.0
release-2.9.0
release-3.0.0
release-3.0.1
release-3.1.0
release-3.2.0
release-3.3.0
release-3.4.0
release-3.5.0
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
retire-api
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
schema-updates
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
release-3.6.0_RC2
release-3.6.0_RC1
release-3.5.0
release-3.5.0_RC2
release-3.5.0_RC1
release-3.4.0
release-3.4.0_RC2
release-3.4.0_RC1
release-3.3.0_RC10
release-3.3.0_RC9
release-3.3.0_RC8
release-3.3.0_RC7
release-3.3.0_RC6
release-3.3.0_RC5
release-3.3.0_RC4
release-3.3.0_RC3
release-3.3.0_RC2
release-3.3.0_RC1
release-3.2.0_RC9
release-3.2.0_RC8
release-3.2.0_RC7
release-3.2.0_RC6
release-3.2.0_RC5
release-3.2.0_RC4
release-3.2.0_RC3
release-3.2.0_RC2
release-3.2.0_RC1
release-3.1.0
release-3.1.0_RC8
release-3.1.0_RC7
release-3.1.0_RC6
release-3.1.0_RC5
release-3.1.0_RC4
release-3.1.0_RC3
release-3.1.0_RC2
release-3.1.0_RC1
release-3.0.1_RC3
release-3.0.1_RC2
release-3.0.1_RC1
release-3.0.0
release-3.0.0_RC11
release-3.0.0_RC10
release-3.0.0_RC9
release-3.0.0_RC8
release-3.0.0_RC7
release-3.0.0_RC6
release-3.0.0_RC5
release-3.0.0_RC4
release-3.0.0_RC3
release-3.0.0_RC2
release-3.0.0_RC1
release-2.10.0
release-2.10.0_RC19
release-2.10.0_RC18
release-2.10.0_RC17
release-2.10.0_RC16
release-2.10.0_RC15
release-2.10.0_RC14
release-2.10.0_RC13
release-2.10.0_RC12
release-2.10.0_RC11
release-2.10.0_RC10
release-2.10.0_RC9
release-2.10.0_RC8
release-2.10.0_RC7
release-2.10.0_RC6
release-2.10.0_RC5
release-2.10.0_RC4
release-2.10.0_RC3
release-2.10.0_RC2
release-2.10.0_RC1
release-2.9.0_RC9
release-2.9.0_RC8
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
content-api/hierarchy-manager/src/main/scala/org/sunbird/managers/HierarchyManager.scala
+40
-36
...rc/main/scala/org/sunbird/managers/HierarchyManager.scala
platform-core/platform-common/src/main/java/org/sunbird/common/dto/Response.java
+2
-1
...common/src/main/java/org/sunbird/common/dto/Response.java
with
42 additions
and
37 deletions
+42
-37
content-api/hierarchy-manager/src/main/scala/org/sunbird/managers/HierarchyManager.scala
+
40
−
36
View file @
08783dda
...
...
@@ -19,7 +19,7 @@ import scala.collection.JavaConverters
import
scala.concurrent.
{
ExecutionContext
,
Future
}
import
com.mashape.unirest.http.HttpResponse
import
com.mashape.unirest.http.Unirest
import
org.apache.commons.collections4.CollectionUtils
import
org.apache.commons.collections4.
{
CollectionUtils
,
MapUtils
}
import
org.sunbird.graph.OntologyEngineContext
import
org.sunbird.utils.
{
HierarchyConstants
,
HierarchyErrorCodes
}
...
...
@@ -60,10 +60,9 @@ object HierarchyManager {
val
updateResponse
=
updateHierarchy
(
unitId
,
hierarchy
,
leafNodes
,
node
,
request
,
"add"
)
updateResponse
.
map
(
response
=>
{
if
(!
ResponseHandler
.
checkError
(
response
))
{
val
resp
:
Response
=
ResponseHandler
.
OK
resp
.
put
(
"rootId"
,
node
.
getIdentifier
.
replaceAll
(
imgSuffix
,
""
))
resp
.
put
(
unitId
,
request
.
get
(
"children"
))
resp
ResponseHandler
.
OK
.
put
(
"rootId"
,
node
.
getIdentifier
.
replaceAll
(
imgSuffix
,
""
))
.
put
(
unitId
,
request
.
get
(
"children"
))
}
else
{
response
}
...
...
@@ -96,9 +95,7 @@ object HierarchyManager {
val
updateResponse
=
updateHierarchy
(
unitId
,
hierarchy
,
null
,
node
,
request
,
"remove"
)
updateResponse
.
map
(
response
=>
{
if
(!
ResponseHandler
.
checkError
(
response
))
{
val
resp
:
Response
=
ResponseHandler
.
OK
resp
.
put
(
"rootId"
,
node
.
getIdentifier
.
replaceAll
(
imgSuffix
,
""
))
resp
ResponseHandler
.
OK
.
put
(
"rootId"
,
node
.
getIdentifier
.
replaceAll
(
imgSuffix
,
""
))
}
else
{
response
}
...
...
@@ -122,7 +119,6 @@ object HierarchyManager {
@throws
[
Exception
]
def
getUnPublishedHierarchy
(
request
:
Request
)(
implicit
oec
:
OntologyEngineContext
,
ec
:
ExecutionContext
)
:
Future
[
Response
]
=
{
val
rootNodeFuture
=
getRootNode
(
request
)
val
response
:
Response
=
ResponseHandler
.
OK
rootNodeFuture
.
map
(
rootNode
=>
{
if
(
StringUtils
.
equalsIgnoreCase
(
"Retired"
,
rootNode
.
getMetadata
.
getOrDefault
(
"status"
,
""
).
asInstanceOf
[
String
]))
{
Future
(
ResponseHandler
.
ERROR
(
ResponseCode
.
RESOURCE_NOT_FOUND
,
ResponseCode
.
RESOURCE_NOT_FOUND
.
name
(),
"rootId "
+
request
.
get
(
"rootId"
)
+
" does not exist"
))
...
...
@@ -136,9 +132,12 @@ object HierarchyManager {
metadata
.
put
(
"children"
,
hierarchy
.
getOrDefault
(
"children"
,
new
util
.
ArrayList
[
java.util.Map
[
String
,
AnyRef
]]).
asInstanceOf
[
util.ArrayList
[
java.util.Map
[
String
,
AnyRef
]]])
metadata
.
put
(
"identifier"
,
request
.
get
(
"rootId"
))
if
(
StringUtils
.
isNotEmpty
(
bookmarkId
))
metadata
=
filterBookmarkHierarchy
(
metadata
.
get
(
"children"
).
asInstanceOf
[
util.List
[
util.HashMap
[
String
,
AnyRef
]]],
bookmarkId
)
response
.
put
(
"content"
,
metadata
)
response
metadata
=
filterBookmarkHierarchy
(
metadata
.
get
(
"children"
).
asInstanceOf
[
util.List
[
util.Map
[
String
,
AnyRef
]]],
bookmarkId
)
if
(
MapUtils
.
isEmpty
(
metadata
))
{
ResponseHandler
.
ERROR
(
ResponseCode
.
RESOURCE_NOT_FOUND
,
ResponseCode
.
RESOURCE_NOT_FOUND
.
name
(),
"bookmarkId "
+
bookmarkId
+
" does not exist"
)
}
else
{
ResponseHandler
.
OK
.
put
(
"content"
,
metadata
)
}
})
}).
flatMap
(
f
=>
f
)
recoverWith
{
case
e
:
ResourceNotFoundException
=>
{
val
searchResponse
=
searchRootIdInElasticSearch
(
request
.
get
(
"rootId"
).
asInstanceOf
[
String
])
...
...
@@ -147,8 +146,7 @@ object HierarchyManager {
val
unPublishedBookmarkHierarchy
=
getUnpublishedBookmarkHierarchy
(
request
,
rootHierarchy
.
asInstanceOf
[
util.HashMap
[
String
,
AnyRef
]].
get
(
"identifier"
).
asInstanceOf
[
String
])
unPublishedBookmarkHierarchy
.
map
(
hierarchy
=>
{
if
(!
hierarchy
.
isEmpty
)
{
response
.
put
(
"content"
,
hierarchy
)
response
ResponseHandler
.
OK
.
put
(
"content"
,
hierarchy
)
}
else
ResponseHandler
.
ERROR
(
ResponseCode
.
RESOURCE_NOT_FOUND
,
ResponseCode
.
RESOURCE_NOT_FOUND
.
name
(),
"rootId "
+
request
.
get
(
"rootId"
)
+
" does not exist"
)
})
...
...
@@ -163,21 +161,27 @@ object HierarchyManager {
@throws
[
Exception
]
def
getPublishedHierarchy
(
request
:
Request
)(
implicit
ec
:
ExecutionContext
)
:
Future
[
Response
]
=
{
val
redisHierarchy
=
RedisCache
.
get
(
hierarchyPrefix
+
request
.
get
(
"rootId"
))
val
response
:
Response
=
ResponseHandler
.
OK
if
(
StringUtils
.
isNotEmpty
(
redisHierarchy
))
{
response
.
put
(
"content"
,
mapAsJavaMap
(
JsonUtils
.
deserialize
(
redisHierarchy
,
classOf
[
java.util.Map
[
String
,
AnyRef
]]).
toMap
))
Future
(
response
)
}
else
{
val
rootHierarchy
=
getCassandraHierarchy
(
request
)
rootHierarchy
.
map
(
rootMap
=>
{
if
(!
rootMap
.
isEmpty
)
{
response
.
put
(
"content"
,
rootMap
.
get
(
"content"
))
response
val
hierarchyFuture
=
if
(
StringUtils
.
isNotEmpty
(
redisHierarchy
))
{
Future
(
mapAsJavaMap
(
Map
(
"content"
->
mapAsJavaMap
(
JsonUtils
.
deserialize
(
redisHierarchy
,
classOf
[
java.util.Map
[
String
,
AnyRef
]]).
toMap
))))
}
else
getCassandraHierarchy
(
request
)
hierarchyFuture
.
map
(
result
=>
{
if
(!
result
.
isEmpty
)
{
val
bookmarkId
=
request
.
get
(
"bookmarkId"
).
asInstanceOf
[
String
]
val
rootHierarchy
=
result
.
get
(
"content"
).
asInstanceOf
[
Map
[
String
,
AnyRef
]]
if
(
StringUtils
.
isEmpty
(
bookmarkId
))
{
ResponseHandler
.
OK
.
put
(
"content"
,
rootHierarchy
)
}
else
{
val
children
=
rootHierarchy
.
getOrElse
(
"children"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]]()).
asInstanceOf
[
util.List
[
util.Map
[
String
,
AnyRef
]]]
val
bookmarkHierarchy
=
filterBookmarkHierarchy
(
children
,
bookmarkId
)
if
(
MapUtils
.
isEmpty
(
bookmarkHierarchy
))
{
ResponseHandler
.
ERROR
(
ResponseCode
.
RESOURCE_NOT_FOUND
,
ResponseCode
.
RESOURCE_NOT_FOUND
.
name
(),
"bookmarkId "
+
bookmarkId
+
" does not exist"
)
}
else
{
ResponseHandler
.
OK
.
put
(
"content"
,
bookmarkHierarchy
)
}
}
else
ResponseHandler
.
ERROR
(
ResponseCode
.
RESOURCE_NOT_FOUND
,
ResponseCode
.
RESOURCE_NOT_FOUND
.
name
(),
"rootId "
+
request
.
get
(
"rootId"
)
+
" does not exist"
)
})
}
}
else
ResponseHandler
.
ERROR
(
ResponseCode
.
RESOURCE_NOT_FOUND
,
ResponseCode
.
RESOURCE_NOT_FOUND
.
name
(),
"rootId "
+
request
.
get
(
"rootId"
)
+
" does not exist"
)
})
}
def
validateRequest
(
request
:
Request
)(
implicit
ec
:
ExecutionContext
)
=
{
...
...
@@ -385,7 +389,7 @@ object HierarchyManager {
parentHierarchy
.
map
(
hierarchy
=>
{
if
(!
hierarchy
.
isEmpty
)
{
if
(
StringUtils
.
isNoneEmpty
(
hierarchy
.
getOrDefault
(
"status"
,
""
).
asInstanceOf
[
String
])
&&
statusList
.
contains
(
hierarchy
.
getOrDefault
(
"status"
,
""
).
asInstanceOf
[
String
])
&&
CollectionUtils
.
isNotEmpty
(
mapAsJavaMap
(
hierarchy
).
get
(
"children"
).
asInstanceOf
[
util.ArrayList
[
util.HashMap
[
String
,
AnyRef
]]]))
{
val
bookmarkHierarchy
=
filterBookmarkHierarchy
(
mapAsJavaMap
(
hierarchy
).
get
(
"children"
).
asInstanceOf
[
util.ArrayList
[
util.
Hash
Map
[
String
,
AnyRef
]]],
request
.
get
(
"rootId"
).
asInstanceOf
[
String
])
val
bookmarkHierarchy
=
filterBookmarkHierarchy
(
mapAsJavaMap
(
hierarchy
).
get
(
"children"
).
asInstanceOf
[
util.ArrayList
[
util.Map
[
String
,
AnyRef
]]],
request
.
get
(
"rootId"
).
asInstanceOf
[
String
])
if
(!
bookmarkHierarchy
.
isEmpty
)
{
rootHierarchy
.
put
(
"content"
,
hierarchy
)
RedisCache
.
set
(
hierarchyPrefix
+
request
.
get
(
"rootId"
),
JsonUtils
.
serialize
(
new
util
.
HashMap
[
String
,
AnyRef
](
bookmarkHierarchy
)))
...
...
@@ -445,16 +449,16 @@ object HierarchyManager {
}
}
def
filterBookmarkHierarchy
(
children
:
util.List
[
util.
Hash
Map
[
String
,
AnyRef
]],
bookmarkId
:
String
)(
implicit
ec
:
ExecutionContext
)
:
util.
Hash
Map
[
String
,
AnyRef
]
=
{
def
filterBookmarkHierarchy
(
children
:
util.List
[
util.Map
[
String
,
AnyRef
]],
bookmarkId
:
String
)(
implicit
ec
:
ExecutionContext
)
:
util.Map
[
String
,
AnyRef
]
=
{
if
(
CollectionUtils
.
isNotEmpty
(
children
))
{
val
response
=
children
.
filter
(
_
.
get
(
"identifier"
)
==
bookmarkId
).
toList
if
(
CollectionUtils
.
isNotEmpty
(
response
))
{
response
.
get
(
0
)
}
else
{
val
nextChildren
=
bufferAsJavaList
(
children
.
flatMap
(
child
=>
{
if
(!
child
.
isEmpty
&&
CollectionUtils
.
isNotEmpty
(
child
.
get
(
"children"
).
asInstanceOf
[
util.
Array
List
[
util.
Hash
Map
[
String
,
AnyRef
]]]))
child
.
get
(
"children"
).
asInstanceOf
[
util.
Array
List
[
util.
Hash
Map
[
String
,
AnyRef
]]]
else
new
util
.
ArrayList
[
util.
Hash
Map
[
String
,
AnyRef
]]
if
(!
child
.
isEmpty
&&
CollectionUtils
.
isNotEmpty
(
child
.
get
(
"children"
).
asInstanceOf
[
util.List
[
util.Map
[
String
,
AnyRef
]]]))
child
.
get
(
"children"
).
asInstanceOf
[
util.List
[
util.Map
[
String
,
AnyRef
]]]
else
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]]
}))
filterBookmarkHierarchy
(
nextChildren
,
bookmarkId
)
}
...
...
@@ -463,12 +467,12 @@ object HierarchyManager {
}
}
def
getUnpublishedBookmarkHierarchy
(
request
:
Request
,
identifier
:
String
)(
implicit
ec
:
ExecutionContext
)
:
Future
[
util.
Hash
Map
[
String
,
AnyRef
]]
=
{
def
getUnpublishedBookmarkHierarchy
(
request
:
Request
,
identifier
:
String
)(
implicit
ec
:
ExecutionContext
)
:
Future
[
util.Map
[
String
,
AnyRef
]]
=
{
if
(
StringUtils
.
isNotEmpty
(
identifier
))
{
val
parentHierarchy
=
fetchHierarchy
(
request
,
identifier
+
imgSuffix
)
parentHierarchy
.
map
(
hierarchy
=>
{
if
(!
hierarchy
.
isEmpty
&&
CollectionUtils
.
isNotEmpty
(
mapAsJavaMap
(
hierarchy
).
get
(
"children"
).
asInstanceOf
[
util.ArrayList
[
util.
Hash
Map
[
String
,
AnyRef
]]]))
{
val
bookmarkHierarchy
=
filterBookmarkHierarchy
(
mapAsJavaMap
(
hierarchy
).
get
(
"children"
).
asInstanceOf
[
util.ArrayList
[
util.
Hash
Map
[
String
,
AnyRef
]]],
request
.
get
(
"rootId"
).
asInstanceOf
[
String
])
if
(!
hierarchy
.
isEmpty
&&
CollectionUtils
.
isNotEmpty
(
mapAsJavaMap
(
hierarchy
).
get
(
"children"
).
asInstanceOf
[
util.ArrayList
[
util.Map
[
String
,
AnyRef
]]]))
{
val
bookmarkHierarchy
=
filterBookmarkHierarchy
(
mapAsJavaMap
(
hierarchy
).
get
(
"children"
).
asInstanceOf
[
util.ArrayList
[
util.Map
[
String
,
AnyRef
]]],
request
.
get
(
"rootId"
).
asInstanceOf
[
String
])
if
(!
bookmarkHierarchy
.
isEmpty
)
{
bookmarkHierarchy
}
else
{
...
...
This diff is collapsed.
Click to expand it.
platform-core/platform-common/src/main/java/org/sunbird/common/dto/Response.java
+
2
−
1
View file @
08783dda
...
...
@@ -62,8 +62,9 @@ public class Response implements Serializable {
return
result
.
get
(
key
);
}
public
void
put
(
String
key
,
Object
vo
)
{
public
Response
put
(
String
key
,
Object
vo
)
{
result
.
put
(
key
,
vo
);
return
this
;
}
public
void
putAll
(
Map
<
String
,
Object
>
resultMap
)
{
...
...
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