Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const logger = require('../config/appconfig').logger;
- const database = require('../datalayer/mssql.dao');
- const assert = require('assert')
- const session = require
- let functions = {};
- functions.getAllPrograms = (req, res, next) => {
- logger.info('GET /api/programs called');
- const query = 'SELECT * FROM Program';
- database.executeQuery(query, (err, rows) => {
- if (err) {
- const errorObject = {
- message: 'Something went wrong in the database.',
- code: 500
- };
- return next(errorObject);
- }
- if (rows) {
- let result = {};
- if (rows.recordset.length === 0) {
- // TODO: Change this to an error code?
- res.status(200).json({ result: {} });
- }
- rows
- .recordsets[0].forEach(function (value, index, array) {
- const id = value.ProgramID;
- if (!result.hasOwnProperty(id)) {
- result[id] = {
- ProgramID: id,
- Title: value.Title,
- Description: value.Description,
- Author: value.Author,
- ISBN: value.ISBN,
- Publisher: value.Publisher,
- YearOfPublication: value.YearOfPublication,
- PlaceOfPublication: value.PlaceOfPublication,
- AddressPublisher: value.AddressPublisher,
- PhoneNumberOfPublisher: value.PhoneNumberOfPublisher,
- CostOfProgram: value.CostOfProgram,
- WebsitePublisher: value.WebsitePublisher,
- AgeRange: value.AgeRange,
- InclusionCriteria: value.InclusionCriteria,
- ExclusionCriteria: value.ExclusionCriteria,
- AlternativeTargetGroups: value.AlternativeTargetGroups,
- ScientificBasis: value.ScientificBasis,
- UnderlyingTheory: value.UnderlyingTheory,
- EmpiricallyTested: value.EmpiricallyTested,
- Efficiency: value.Efficiency,
- TrainingProgram: value.TrainingProgram,
- ViewOnImpairement: value.ViewOnImpairement,
- ViewOnCare: value.ViewOnCare,
- ViewOnQualityOfCare: value.ViewOnQualityOfCare,
- PotrayalOfMankind: value.PotrayalOfMankind,
- BuiltInAssessment: value.BuiltInAssessment,
- ExternalAssessment: value.ExternalAssessment,
- ConcreteExercise: value.ConcreteExercise,
- GlobalDetailed: value.GlobalDetailed,
- Comments: value.Comments,
- IntensityLevel: value.IntensityLevel,
- IntensityDuring: value.IntensityDuring,
- IntensityCustom: value.IntensityCustom,
- UserID: value.UserID,
- };
- }
- });
- res.status(200).json({ result: result });
- }
- })
- };
- // TODO: Needs an authenticated user.
- functions.createProgram = (req, res, next) => {
- logger.info('POST /api/programs called');
- // Declare the incoming program
- const program = req.body;
- const query = `INSERT INTO Program(Title, Description, Author, ISBN, Publisher, YearOfPublication, PlaceOfPublication, AddressPublisher, PhoneNumberOfPublisher, CostOfProgram, WebsitePublisher, AgeRange, InclusionCriteria, ExclusionCriteria, AlternativeTargetGroups, ScientificBasis, UnderlyingTheory, EmpiricallyTested, Efficiency, TrainingProgram, ViewOnImpairement, ViewOnCare, ViewOnQualityOfCare, PotrayalOfMankind, BuiltInAssessment, ExternalAssessment, ConcreteExercise, GlobalDetailed, Comments, IntensityCustom, UserID)` +
- `VALUES('${program.Title}','${program.Description}', '${program.Author}', '${program.ISBN}', '${program.Publisher}','${program.YearOfPublication}', '${program.PlaceOfPublication}','${program.AddressPublisher}', '${program.PhoneNumberOfPublisher}','${program.CostOfProgram}','${program.WebsitePublisher}','${program.AgeRange}', '${program.InclusionCriteria}','${program.ExclusionCriteria}','${program.AlternativeTargetGroups}','${program.ScientificBasis}','${program.UnderlyingTheory}','${program.EmpiricallyTested}','${program.Efficiency}','${program.TrainingProgram}', '${program.ViewOnImpairement}','${program.ViewOnCare}', '${program.ViewOnQualityOfCare}', '${program.PotrayalOfMankind}','${program.BuiltInAssessment}','${program.ExternalAssessment}','${program.ConcreteExercise}','${program.GlobalDetailed}','${program.Comments}','${program.IntensityCustom}','${program.UserID}'); SELECT ProgramID FROM Program WHERE ProgramID = SCOPE_IDENTITY();`
- database.executeQuery(query, (err, rows) => {
- if (err) {
- const errorObject = {
- message: 'There went something wrong in the database.',
- code: 500
- };
- return next(errorObject);
- }
- if (rows) {
- console.log(rows)
- let languageQuery = `INSERT INTO ProgramLanguage(ProgramID, LanguageID)` +
- `VALUES`;
- for (let i = 0; i < program.Languages.length; i++) {
- ('${program.ProgramID}, ${program.Languages} ')
- languageQuery += '(' + rows.recordset[0].ProgramID + ',' + program.Languages[i] + ')';
- if (i < program.Languages.length - 1) {
- languageQuery += ',';
- }
- }
- let SituationQuery = `INSERT INTO ProgramSituation(ProgramId, SituationId)` +
- `VALUES`;
- for (let i = 0; i < program.Situation.length; i++) {
- ('${program.ProgramID}, ${program.Situation} ')
- SituationQuery += '(' + rows.recordset[0].ProgramID + ',' + program.Situation[i] + ')';
- if (i < program.Situation.length - 1) {
- SituationQuery += ',';
- }
- }
- let ImpairmentQuery = `INSERT INTO ProgramImpairement(ProgramId, ImpairementId)` +
- `VALUES`;
- for (let i = 0; i < program.Impairement.length; i++) {
- ('${program.ProgramID}, ${program.ImpairmentId} ')
- ImpairmentQuery += '(' + rows.recordset[0].ProgramID + ',' + program.Impairement[i] + ')';
- if (i < program.Situation.length - 1) {
- ImpairmentQuery += ',';
- }
- }
- let PractitionerQuery = `INSERT INTO ProgramPractitioner(ProgramId, PractitionerId)` +
- `VALUES`;
- for (let i = 0; i < program.Practitioner.length; i++) {
- ('${program.ProgramID}, ${program.Practitioner} ')
- PractitionerQuery += '(' + rows.recordset[0].ProgramID + ',' + program.Practitioner[i] + ')';
- if (i < program.Practitioner.length - 1) {
- PractitionerQuery += ',';
- }
- }
- let DevelopmentDomainQuery = `INSERT INTO ProgramDevelopmentDomain(ProgramId, DevelopmentDomainId)` +
- `VALUES`;
- for (let i = 0; i < program.DevelopmentDomain.length; i++) {
- ('${program.ProgramID}, ${program.DevelopmentDomain} ')
- DevelopmentDomainQuery += '(' + rows.recordset[0].ProgramID + ',' + program.DevelopmentDomain[i] + ')';
- if (i < program.DevelopmentDomain.length - 1) {
- DevelopmentDomainQuery += ',';
- }
- }
- let TypeOfProgramQuery = `INSERT INTO ProgramTypeOfProgram(ProgramId, TypeOfProgramId)` +
- `VALUES`;
- for (let i = 0; i < program.TypeOfProgram.length; i++) {
- ('${program.ProgramID}, ${program.TypeOfProgram} ')
- TypeOfProgramQuery += '(' + rows.recordset[0].ProgramID + ',' + program.TypeOfProgram[i] + ')';
- if (i < program.TypeOfProgram.length - 1) {
- program[i] + ')';
- if (i < program.TypeOfProgram.length - 1) {
- TypeOfProgramQuery += ',';
- }
- }
- }
- const masterQuery = languageQuery + "; " + SituationQuery + "; " + ImpairmentQuery + "; " + PractitionerQuery + "; " + DevelopmentDomainQuery + "; " + TypeOfProgramQuery
- database.executeQuery(masterQuery, (err, rows2)=>{
- if (err) {
- const errorObject = {
- message: 'There went something wrong in the database.',
- code: 500
- };
- return next(errorObject);
- }
- if(rows2){
- const id = rows.recordset[0].ProgramID
- res.status(200).json({ProgramID:id})
- }
- })
- }
- })
- // TODO: Implement logic
- };
- // Delete program by id function
- functions.deleteProgramByID = (req, res, next) => {
- logger.info('DELETE /api/programs aangeroepen');
- const programId = req.params.programID;
- if (isNaN(programId)) {
- const errorObject = {
- message: 'Please give a valid id number!',
- code: 400
- };
- return next(errorObject);
- }
- const getApartmentQuery = 'SELECT * FROM [Program] ' +
- 'WHERE [ProgramID] = ' + programId;
- database.executeQuery(getApartmentQuery, (err, rows) => {
- // Resolve error or result
- if (err) {
- const errorObject = {
- message: 'There went something wrong in the database.',
- code: 500
- };
- return next(errorObject);
- }
- if (rows.recordset.length === 0) {
- const errorObject = {
- message: 'The data for the given program does not exist!',
- code: 500
- };
- return next(errorObject);
- }
- const deleteQuery = `DELETE FROM Program WHERE ProgramID=${programId}`;
- database.executeQuery(deleteQuery, (deleteErr, deleteRows) => {
- // Resolve error or result
- if (deleteErr) {
- const errorObject = {
- message: 'There went something wrong in the database.',
- code: 500
- };
- return next(errorObject);
- }
- if (deleteRows.rowsAffected[0] === 1) {
- res.status(200).json(rows.recordset[0]);
- } else {
- res.status(500).json({ result: 'Looks like something went wrong!' });
- }
- });
- });
- };
- module.exports = functions;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement