1414
1515from django .shortcuts import redirect
1616from django .template .response import TemplateResponse
17+
1718from agriculturecore .drm_requests import *
1819
1920PARAM_CONTROLLER_ID = "controller_id"
2021PARAM_FARM_NAME = "farm_name"
2122
22- ID_ERROR = "error"
2323ID_ERROR_TITLE = "error_title"
2424ID_ERROR_MSG = "error_msg"
2525ID_ERROR_GUIDE = "error_guide"
@@ -253,13 +253,8 @@ def get_smart_farms(request):
253253 :class:`.JsonResponse`: A JSON response with the list of the Smart
254254 Farms within the DRM account.
255255 """
256- if is_authenticated (request ):
257- if not request .is_ajax or request .method != "POST" :
258- return JsonResponse (
259- {"error" : "AJAX request must be sent using POST" },
260- status = 400 )
261- else :
262- return redirect ('/access/login' )
256+ # Check if the AJAX request is valid.
257+ check_error (request )
263258
264259 smart_farms = get_farms (request )
265260 if len (smart_farms ) > 0 :
@@ -287,13 +282,8 @@ def get_irrigation_stations(request):
287282 Stations corresponding to the controller with the ID provided in
288283 the request.
289284 """
290- if is_authenticated (request ):
291- if not request .is_ajax or request .method != "POST" :
292- return JsonResponse (
293- {"error" : "AJAX request must be sent using POST" },
294- status = 400 )
295- else :
296- return redirect ('/access/login' )
285+ # Check if the AJAX request is valid.
286+ check_error (request )
297287
298288 # Get the controller ID from the POST request.
299289 controller_id = request .POST [PARAM_CONTROLLER_ID ]
@@ -308,7 +298,7 @@ def get_irrigation_stations(request):
308298 ID_ERROR_MSG : NO_STATIONS_MSG ,
309299 ID_ERROR_GUIDE : SETUP_MODULES_GUIDE })
310300 except DeviceCloudHttpException as e :
311- return JsonResponse ({ ID_ERROR : str ( e )} )
301+ return get_exception_response ( e )
312302
313303
314304def get_farm_status (request ):
@@ -322,13 +312,8 @@ def get_farm_status(request):
322312 Returns:
323313 :class:`.JsonResponse`: A JSON response with the status of the farm.
324314 """
325- if is_authenticated (request ):
326- if not request .is_ajax or request .method != "POST" :
327- return JsonResponse (
328- {"error" : "AJAX request must be sent using POST" },
329- status = 400 )
330- else :
331- return redirect ('/access/login' )
315+ # Check if the AJAX request is valid.
316+ check_error (request )
332317
333318 try :
334319 # Get the controller ID from the POST request.
@@ -362,7 +347,7 @@ def get_farm_status(request):
362347
363348 return JsonResponse (farm_status , status = 200 )
364349 except Exception as e :
365- return JsonResponse ({ ID_ERROR : str ( e )} )
350+ return get_exception_response ( e )
366351
367352
368353def set_valve (request ):
@@ -376,13 +361,8 @@ def set_valve(request):
376361 Returns:
377362 :class:`.JsonResponse`: A JSON response with the set status.
378363 """
379- if is_authenticated (request ):
380- if not request .is_ajax or request .method != "POST" :
381- return JsonResponse (
382- {"error" : "AJAX request must be sent using POST" },
383- status = 400 )
384- else :
385- return redirect ('/access/login' )
364+ # Check if the AJAX request is valid.
365+ check_error (request )
386366
387367 # Get the controller ID and irrigation station from the POST request.
388368 data = json .loads (request .body .decode (request .encoding ))
@@ -393,7 +373,7 @@ def set_valve(request):
393373 new_value = set_valve_value (request , controller_id , station_id , value )
394374 if new_value is not None :
395375 return JsonResponse ({"value" : new_value }, status = 200 )
396- return JsonResponse ({"error" : "Could not set the valve." }, status = 400 )
376+ return JsonResponse ({ID_ERROR : "Could not set the valve." }, status = 400 )
397377
398378
399379def set_tank_valve (request ):
@@ -407,13 +387,8 @@ def set_tank_valve(request):
407387 Returns:
408388 :class:`.JsonResponse`: A JSON response with the set status.
409389 """
410- if is_authenticated (request ):
411- if not request .is_ajax or request .method != "POST" :
412- return JsonResponse (
413- {"error" : "AJAX request must be sent using POST" },
414- status = 400 )
415- else :
416- return redirect ('/access/login' )
390+ # Check if the AJAX request is valid.
391+ check_error (request )
417392
418393 # Get the controller ID and status of the valve from the POST request.
419394 data = json .loads (request .body .decode (request .encoding ))
@@ -423,7 +398,7 @@ def set_tank_valve(request):
423398 new_value = set_tank_valve_value (request , controller_id , value )
424399 if new_value is not None :
425400 return JsonResponse ({"value" : new_value }, status = 200 )
426- return JsonResponse ({"error" : "Could not set the valve." }, status = 400 )
401+ return JsonResponse ({ID_ERROR : "Could not set the valve." }, status = 400 )
427402
428403
429404def refill_tank (request ):
@@ -437,13 +412,8 @@ def refill_tank(request):
437412 Returns:
438413 :class:`.JsonResponse`: A JSON response with the set status.
439414 """
440- if is_authenticated (request ):
441- if not request .is_ajax or request .method != "POST" :
442- return JsonResponse (
443- {"error" : "AJAX request must be sent using POST" },
444- status = 400 )
445- else :
446- return redirect ('/access/login' )
415+ # Check if the AJAX request is valid.
416+ check_error (request )
447417
448418 # Get the controller ID and level of the tank from the POST request.
449419 data = json .loads (request .body .decode (request .encoding ))
@@ -452,7 +422,7 @@ def refill_tank(request):
452422 new_value = refill_tank_request (request , controller_id )
453423 if new_value is not None :
454424 return JsonResponse ({"value" : new_value }, status = 200 )
455- return JsonResponse ({"error" : "Could not set the valve." }, status = 400 )
425+ return JsonResponse ({ID_ERROR : "Could not set the valve." }, status = 400 )
456426
457427
458428def get_request_data (request ):
@@ -605,13 +575,8 @@ def check_farm_connection_status(request):
605575 Returns:
606576 A JSON with the status of the farm or the error.
607577 """
608- if is_authenticated (request ):
609- if not request .is_ajax or request .method != "POST" :
610- return JsonResponse (
611- {"error" : "AJAX request must be sent using POST" },
612- status = 400 )
613- else :
614- return redirect ('/access/login' )
578+ # Check if the AJAX request is valid.
579+ check_error (request )
615580
616581 # Get the controller ID and irrigation station from the POST request.
617582 data = json .loads (request .body .decode (request .encoding ))
@@ -651,3 +616,9 @@ def request_has_params(request):
651616 `True` if the request has the required parameters, `False` otherwise.
652617 """
653618 return request_has_id (request ) and request_has_name (request )
619+
620+
621+ def check_error (request ):
622+ error = check_ajax_request (request )
623+ if error is not None :
624+ return error
0 commit comments