@@ -2,7 +2,12 @@ const passport = require("passport");
2
2
const users = require ( "../models/users" ) ;
3
3
const QrCodeAuthModel = require ( "../models/qrCodeAuth" ) ;
4
4
const authService = require ( "../services/authService" ) ;
5
- const { SOMETHING_WENT_WRONG , DATA_ADDED_SUCCESSFULLY , BAD_REQUEST } = require ( "../constants/errorMessages" ) ;
5
+ const {
6
+ SOMETHING_WENT_WRONG ,
7
+ DATA_ADDED_SUCCESSFULLY ,
8
+ BAD_REQUEST ,
9
+ INVALID_QUERY_PARAM ,
10
+ } = require ( "../constants/errorMessages" ) ;
6
11
7
12
/**
8
13
* Fetches the user info from GitHub and authenticates User
@@ -122,9 +127,32 @@ const updateAuthStatus = async (req, res) => {
122
127
}
123
128
} ;
124
129
130
+ const fetchUserDeviceInfo = async ( req , res ) => {
131
+ try {
132
+ const queryParamArray = Object . keys ( req . query ) ;
133
+ if ( queryParamArray . length === 1 && queryParamArray [ 0 ] === "device_id" ) {
134
+ const deviceId = req . query . device_id ;
135
+ const userDeviceInfoData = await QrCodeAuthModel . retrieveUserDeviceInfo ( deviceId ) ;
136
+ if ( ! userDeviceInfoData . userExists ) {
137
+ return res . boom . notFound ( "No Authentication found!" ) ;
138
+ }
139
+ return res . json ( {
140
+ message : "Authentication document retrieved successfully." ,
141
+ data : { ...userDeviceInfoData . data } ,
142
+ } ) ;
143
+ } else {
144
+ return res . boom . badRequest ( INVALID_QUERY_PARAM ) ;
145
+ }
146
+ } catch ( error ) {
147
+ logger . error ( `Error while fetching user: ${ error } ` ) ;
148
+ return res . boom . badImplementation ( SOMETHING_WENT_WRONG ) ;
149
+ }
150
+ } ;
151
+
125
152
module . exports = {
126
153
githubAuth,
127
154
signout,
128
155
storeUserDeviceInfo,
129
156
updateAuthStatus,
157
+ fetchUserDeviceInfo,
130
158
} ;
0 commit comments