@@ -5,8 +5,8 @@ var Applications = require('../utils/database').Application;
55
66var knex = require ( '../utils/database' ) . knex ;
77var jwt = require ( 'jsonwebtoken' ) ; // used to create, sign, and verify tokens
8- var dateFormat = require ( 'dateformat' ) ;
98var Errors = require ( '../utils/errors' ) ;
9+ var moment = require ( 'moment' ) ;
1010
1111/**
1212 * apply to participate in specific course
@@ -30,25 +30,7 @@ exports.coursesCourse_idApplyPOST = function (course_id, req) {
3030 . fetchAll ( )
3131 . then ( ( applications ) => {
3232 if ( applicationFound ( applications , user_id , course_id ) ) {
33- let data = {
34- ANM_DATUM : dateFormat ( Date . now ( ) , "yyyy-mm-dd" ) ,
35- ANM_TEIL_ID : user_id ,
36- ANM_KURS_ID : course_id ,
37- ANM_BEARBEITER : 0 ,
38- ANM_STAT_ID : 0 ,
39- ANM_ABR_DATUM : 0 ,
40- ANM_ABR_RUECKLAST_DATUM : 0 ,
41- ANM_TNB_GEM_DRUCKEN : 0 ,
42- ANM_TEIL_ID_ZAHLER : 0 ,
43- ANM_WARTEL_INFORMIEREN : 0 ,
44- ANM_ABR_ABRECHNEN : 0 ,
45- ANM_ABR_ABGERECHNET : 0 ,
46- EINGEGEBEN_VON_USER : user_id ,
47- EINGEGEBEN_AM_DATUM : 0 ,
48- EINGEGEBEN_AM_ZEIT : 0 ,
49- DATENHISTORY : ""
50- } ;
51- new Applications ( data )
33+ new Applications ( generateApplicationFor ( user_id , course_id ) )
5234 . save ( )
5335 . then ( ( application ) => {
5436 resolve ( application ) ;
@@ -91,6 +73,27 @@ function applicationFound(applications, user_id, course_id) {
9173 return applicationFound ;
9274}
9375
76+ function generateApplicationFor ( user_id , course_id ) {
77+ return {
78+ ANM_DATUM : moment ( ) . format ( 'YYYY-MM-DD' ) ,
79+ ANM_TEIL_ID : user_id ,
80+ ANM_KURS_ID : course_id ,
81+ ANM_BEARBEITER : 0 ,
82+ ANM_STAT_ID : 0 ,
83+ ANM_ABR_DATUM : 0 ,
84+ ANM_ABR_RUECKLAST_DATUM : 0 ,
85+ ANM_TNB_GEM_DRUCKEN : 0 ,
86+ ANM_TEIL_ID_ZAHLER : 0 ,
87+ ANM_WARTEL_INFORMIEREN : 0 ,
88+ ANM_ABR_ABRECHNEN : 0 ,
89+ ANM_ABR_ABGERECHNET : 0 ,
90+ EINGEGEBEN_VON_USER : user_id ,
91+ EINGEGEBEN_AM_DATUM : 0 ,
92+ EINGEGEBEN_AM_ZEIT : 0 ,
93+ DATENHISTORY : ""
94+ } ;
95+ }
96+
9497/**
9598 * give feedback to a course
9699 * give feedback to a course
@@ -156,7 +159,7 @@ exports.coursesCourse_idSignoffPOST = function (course_id, req) {
156159 ANM_TEIL_ID : user_id ,
157160 ANM_KURS_ID : course_id
158161 } )
159- . save ( { ANM_ABR_ABRECHNEN : 1 , ANM_ABR_DATUM : dateFormat ( Date . now ( ) , "yyyy-mm-dd" ) } , {
162+ . save ( { ANM_ABR_ABRECHNEN : 1 , ANM_ABR_DATUM : moment ( ) . format ( 'YYYY-MM-DD' ) } , {
160163 patch : true
161164 } )
162165 . then ( applicationModel => {
@@ -222,6 +225,27 @@ exports.coursesHighlightsGET = function () {
222225 } ) ;
223226}
224227
228+ exports . coursesLastminuteGET = function ( ) {
229+ return new Promise ( function ( resolve , reject ) {
230+ Courses
231+ . forge ( )
232+ . query ( function ( qb ) {
233+ qb . whereBetween ( 'KURS_ANMFRIST' , [ moment ( ) . format ( 'YYYY-MM-DD' ) , moment ( ) . add ( 6 , 'weeks' ) . format ( 'YYYY-MM-DD' ) ] ) ;
234+ } )
235+ . fetchAll ( { withRelated : [ "applications" ] } )
236+ . then ( ( courses ) => {
237+ resolve ( courses
238+ . filter ( item => item . related ( 'applications' ) . toJSON ( ) . length < item . attributes . KURS_TEIL_MAX )
239+ . filter ( item => item . attributes . KURS_KURSSTAT_ID === 3 )
240+ . map ( item => item . attributes )
241+ )
242+ } )
243+ . catch ( ( error ) => {
244+ reject ( error ) ;
245+ } ) ;
246+ } ) ;
247+ }
248+
225249if ( process . env . NODE_ENV === 'test' ) {
226250 exports . clearDataBase = ( ) => {
227251 console . log ( "Clearing all Content in Table vhslq_kurse" ) ;
@@ -256,6 +280,37 @@ if (process.env.NODE_ENV === 'test') {
256280 } ) ;
257281 }
258282
283+ exports . setupLastMinute = ( ) => {
284+ console . log ( "Setting up Last Minute Content in Table vhslq_kurse" )
285+ return new Promise ( ( resolve , reject ) => {
286+ let sample = require ( '../utils/sampleData' ) . coursesForLastMinute ( ) ;
287+ let _Courses = require ( '../utils/database' ) . Courses ;
288+ let courses = _Courses . forge ( sample ) ;
289+
290+ Promise . all ( courses . invokeMap ( 'save' ) )
291+ . then ( ( data ) => {
292+ let courseIDs = data . map ( item => item . attributes . id ) ;
293+ let fullCourse = courseIDs [ 2 ] ;
294+ let _Applications = require ( '../utils/database' ) . Applications
295+ let applications = _Applications . forge ( [
296+ generateApplicationFor ( 1222313 , fullCourse ) ,
297+ generateApplicationFor ( 1222312 , fullCourse )
298+ ] )
299+ Promise . all ( applications . invokeMap ( 'save' ) ) . then ( ( ) => {
300+ console . log ( "Finished Setting up Last Minute Content in Table vhslq_kurse" )
301+ resolve ( "done" ) ;
302+ } ) . catch ( ( error ) => {
303+ console . log ( error )
304+ reject ( error ) ;
305+ } )
306+ } )
307+ . catch ( ( error ) => {
308+ reject ( error ) ;
309+ } )
310+ } ) ;
311+ }
312+
313+
259314 exports . setupCoursesOfCategory = ( category_id ) => {
260315 return new Promise ( ( resolve , reject ) => {
261316 console . log ( "Setting up Content for Category with ID " + category_id ) ;
0 commit comments