1
0

Store.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. //© 2019 Dublin City University, Trinity College Dublin. All rights reserved. This material may not be reproduced, displayed, modified or distributed without the express prior written permission of the copyright holder.
  2. var path = require('path');
  3. const dataStoreFile = __dirname+'/store/datasetConfig.json';
  4. //const dataStoreFile = path.normalize(path.resolve(__dirname))+'/store/datasetConfig.json';
  5. class datasetsController {
  6. getStatus(req, res) {
  7. return res.status(200).send(
  8. {
  9. status : "OK"
  10. }
  11. );
  12. }
  13. getAllDataset(req, res) {
  14. const fs = require('fs');
  15. let rawdata = fs.readFileSync(dataStoreFile);
  16. let transformedData = JSON.parse(rawdata);
  17. return res.status(200).send(
  18. transformedData
  19. );
  20. }
  21. getDataset(req, res) {
  22. const fs = require('fs');
  23. let datasetFound = false;
  24. let datasetDetails=[];
  25. let rawdata = fs.readFileSync(dataStoreFile);
  26. let transformedData = JSON.parse(rawdata);
  27. const datasetID = parseInt(req.query.datasetID, 10);
  28. let datasetPLD = req.query.datasetPLD;
  29. let datasetName = req.query.datasetName;
  30. transformedData["datasetDetails"].map((dataset) => {
  31. console.log(req.query)
  32. if (datasetID){
  33. if (dataset.datasetID === datasetID) {
  34. datasetDetails.push(dataset);
  35. }
  36. }
  37. else if (datasetName)
  38. {
  39. if (((dataset.datasetName).toUpperCase()).includes(datasetName.toUpperCase())) {
  40. datasetDetails.push(dataset);
  41. }
  42. }
  43. else if (datasetPLD)
  44. {
  45. if (dataset.datasetPLD === datasetPLD) {
  46. datasetDetails.push(dataset);
  47. }
  48. }
  49. console.log(datasetDetails)
  50. });
  51. if (datasetDetails.length>0){
  52. return res.status(200).send({
  53. datasetDetails
  54. });
  55. }
  56. else{
  57. return res.status(404).send({
  58. success: 'false',
  59. message: 'Dataset configuration details does not exist',
  60. });
  61. }
  62. }
  63. updateDataset(req, res) {
  64. const fs = require('fs');
  65. let rawdata = fs.readFileSync(dataStoreFile);
  66. let transformedData = JSON.parse(rawdata);
  67. const datasetID = parseInt(req.query.datasetID, 10);
  68. let datasetFound;
  69. let datasetIndex;
  70. let newLastAssessmentRequestID = req.body.lastAssessmentRequestID;
  71. let newfileName = req.body.fileName;
  72. let newisSparqlEndPoint = req.body.isSparqlEndPoint;
  73. let newsparqlEndPoint = req.body.sparqlEndPoint;
  74. let newexpectedProgress = req.body.expectedProgress;
  75. let newassessmentMetrics = req.body.assessmentMetrics;
  76. let newKnowledgeBaseID = req.body.knowledgeBaseID;
  77. transformedData["datasetDetails"].map((dataset, index) => {
  78. if (dataset.datasetID === datasetID) {
  79. datasetFound = dataset;
  80. datasetIndex = index;
  81. }
  82. });
  83. if (!datasetFound) {
  84. return res.status(404).send({
  85. success: 'false',
  86. message: 'Dataset configuration details does not exist',
  87. });
  88. }
  89. else
  90. {
  91. if(typeof newLastAssessmentRequestID!=="undefined")
  92. {
  93. transformedData["datasetDetails"][datasetIndex].lastAssessmentRequestID=newLastAssessmentRequestID;
  94. }
  95. if(typeof newfileName!=="undefined")
  96. {
  97. transformedData["datasetDetails"][datasetIndex].fileName=newfileName;
  98. }
  99. if(typeof newisSparqlEndPoint!=="undefined")
  100. {
  101. transformedData["datasetDetails"][datasetIndex].isSparqlEndPoint=newisSparqlEndPoint;
  102. }
  103. if(typeof newsparqlEndPoint!=="undefined")
  104. {
  105. transformedData["datasetDetails"][datasetIndex].sparqlEndPoint=newsparqlEndPoint;
  106. }
  107. if(typeof newexpectedProgress!=="undefined")
  108. {
  109. transformedData["datasetDetails"][datasetIndex].expectedProgress=newexpectedProgress;
  110. }
  111. if(typeof newassessmentMetrics!=="undefined")
  112. {
  113. transformedData["datasetDetails"][datasetIndex].assessmentMetrics=newassessmentMetrics;
  114. }
  115. if(typeof newKnowledgeBaseID!=="undefined")
  116. {
  117. transformedData["datasetDetails"][datasetIndex].knowledgeBaseID=newKnowledgeBaseID;
  118. }
  119. let updatedData = JSON.stringify(transformedData,null, 2);
  120. fs.writeFileSync(dataStoreFile, updatedData);
  121. return res.status(200).send({
  122. success: 'true',
  123. message: 'Dataset Updated successfuly',
  124. });
  125. }
  126. }
  127. addDataset(req, res) {
  128. const fs = require('fs');
  129. let rawdata = fs.readFileSync(dataStoreFile);
  130. let transformedData = JSON.parse(rawdata);
  131. const datasetDetails = {
  132. datasetID: parseInt(req.body.datasetID,10),
  133. datasetName: req.body.datasetName,
  134. fileName: req.body.fileName,
  135. datasetPLD: req.body.datasetPLD,
  136. knowledgeBaseID : req.body.knowledgeBaseID,
  137. isSparqlEndPoint: req.body.isSparqlEndPoint,
  138. sparqlEndPoint: req.body.sparqlEndPoint,
  139. lastAssessmentRequestID: req.body.lastAssessmentRequestID,
  140. expectedProgress: Number(req.body.expectedProgress),
  141. assessmentMetrics: req.body.assessmentMetrics
  142. };
  143. transformedData["datasetDetails"].push(datasetDetails);
  144. let updatedData = JSON.stringify(transformedData,null, 2);
  145. fs.writeFileSync(dataStoreFile, updatedData);
  146. return res.status(201).send({
  147. success: 'true',
  148. message: 'Dataset configuration details added successfully'
  149. });
  150. }
  151. removeDataset(req, res) {
  152. const fs = require('fs');
  153. let rawdata = fs.readFileSync(dataStoreFile);
  154. let transformedData = JSON.parse(rawdata);
  155. const datasetID = parseInt(req.query.datasetID, 10);
  156. let datasetFound;
  157. let datasetIndex;
  158. transformedData["datasetDetails"].map((dataset, index) => {
  159. if (dataset.datasetID === datasetID) {
  160. datasetFound = dataset;
  161. datasetIndex = index;
  162. }
  163. });
  164. if (!datasetFound) {
  165. return res.status(404).send({
  166. success: 'false',
  167. message: 'Dataset configuration details does not exist',
  168. });
  169. }
  170. else
  171. {
  172. transformedData["datasetDetails"].splice(datasetIndex, 1);
  173. let updatedData = JSON.stringify(transformedData,null, 2);
  174. fs.writeFileSync(dataStoreFile, updatedData);
  175. return res.status(200).send({
  176. success: 'true',
  177. message: 'Dataset deleted successfuly',
  178. });
  179. }
  180. }
  181. }
  182. const datasetController = new datasetsController();
  183. export default datasetController;