Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
eea556b
certificate template apis added
VISHNUDAS-tunerlabs Sep 29, 2022
4f88e28
mapping certificate template to solution and project
VISHNUDAS-tunerlabs Oct 3, 2022
67f1c27
certificate template api changes
VISHNUDAS-tunerlabs Oct 6, 2022
10d140f
certificate template upload api added
VISHNUDAS-tunerlabs Oct 6, 2022
4213b9a
templateUrl property changed
VISHNUDAS-tunerlabs Oct 7, 2022
4ef1f12
templateUrl auto update added to template upload api
VISHNUDAS-tunerlabs Oct 7, 2022
bc0915a
upload folderpath changed
VISHNUDAS-tunerlabs Oct 7, 2022
fb1c44d
sample request and response changes
VISHNUDAS-tunerlabs Oct 13, 2022
8d8220e
sample req changes
VISHNUDAS-tunerlabs Oct 13, 2022
1c49ba6
review changes
VISHNUDAS-tunerlabs Oct 28, 2022
3fb9ec4
schema changes added, common.js conflict resolve
VISHNUDAS-tunerlabs Oct 28, 2022
8bdbbe9
env changes
VISHNUDAS-tunerlabs Oct 31, 2022
c8ee7b9
Merge branch 'master' into certificate-story
VISHNUDAS-tunerlabs Oct 31, 2022
2c05f40
oracle-cloud storage added
VISHNUDAS-tunerlabs Nov 10, 2022
784523a
downloadable url expiry removed
VISHNUDAS-tunerlabs Nov 10, 2022
7d11793
query removed from downloadable URL
VISHNUDAS-tunerlabs Nov 10, 2022
078a906
Review: .env.sample added, variable change && aws logic added
VISHNUDAS-tunerlabs Nov 11, 2022
b13a212
operator key added
VISHNUDAS-tunerlabs Nov 14, 2022
886c148
Merge pull request #88 from shikshalokam/oracle-cloud-storage
aks30 Nov 15, 2022
543e800
api endpoint change
VISHNUDAS-tunerlabs Nov 16, 2022
1485bee
certificate template model change
VISHNUDAS-tunerlabs Nov 16, 2022
fb3b5e6
review changes
VISHNUDAS-tunerlabs Nov 16, 2022
3210bb8
env changes
VISHNUDAS-tunerlabs Nov 16, 2022
4f5cfcf
generics utils missing code added
VISHNUDAS-tunerlabs Nov 18, 2022
8fea3b6
users service missing code added
VISHNUDAS-tunerlabs Nov 18, 2022
485ae5e
code update adminApi
VISHNUDAS-tunerlabs Nov 18, 2022
c855404
Merge branch 'master' into certificate-story
VISHNUDAS-tunerlabs Nov 18, 2022
77bea70
templateUpload review changes
VISHNUDAS-tunerlabs Nov 20, 2022
074dd01
Merge pull request #84 from shikshalokam/certificate-story
aks30 Nov 21, 2022
d2e256e
review changes
VISHNUDAS-tunerlabs Nov 21, 2022
654f3bf
review changes
VISHNUDAS-tunerlabs Nov 21, 2022
cd7a6e3
changes api-responses
VISHNUDAS-tunerlabs Nov 21, 2022
3666c8c
Merge pull request #89 from shikshalokam/certificate-story
aks30 Nov 21, 2022
2c0c7fd
Merge pull request #97 from shikshalokam/master
aks30 Nov 21, 2022
905aa3f
svg Edit api added
VISHNUDAS-tunerlabs Nov 22, 2022
2e76b25
Merge pull request #91 from shikshalokam/svgTemplateEditAPI
aks30 Nov 22, 2022
af9e41b
Merge pull request #98 from shikshalokam/master
aks30 Nov 23, 2022
156fa40
solution projection updated
VISHNUDAS-tunerlabs Nov 24, 2022
560b1a1
Merge pull request #92 from shikshalokam/certificate-story-stagingED103
aks30 Nov 24, 2022
9838b34
Merge pull request #99 from shikshalokam/master
aks30 Nov 24, 2022
de74046
solution list fix
priyanka-TL Nov 28, 2022
a216369
Merge pull request #93 from shikshalokam/fixSolutionList
priyanka-TL Nov 28, 2022
a100afa
Merge pull request #100 from shikshalokam/master
aks30 Nov 28, 2022
edaf3b4
user-extension solution api : criteriaLevelReport and scoringSystem …
VISHNUDAS-tunerlabs Dec 13, 2022
a6a2e02
Merge pull request #94 from shikshalokam/user-extension
aks30 Dec 15, 2022
0edc5ab
Merge pull request #101 from shikshalokam/master
aks30 Dec 15, 2022
8763643
solutions model updated : rootOrganisations and createdFor added
VISHNUDAS-tunerlabs Dec 29, 2022
8a044c6
Merge pull request #95 from shikshalokam/solutionUpdateFix
aks30 Dec 29, 2022
3cde99f
Merge pull request #104 from shikshalokam/master
aks30 Dec 29, 2022
e3df299
admin api optimization
VISHNUDAS-tunerlabs Jan 12, 2023
a811784
index for code removed, not querying anywhere using code
VISHNUDAS-tunerlabs Jan 12, 2023
c6fcda7
url changes
VISHNUDAS-tunerlabs Jan 12, 2023
168e8a2
Merge pull request #96 from shikshalokam/Admin-API-optimization
aks30 Jan 12, 2023
add6edb
Merge pull request #106 from shikshalokam/master
aks30 Jan 12, 2023
736e06e
baseTemplateFix
VISHNUDAS-tunerlabs Jan 20, 2023
cc61bf0
Merge pull request #98 from shikshalokam/BaseTemplateUpdate_Fix
aks30 Jan 20, 2023
09ea41a
Merge pull request #107 from shikshalokam/master
aks30 Jan 20, 2023
f6a3383
fix for survey solution list via programs tile
VISHNUDAS-tunerlabs Feb 17, 2023
f207551
splited name and desgination in two line
Feb 20, 2023
d5e995e
splited name and desgination in two line
Feb 20, 2023
d1ba376
Merge pull request #101 from shikshalokam/surveyFlowIssue
aks30 Feb 20, 2023
fdb52b8
Merge pull request #109 from shikshalokam/master
aks30 Feb 20, 2023
6a96691
fixed template problem
Feb 20, 2023
1658d1c
Done with template changes
Feb 20, 2023
83525b8
Merge pull request #102 from shikshalokam/certificateName
aks30 Feb 20, 2023
8d523fb
Merge pull request #110 from shikshalokam/master
aks30 Feb 20, 2023
07cb64b
pass array of solutionIds to survey list call
VISHNUDAS-tunerlabs Feb 20, 2023
6a48f1e
Merge pull request #103 from shikshalokam/surveyFlowIssue
aks30 Feb 22, 2023
78a8822
fix for Azure warning throwing if no Azure env found
VISHNUDAS-tunerlabs Feb 22, 2023
4fa57a8
Merge pull request #104 from shikshalokam/surveyFlowIssue
aks30 Feb 22, 2023
9b1009a
Merge pull request #111 from shikshalokam/master
aks30 Feb 22, 2023
0e73ae0
changes:upgradind node v from 12 to 16-sunbird saas deploy issue
praveenKDass Jul 10, 2024
298f4e6
Merge pull request #187 from praveenKDass/release-5.1.0
aks30 Jul 10, 2024
32ce810
hotFixes:form config issue
praveenKDass Oct 1, 2024
0a34eda
Merge pull request #196 from praveenKDass/release-5.1.0
aks30 Oct 1, 2024
42e0572
prod issue hot fixes
praveenKDass Oct 3, 2024
bdbb4a0
Merge pull request #197 from praveenKDass/release-5.1.0
aks30 Oct 3, 2024
fb02888
savepoint
borkarsaish65 Dec 18, 2024
d75d308
code changes + migration script
borkarsaish65 Dec 18, 2024
ad3902e
program listing changes
borkarsaish65 Dec 19, 2024
29b1c55
savepoint
borkarsaish65 Dec 19, 2024
fcc08ca
Merge pull request #198 from borkarsaish65/feature/start_end_date_log…
aks30 Dec 19, 2024
e9503ac
savepoint
borkarsaish65 Jan 6, 2025
7890c21
Merge pull request #199 from borkarsaish65/bugfix/role_validation_issue
aks30 Jan 7, 2025
db73875
savepoint
borkarsaish65 Jan 10, 2025
12e1c3a
self review 2
borkarsaish65 Jan 10, 2025
10206f0
Merge pull request #200 from borkarsaish65/bugfix/date_valid
aks30 Jan 10, 2025
ffbe89e
savepoint
borkarsaish65 Jan 15, 2025
dd65644
Merge branch 'release-5.1.0' of https://github.com/project-sunbird/ml…
borkarsaish65 Jan 15, 2025
234e2d0
savepoint
borkarsaish65 Jan 17, 2025
e2649f2
savepoint
borkarsaish65 Jan 17, 2025
82a0a5d
savepoint
borkarsaish65 Jan 17, 2025
3d4bd6e
savepoint
borkarsaish65 Jan 17, 2025
dc4a144
self review 1
borkarsaish65 Jan 17, 2025
c9ecf67
Merge pull request #201 from borkarsaish65/bugfix/program_listing
aks30 Jan 20, 2025
da667e4
TIMEZONE variable default
borkarsaish65 Jan 23, 2025
00b1976
Merge pull request #202 from borkarsaish65/bugfix/program_listing
aks30 Jan 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,11 @@ CSV_REPORTS_PATH = "public/report"
APP_PORTAL_BASE_URL = "https://dev.sunbirded.org"

