1
+ const mysql = require ( "mysql2" ) ;
2
+ const db = require ( "../configs/mysql_config" ) ;
3
+ const asyncHandler = require ( "../middlewares/asyncHandler" ) ;
4
+
5
+
6
+ const getTotalFormsStatusCount_sql = `SELECT s.status, COUNT(f.status) AS count
7
+ FROM (
8
+ SELECT 1 AS status
9
+ UNION ALL
10
+ SELECT 2
11
+ UNION ALL
12
+ SELECT 3
13
+ UNION ALL
14
+ SELECT 4
15
+ UNION ALL
16
+ SELECT 6
17
+ UNION ALL
18
+ SELECT 7
19
+ UNION ALL
20
+ SELECT 8
21
+ UNION ALL
22
+ SELECT 9
23
+ ) AS s
24
+ LEFT JOIN forms f ON f.status = s.status AND f.user_id = ?
25
+ GROUP BY s.status
26
+ ORDER BY s.status` ;
27
+
28
+ exports . getTotalFormsStatusCount = asyncHandler ( async ( req , res ) => {
29
+ const userId = req . params . userId ;
30
+ //console.log("userId (status count total):", userId);
31
+ db . query ( getTotalFormsStatusCount_sql , [ userId ] , ( err , results ) => {
32
+ if ( err ) {
33
+ return res . status ( 500 ) . json ( { error : err . message } ) ;
34
+ }
35
+ //console.log("results:", results);
36
+ if ( results . length > 0 ) {
37
+ return res . json ( results ) ;
38
+ } else {
39
+ return res . json ( 0 ) ;
40
+ }
41
+ } ) ;
42
+ } ) ;
43
+
44
+ const getTodayFormsStatusCount_sql = `SELECT s.status, COUNT(f.status) AS count
45
+ FROM (
46
+ SELECT 1 AS status UNION ALL
47
+ SELECT 2 UNION ALL
48
+ SELECT 3 UNION ALL
49
+ SELECT 4 UNION ALL
50
+ SELECT 6 UNION ALL
51
+ SELECT 7 UNION ALL
52
+ SELECT 8 UNION ALL
53
+ SELECT 9
54
+ ) AS s
55
+ LEFT JOIN forms f ON f.status = s.status AND f.user_id = ? AND f.created_at = ?
56
+ GROUP BY s.status
57
+ ORDER BY s.status` ;
58
+
59
+
60
+ exports . getTodayFormsStatusCount = asyncHandler ( async ( req , res ) => {
61
+ const userId = req . params . userId ;
62
+ const date = new Date ( ) ;
63
+ const today = new Date ( date . getFullYear ( ) , date . getMonth ( ) , date . getDate ( ) ) . toLocaleDateString ( 'en-CA' ) ;
64
+ //const today = '17-04-2025'
65
+ // console.log("today:", today);
66
+ // console.log("userId (status count today):", userId);
67
+ db . query ( getTodayFormsStatusCount_sql , [ userId , today ] , ( err , results ) => {
68
+ if ( err ) {
69
+ return res . status ( 500 ) . json ( { error : err . message } ) ;
70
+ }
71
+ //console.log("results (today):", results);
72
+ if ( results . length > 0 ) {
73
+ return res . json ( results ) ;
74
+ } else {
75
+ return res . json ( 0 ) ;
76
+ }
77
+ } ) ;
78
+ } ) ;
0 commit comments