@@ -46,20 +46,23 @@ def post(self,request):
4646 player = UserScore .objects .filter (user = request .user )[0 ]
4747 print (player .name )
4848 answer = request .data .get ("answer" ,None )
49- #player=self.context.get("player")
5049 print (player )
51- #player=data.get("player")
52- #active=config.quiz_active(config)
53- day = config .objects .all ()[0 ].current_day
54- curr_question = player .current_question
55- question = Question .objects .filter (day = day ,question_no = curr_question )
56- result = Question .check_ans (Question ,answer ,question )
57- if result :
58- player .new_score (player )
59- response = {
60- 'status_code' :status .HTTP_200_OK ,
61- 'result' :result
62- }
50+ active = config .quiz_active (config )
51+ if active :
52+ day = config .objects .all ()[0 ].current_day
53+ curr_question = player .current_question
54+ question = Question .objects .filter (day = day ,question_no = curr_question )
55+ result = Question .check_ans (Question ,answer ,question )
56+ if result :
57+ player .new_score (player )
58+ response = {
59+ 'status_code' :status .HTTP_200_OK ,
60+ 'result' :result
61+ }
62+ else :
63+ response = {
64+ "error" :"quiz has ended"
65+ }
6366 return Response (response )
6467class GoogleLogin (APIView ):
6568 def post (self , request ):
@@ -91,6 +94,43 @@ def post(self, request):
9194 response ['refresh_token' ] = str (token )
9295 return Response (response )
9396
94- class questionview (APIView ):
95- permission_classes = (IsAuthenticated ,)
9697
98+ class facebooklogin (APIView ):
99+
100+ def post (self ,request ):
101+ accesstoken = request .data .get ('accesstoken' )
102+ expiration_time = request .data .get ('expiration_time' )
103+ userID = request .data .get ('userID' )
104+ if (int (expiration_time ) < int (time .time ())):
105+ content = {"status" : 404 }
106+ return Response (content )
107+ else :
108+ url = "https://graph.facebook.com/{}" .format (userID )
109+ parameters = {
110+ 'fields' : 'name,email,picture' ,
111+ 'access_token' : accesstoken
112+ }
113+ idInfo = r .get (url = url , params = parameters ).json ()
114+
115+ email = idInfo ['email' ],
116+ username = idInfo ['email' ],
117+ image = idInfo ['picture' ]['data' ]['url' ],
118+ try :
119+ user = User .objects .get (email = data ['email' ])
120+ except User .DoesNotExist :
121+ user = User ()
122+ user .username = username
123+ # provider random default password
124+ user .password = make_password (BaseUserManager ().make_random_password ())
125+ user .email = email
126+ user .save ()
127+ score = UserScore (user = user ,name = user .email , current_question = 1 )
128+ score .save ()
129+
130+ token = RefreshToken .for_user (user ) # generate token without username & password
131+ response = {}
132+ response ['username' ] = user .username
133+ response ['access_token' ] = str (token .access_token )
134+ response ['refresh_token' ] = str (token )
135+ return Response (response )
136+
0 commit comments