FORM_SERVICE_URL = "http://player:3000" // Base url for form search

# Oracle Cloud Configuration
OCI_ACCESS_KEY_ID = '23b90..............d01d' // Oracle cloud storage access key Id
OCI_SECRET_ACCESS_KEY = '22levMw5Ci............SmNE=' // Oracle cloud storage secret access key
OCI_BUCKET_NAME = 'oracle cloud bucket name' // Oracle cloud bucket name
OCI_BUCKET_REGION = 'ap-hyderabad-1' // Oracle cloud bucket region
OCI_BUCKET_ENDPOINT = 'https://pmt5.compat.storage.ap-h1.oraclecloud.com' // Oracle cloud bucket endPoint

2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:12
FROM node:20

WORKDIR /opt/core

Expand Down
83 changes: 83 additions & 0 deletions controllers/v1/certificateBaseTemplates.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/**
* name : certificateBaseTemplates.js
* author : Vishnu
* created-date : 11-Jan-2023
* Description : Certificate base template related information.
*/

// Dependencies
const certificateBaseTemplateHelper = require(MODULES_BASE_PATH + "/certificateBaseTemplates/helper");

module.exports = class CertificateBaseTemplates extends Abstract {
// Adding model schema
constructor() {
super(schemas["certificateBaseTemplates"]);
}

/**
* @api {post/patch} /kendra/api/v1/certificateBaseTemplates/createOrUpdate
* @apiVersion 1.0.0
* @apiName Create certificate template
* @apiGroup certificateBaseTemplates
* @apiParamExample {json} Request-Body:
* {
"code": "SingleLogoSingleSign"
}

* @apiHeader {String} internal-access-token - internal access token
* @apiHeader {String} X-authenticated-user-token - Authenticity token
* @apiSampleRequest /kendra/api/v1/certificateBaseTemplates/createOrUpdate
* @apiUse successBody
* @apiUse errorBody
* @apiParamExample {json} Response:
* {
"status": 200,
"message": "Base template added successfully",
"result": {
id": "6011136a2d25b926974d9ec9"
}
}
*/

/**
* Create/update certificate base template.
* @method
* @name createOrUpdate
* @param {Object} req - requested data.
* @returns {JSON} Created certificate base template data.
*/

async createOrUpdate(req) {
return new Promise(async (resolve, reject) => {
try {
if ( req.method === "POST" ) {
if ( req.files && req.files.file ) {
let certificateBaseTemplateData = await certificateBaseTemplateHelper.create( req.body, req.files, req.userDetails.userId );
certificateBaseTemplateData["result"] = certificateBaseTemplateData.data;
return resolve(certificateBaseTemplateData);
} else {
throw ({
status: httpStatusCode["bad_request"].status,
message: httpStatusCode["bad_request"].message
});
}
} else if ( req.method === "PATCH" ) {
let certificateBaseTemplateData = await certificateBaseTemplateHelper.update(
req.params._id,
req.body,
req.files,
req.userDetails.userId
);
certificateBaseTemplateData["result"] = certificateBaseTemplateData.data;
return resolve(certificateBaseTemplateData);
}
} catch (error) {
return reject({
status: error.status || httpStatusCode.internal_server_error.status,
message: error.message || httpStatusCode.internal_server_error.message,
errorObject: error
});
}
});
}
}
245 changes: 245 additions & 0 deletions controllers/v1/certificateTemplates.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
/**
* name : certificateTemplates.js
* author : Vishnu
* created-date : 29-Sep-2022
* Description : Certificate template related information.
*/

