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-mw-service
Commits
f5c2f640
Commit
f5c2f640
authored
6 years ago
by
Sourav Dey
Browse files
Options
Download
Patches
Plain Diff
Issue #SB-9178 feat: Lock creation API
parent
20c9b768
master
dependabot/npm_and_yarn/src/async-2.6.4
dependabot/npm_and_yarn/src/decode-uri-component-0.2.2
dependabot/npm_and_yarn/src/flat-and-mocha-5.0.2
dependabot/npm_and_yarn/src/handlebars-4.7.7
dependabot/npm_and_yarn/src/jsonwebtoken-9.0.0
dependabot/npm_and_yarn/src/lodash-4.17.21
dependabot/npm_and_yarn/src/minimist-and-project-sunbird/telemetry-sdk-and-handlebars-and-mkdirp-1.2.8
release-3.6.0
release-4.3.0
release-4.8.0
release-5.2.0
release-5.3.0
release-5.6.0
release-6.0.0
v1.13.3
v1.13
v1.12
tmp-testPR
tmp-sunbird-bootcamp
tmp-rjshrjndrn-patch-1
tmp-revert-118-testPR
tmp-revert-110-logs
tmp-revert-99-revert-98-revert-97-revert-96-rjshrjndrn-patch-1
tmp-revert-98-revert-97-revert-96-rjshrjndrn-patch-1
tmp-revert-97-revert-96-rjshrjndrn-patch-1
tmp-revert-96-rjshrjndrn-patch-1
tmp-release-sonarcloud
tmp-release-2.6.0
tmp-release-2.3.0
tmp-release-2.1.1
tmp-release-2.1.0
tmp-release-2.1.0_pluginSearch
tmp-release-2.0.0
tmp-release-1.15
tmp-release-1.14.3
tmp-release-1.14
tmp-release-1.14-sp3
tmp-refactored-dev-deploy
tmp-master
tmp-loadtest
tmp-load-testing
tmp-jenkins-test
tmp-jenkins-pipeline
tmp-final-variable-refac
tmp-dial-assemble-api
tmp-content-update-read
tmp-circleci
release-5.6.0_RC1
release-5.2.0_RC1
release-4.8.5_RC1
release-4.8.0_RC2
release-4.8.0_RC1
release-4.3.0_RC1
release-3.8.0_RC3
release-3.8.0_RC2
release-3.8.0_RC1
release-3.7.0_RC2
release-3.7.0_RC1
release-3.6.0_RC1
release-3.2.0_RC2
release-3.2.0_RC1
release-3.1.0
release-3.1.0_RC2
release-3.1.0_RC1
release-3.0.1_RC1
release-3.0.0
release-3.0.0_RC1
release-2.10.0
release-2.10.0_RC2
release-2.10.0_RC1
release-2.9.0_RC3
release-2.9.0_RC2
release-2.9.0_RC1
release-2.8.0
release-2.8.0_RC4
release-2.8.0_RC3
release-2.8.0_RC2
release-2.8.0_RC1
release-2.7.0
release-2.7.0_RC2
release-2.7.0_RC1
release-2.6.0
release-2.6.0_RC4
release-2.6.0_RC3
release-2.6.0_RC2
release-2.6.0_RC1
release-2.3.0
release-2.3.0_RC2
release-2.3.0_RC1
release-2.1.1_RC1
release-2.1.0_RC2
release-2.1.0_RC1
release-2.0.0
release-2.0.0_RC5
release-2.0.0_RC4
release-2.0.0_RC3
release-2.0.0_RC2
release-2.0.0_RC1
release-1.15.0
release-1.15_RC7
release-1.15_RC6
release-1.15_RC5
release-1.15_RC4
release-1.15_RC3
release-1.15_RC2
release-1.15_RC1
release-1.14.0
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
src/models/contentModel.js
+5
-0
src/models/contentModel.js
src/routes/lockRoutes.js
+9
-9
src/routes/lockRoutes.js
src/service/lockService.js
+161
-7
src/service/lockService.js
src/service/messageUtil.js
+17
-1
src/service/messageUtil.js
with
192 additions
and
17 deletions
+192
-17
src/models/contentModel.js
+
5
−
0
View file @
f5c2f640
...
...
@@ -22,6 +22,11 @@ module.exports.CONTENT = {
'
createdBy
'
:
'
required|string
'
,
'
creatorInfo
'
:
'
required|string
'
,
'
deviceId
'
:
'
required|string
'
},
REFRESH_LOCK
:
{
'
resourceId
'
:
'
required|string
'
,
'
resourceType
'
:
'
required|string
'
}
}
This diff is collapsed.
Click to expand it.
src/routes/lockRoutes.js
+
9
−
9
View file @
f5c2f640
...
...
@@ -14,15 +14,15 @@ module.exports = function (app) {
.
post
(
requestMiddleware
.
createAndValidateRequestBody
,
requestMiddleware
.
validateToken
,
lockService
.
createLock
)
//
app.route(BASE_URL + '/refresh')
//
.patch(requestMiddleware.createAndValidateRequestBody, requestMiddleware.validateToken,
//
collaboratorService.updateCollaborators
)
app
.
route
(
BASE_URL
+
'
/refresh
'
)
.
patch
(
requestMiddleware
.
createAndValidateRequestBody
,
requestMiddleware
.
validateToken
,
lockService
.
refreshLock
)
//
app.route(BASE_URL + '/retire')
// .patch
(requestMiddleware.createAndValidateRequestBody, requestMiddleware.validateToken,
//
collaboratorService.updateCollaborators
)
app
.
route
(
BASE_URL
+
'
/retire
'
)
.
delete
(
requestMiddleware
.
createAndValidateRequestBody
,
requestMiddleware
.
validateToken
,
lockService
.
retireLock
)
//
app.route(BASE_URL + '/list')
// .patch
(requestMiddleware.createAndValidateRequestBody,
requestMiddleware.validateToken,
//
collaboratorService.updateCollaborators
)
app
.
route
(
BASE_URL
+
'
/list
'
)
.
get
(
requestMiddleware
.
createAndValidateRequestBody
,
lockService
.
listLock
)
}
This diff is collapsed.
Click to expand it.
src/service/lockService.js
+
161
−
7
View file @
f5c2f640
...
...
@@ -22,17 +22,16 @@ var filename = path.basename(__filename)
var
contentMessage
=
messageUtils
.
CONTENT
var
responseCode
=
messageUtils
.
RESPONSE_CODE
var
defaultLockExpiryTime
=
configUtil
.
getConfig
(
'
LOCK_EXPIRY_TIME
'
)
var
oldDateObj
=
new
Date
()
var
newDateObj
=
new
Date
()
newDateObj
.
setTime
(
oldDateObj
.
getTime
()
+
(
defaultLockExpiryTime
*
1000
))
function
createLock
(
req
,
response
)
{
// var oldDateObj = new Date()
var
newDateObj
=
createExpiryTime
()
var
data
=
req
.
body
var
rspObj
=
req
.
rspObj
// Adding objectData in telemetry
if
(
rspObj
.
telemetryData
)
{
rspObj
.
telemetryData
.
object
=
utilsService
.
getObjectData
(
data
.
request
.
resourceId
,
'
l
ock
'
,
''
,
{})
rspObj
.
telemetryData
.
object
=
utilsService
.
getObjectData
(
data
.
request
.
resourceId
,
'
contentL
ock
'
,
''
,
{})
}
if
(
!
data
.
request
||
!
validatorUtil
.
validate
(
data
.
request
,
contentModel
.
CREATE_LOCK
))
{
...
...
@@ -88,7 +87,7 @@ function createLock (req, response) {
createdBy
:
data
.
request
.
createdBy
,
creatorInfo
:
data
.
request
.
creatorInfo
,
deviceId
:
data
.
request
.
deviceId
,
created_on
:
old
Date
Obj
,
created_on
:
new
Date
()
,
expiresAt
:
newDateObj
})
...
...
@@ -106,13 +105,17 @@ function createLock (req, response) {
})
},
function
(
res
)
{
function
()
{
rspObj
.
result
.
expiresIn
=
new
Date
(
newDateObj
).
getTime
()
return
response
.
status
(
200
).
send
(
respUtil
.
successResponse
(
rspObj
))
}
])
}
function
createExpiryTime
()
{
return
new
Date
().
setTime
(
new
Date
().
getTime
()
+
(
defaultLockExpiryTime
*
1000
))
}
function
checkResourceTypeValidation
(
req
,
CBW
)
{
switch
(
lodash
.
lowerCase
(
req
.
body
.
request
.
resourceType
))
{
case
'
content
'
:
...
...
@@ -135,4 +138,155 @@ function checkResourceTypeValidation (req, CBW) {
}
}
module
.
exports
.
createLock
=
createLock
function
refreshLock
(
req
,
response
)
{
var
newDateObj
=
createExpiryTime
()
var
data
=
req
.
body
var
rspObj
=
req
.
rspObj
// Adding objectData in telemetry
if
(
rspObj
.
telemetryData
)
{
rspObj
.
telemetryData
.
object
=
utilsService
.
getObjectData
(
data
.
request
.
resourceId
,
'
refreshLock
'
,
''
,
{})
}
if
(
!
data
.
request
||
!
validatorUtil
.
validate
(
data
.
request
,
contentModel
.
REFRESH_LOCK
))
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
refreshLockAPI
'
,
'
Error due to required params are missing
'
,
data
.
request
))
rspObj
.
errCode
=
contentMessage
.
REFRESH_LOCK
.
MISSING_CODE
rspObj
.
errMsg
=
contentMessage
.
REFRESH_LOCK
.
MISSING_MESSAGE
rspObj
.
responseCode
=
responseCode
.
CLIENT_ERROR
return
response
.
status
(
400
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
async
.
waterfall
([
function
(
CBW
)
{
dbModel
.
instance
.
create_lock
.
findOne
({
resourceId
:
data
.
request
.
resourceId
},
{
resourceType
:
data
.
request
.
resourceType
},
function
(
error
,
result
)
{
if
(
error
)
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
error while getting data from db
'
,
'
error while getting data from db for refreshing lock
'
,
data
.
request
))
rspObj
.
errCode
=
contentMessage
.
REFRESH_LOCK
.
FAILED_CODE
rspObj
.
errMsg
=
contentMessage
.
REFRESH_LOCK
.
FAILED_MESSAGE
rspObj
.
responseCode
=
responseCode
.
SERVER_ERROR
return
response
.
status
(
500
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
else
if
(
result
)
{
if
(
result
.
createdBy
!==
req
.
headers
[
'
x-authenticated-userid
'
])
{
rspObj
.
errCode
=
contentMessage
.
REFRESH_LOCK
.
FAILED_CODE
rspObj
.
errMsg
=
contentMessage
.
REFRESH_LOCK
.
FAILED_MESSAGE
rspObj
.
responseCode
=
responseCode
.
SERVER_ERROR
return
response
.
status
(
403
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
var
options
=
{
ttl
:
defaultLockExpiryTime
,
if_exists
:
true
}
dbModel
.
instance
.
create_lock
.
update
(
{
resourceId
:
data
.
request
.
resourceId
},
{
expiresAt
:
newDateObj
},
options
,
function
(
err
)
{
if
(
err
)
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
error while updating data to db
'
,
'
error while updating lock data from db
'
,
err
))
rspObj
.
errCode
=
contentMessage
.
REFRESH_LOCK
.
FAILED_CODE
rspObj
.
errMsg
=
contentMessage
.
REFRESH_LOCK
.
FAILED_MESSAGE
rspObj
.
responseCode
=
responseCode
.
SERVER_ERROR
return
response
.
status
(
500
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
CBW
()
})
}
else
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
no data found from db
'
,
'
no data found from db for refreshing lock
'
,
data
.
request
))
rspObj
.
errCode
=
contentMessage
.
REFRESH_LOCK
.
FAILED_CODE
rspObj
.
errMsg
=
contentMessage
.
REFRESH_LOCK
.
NOT_FOUND_FAILED_MESSAGE
rspObj
.
responseCode
=
responseCode
.
SERVER_ERROR
return
response
.
status
(
500
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
})
},
function
()
{
rspObj
.
result
.
expiresIn
=
new
Date
(
newDateObj
).
getTime
()
return
response
.
status
(
200
).
send
(
respUtil
.
successResponse
(
rspObj
))
}
])
}
function
retireLock
(
req
,
response
)
{
var
data
=
req
.
body
var
rspObj
=
req
.
rspObj
// Adding objectData in telemetry
if
(
rspObj
.
telemetryData
)
{
rspObj
.
telemetryData
.
object
=
utilsService
.
getObjectData
(
data
.
request
.
resourceId
,
'
retireLock
'
,
''
,
{})
}
if
(
!
data
.
request
||
!
validatorUtil
.
validate
(
data
.
request
,
contentModel
.
REFRESH_LOCK
))
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
retireLockAPI
'
,
'
Error due to required params are missing
'
,
data
.
request
))
rspObj
.
errCode
=
contentMessage
.
REFRESH_LOCK
.
MISSING_CODE
rspObj
.
errMsg
=
contentMessage
.
REFRESH_LOCK
.
MISSING_MESSAGE
rspObj
.
responseCode
=
responseCode
.
CLIENT_ERROR
return
response
.
status
(
400
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
async
.
waterfall
([
function
(
CBW
)
{
dbModel
.
instance
.
create_lock
.
findOne
({
resourceId
:
data
.
request
.
resourceId
},
{
resourceType
:
data
.
request
.
resourceType
},
function
(
error
,
result
)
{
if
(
error
)
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
error while getting data from db
'
,
'
error while getting data from db for retiring lock
'
,
data
.
request
))
rspObj
.
errCode
=
contentMessage
.
RETIRE_LOCK
.
FAILED_CODE
rspObj
.
errMsg
=
contentMessage
.
RETIRE_LOCK
.
FAILED_MESSAGE
rspObj
.
responseCode
=
responseCode
.
SERVER_ERROR
return
response
.
status
(
500
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
else
if
(
result
)
{
dbModel
.
instance
.
create_lock
.
delete
({
resourceId
:
data
.
request
.
resourceId
},
{
resourceType
:
data
.
request
.
resourceType
},
function
(
err
)
{
if
(
err
)
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
error while deleting data to db
'
,
'
error while deleting lock data from db
'
,
err
))
rspObj
.
errCode
=
contentMessage
.
RETIRE_LOCK
.
FAILED_CODE
rspObj
.
errMsg
=
contentMessage
.
RETIRE_LOCK
.
FAILED_MESSAGE
rspObj
.
responseCode
=
responseCode
.
SERVER_ERROR
return
response
.
status
(
500
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
else
CBW
()
})
}
else
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
no data found from db
'
,
'
no data found from db for retiring lock
'
,
data
.
request
))
rspObj
.
errCode
=
contentMessage
.
RETIRE_LOCK
.
FAILED_CODE
rspObj
.
errMsg
=
contentMessage
.
RETIRE_LOCK
.
NOT_FOUND_FAILED_MESSAGE
rspObj
.
responseCode
=
responseCode
.
SERVER_ERROR
return
response
.
status
(
500
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
})
},
function
()
{
return
response
.
status
(
200
).
send
(
respUtil
.
successResponse
(
rspObj
))
}
])
}
function
listLock
(
req
,
response
)
{
var
data
=
req
.
body
var
rspObj
=
req
.
rspObj
// Adding objectData in telemetry
if
(
rspObj
.
telemetryData
)
{
rspObj
.
telemetryData
.
object
=
utilsService
.
getObjectData
(
data
,
'
listLock
'
,
''
,
{})
}
dbModel
.
instance
.
create_lock
.
find
({},
function
(
error
,
result
)
{
if
(
error
)
{
LOG
.
error
(
utilsService
.
getLoggerData
(
rspObj
,
'
ERROR
'
,
filename
,
'
error while getting data from db
'
,
'
error while fetching lock list data from db
'
,
data
))
rspObj
.
errCode
=
contentMessage
.
RETIRE_LOCK
.
FAILED_CODE
rspObj
.
errMsg
=
contentMessage
.
RETIRE_LOCK
.
FAILED_MESSAGE
rspObj
.
responseCode
=
responseCode
.
SERVER_ERROR
return
response
.
status
(
500
).
send
(
respUtil
.
errorResponse
(
rspObj
))
}
else
{
rspObj
.
result
.
count
=
result
.
length
rspObj
.
result
.
data
=
result
return
response
.
status
(
200
).
send
(
respUtil
.
successResponse
(
rspObj
))
}
})
}
module
.
exports
=
{
createLock
,
refreshLock
,
retireLock
,
listLock
}
This diff is collapsed.
Click to expand it.
src/service/messageUtil.js
+
17
−
1
View file @
f5c2f640
...
...
@@ -262,7 +262,23 @@ exports.CONTENT = {
MISSING_MESSAGE
:
'
Required fields for creating lock
'
,
FAILED_CODE
:
'
ERR_LOCK_CREATION_FAILED
'
,
FAILED_MESSAGE
:
'
Creating lock failed
'
,
ALREADY_LOCKED
:
'
The content is already locked by {{Name}}
'
ALREADY_LOCKED
:
'
The resource is already locked by {{Name}}
'
},
REFRESH_LOCK
:
{
MISSING_CODE
:
'
ERR_LOCK_REFRESHING_FIELDS_MISSING
'
,
MISSING_MESSAGE
:
'
Required fields for refreshing lock
'
,
FAILED_CODE
:
'
ERR_LOCK_REFRESHING_FAILED
'
,
FAILED_MESSAGE
:
'
Refreshing lock failed
'
,
NOT_FOUND_FAILED_MESSAGE
:
'
Either resource id is not valid or resource is not locked
'
},
RETIRE_LOCK
:
{
MISSING_CODE
:
'
ERR_LOCK_RETIRING_FIELDS_MISSING
'
,
MISSING_MESSAGE
:
'
Required fields for retiring lock
'
,
FAILED_CODE
:
'
ERR_LOCK_RETIRING_FAILED
'
,
FAILED_MESSAGE
:
'
Retiring lock failed
'
,
NOT_FOUND_FAILED_MESSAGE
:
'
Either resource id is not valid or resource is not locked
'
}
}
...
...
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