// Dependencies
const certificateTemplateHelper = require(MODULES_BASE_PATH + "/certificateTemplates/helper");

module.exports = class CertificateTemplates extends Abstract {
// Adding model schema
constructor() {
super(schemas["certificateTemplates"]);
}

/**
* @api {post/patch} /kendra/api/v1/certificateTemplates/createOrUpdate
* @apiVersion 1.0.0
* @apiName Create certificate template
* @apiGroup CertificateTemplates
* @apiParamExample {json} Request-Body:
* { "templateUrl" :"certificateTemplates/6343bd978f9d8980b7841e85/ba9aa220-ff1b-4717-b6ea-ace55f04fc16_2022-9-10-1665383945769.svg",
"criteria" : {
"validationText" : "Complete validation message",
"expression" : "C1&&C2&&C3",
"conditions" : {
"C1" : {
"validationText" : "Project Should be submitted within program Enddate",
"expression" : "C1&&C2",
"conditions" : {
"C1" : {
"scope" : "project",
"key" : "status",
"operator" : "==",
"value" : "submitted"
},
"C2" : {
"scope" : "project",
"key" : "completedDate",
"operator" : "<",
"value" : "15-08-2022"
}
}
},
"C2" : {
"validationText" : "Evidence project level validation",
"expression" : "C1",
"conditions" : {
"C1" : {
"scope" : "project",
"key" : "attachments",
"function" : "count",
"filter" : {
"key" : "type",
"value" : "all"
},
"operator" : ">",
"value" : 1
}
}
},
"C3" : {
"validationText" : "Evidence task level validation",
"expression" : "C1&&C2&&C3",
"conditions" : {
"C1" : {
"scope" : "task",
"key" : "attachments",
"function" : "count",
"filter" : {
"key" : "type",
"value" : "all"
},
"operator" : ">",
"value" : 1
}
}
}
}
},
"issuer": {
"name":"Kerala"
},
"status" : "active",
"solutionId" : "5ff9dc1b9259097d48017bbe",
"programId" : "605083ba09b7bd61555580fb"

}

* @apiHeader {String} internal-access-token - internal access token
* @apiHeader {String} X-authenticated-user-token - Authenticity token
* @apiSampleRequest /kendra/api/v1/certificateTemplates/create
* @apiUse successBody
* @apiUse errorBody
* @apiParamExample {json} Response:
* {
"status": 200,
"message": "Template added successfully",
"result": {
id": "6011136a2d25b926974d9ec9"
}
}
*/

/**
* Create/update certificate template.
* @method
* @name createOrUpdate
* @param {Object} req - requested data.
* @returns {JSON} Created certificate template data.
*/

async createOrUpdate(req) {
return new Promise(async (resolve, reject) => {
try {
if ( req.method === "POST" ) {
let certificateTemplateData = await certificateTemplateHelper.create( req.body );
certificateTemplateData["result"] = certificateTemplateData.data;
return resolve(certificateTemplateData);
} else if ( req.method === "PATCH" ) {
let certificateTemplateData = await certificateTemplateHelper.update(
req.params._id,
req.body,
);
certificateTemplateData["result"] = certificateTemplateData.data;
return resolve(certificateTemplateData);
}
} catch (error) {
return reject({
status: error.status || httpStatusCode.internal_server_error.status,
message: error.message || httpStatusCode.internal_server_error.message,
errorObject: error
});
}
});
}

/**
* @api {post} /kendra/api/v1/certificateTemplates/uploadCertificateTemplate
* @apiVersion 1.0.0
* @apiName upload certificate template
* @apiGroup uploadCertificateTemplate
* @apiHeader {String} internal-access-token - internal access token
* @apiHeader {String} X-authenticated-user-token - Authenticity token
* @apiSampleRequest /kendra/api/v1/certificateTemplates/uploadCertificateTemplate
* @apiUse successBody
* @apiUse errorBody
* @apiParamExample {json} Response:
* {
"message": "File uploaded successfully",
"status": 200,
"result": {
"success": true,
"data": {
"templateUrl": "certificateTemplates/6343bd978f9d8980b7841e85/ba9aa220-ff1b-4717-b6ea-ace55f04fc16_2022-9-10-1665383945769.svg"
}
}
}
*/

/**
* uploadTemplate.
* @method
* @name uploadTemplate
* @param {Object} req - requested data.
* @returns {JSON} file uploaded details.
*/

async uploadTemplate(req) {
return new Promise(async (resolve, reject) => {
try {

if ( req.files && req.files.file ) {
let uploadedTemplateDetails =
await certificateTemplateHelper.uploadToCloud(
req.files,
req.params._id,
req.userDetails ? req.userDetails.userId : "",
req.query.updateTemplate ? req.query.updateTemplate : true
);
return resolve({
message: constants.apiResponses.FILE_UPLOADED,
result: uploadedTemplateDetails
})
} else {
return reject({
status: httpStatusCode["bad_request"].status,
message: httpStatusCode["bad_request"].message

});
}
} catch (error) {
return reject({
status: error.status || httpStatusCode.internal_server_error.status,
message: error.message || httpStatusCode.internal_server_error.message,
errorObject: error
});
}
});
}
/**
* @api {post} /kendra/api/v1/certificateTemplates/createSvg
* @apiVersion 1.0.0
* @apiName createSvg certificate template svg
* @apiGroup createSvg
* @apiHeader {String} internal-access-token - internal access token
* @apiHeader {String} X-authenticated-user-token - Authenticity token
* @apiSampleRequest /kendra/api/v1/certificateTemplates/createSvg?baseTemplateId=
* @apiUse successBody
* @apiUse errorBody
* @apiParamExample {json} Response:
* {
"message": "Template edited successfully",
"status": 200,
"result": {
"url": "https://sunbirdstagingpublic.blob.core.windows.net/samiksha/certificateTemplates/BASE_TEMPLATE/_22-10-2022-1669120782574.svg?sv=2020-10-02&st=2022-11-22T12%3A39%3A42Z&se=2023-11-22T12%3A49%3A42Z&sr=b&sp=rw&sig=gLnKb1T32swAQQ%2Bgtaaa967d6c0GIL%2FGRcGCwjvpI30%3D"
}
}
*/

/**
* generate cettificate templateSvg.
* @method
* @name createSvg
* @param {Object} req - requested data.
* @returns {JSON} -svg uploaded details.
*/

async createSvg(req) {
return new Promise(async (resolve, reject) => {
try {

let svgData = await certificateTemplateHelper.createSvg(req.files, req.body, req.query.baseTemplateId);
return resolve(svgData);
} catch (error) {
return reject({
status: error.status || httpStatusCode.internal_server_error.status,
message: error.message || httpStatusCode.internal_server_error.message,
errorObject: error
});
}
});
}
}
6 changes: 4 additions & 2 deletions controllers/v1/programs.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,8 @@ module.exports = class Programs extends Abstract {

req.body.userId = req.userDetails.userId;
let programCreationData = await programsHelper.create(
req.body
req.body,
true
);

return resolve({
Expand Down Expand Up @@ -221,7 +222,8 @@ module.exports = class Programs extends Abstract {
let programUpdationData = await programsHelper.update(
req.params._id,
req.body,
req.userDetails.userId
req.userDetails.userId,
true
);

programUpdationData.result = programUpdationData.data;
Expand Down
6 changes: 4 additions & 2 deletions controllers/v1/solutions.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ module.exports = class Solutions extends Abstract {
try {

let solutionData = await solutionsHelper.createSolution(
req.body
req.body,
true
);

solutionData["result"] = solutionData.data;
Expand Down Expand Up @@ -121,7 +122,8 @@ module.exports = class Solutions extends Abstract {
let solutionData = await solutionsHelper.update(
req.params._id,
req.body,
req.userDetails.id
req.userDetails.id,
true
);

return resolve(solutionData);
Expand Down
Loading