@@ -40,6 +40,9 @@ def health(request):
4040
4141@csrf_exempt
4242def dev_list (request ):
43+ if is_not_authenticated (request ):
44+ return not_authenticated ()
45+
4346 if request .method == "GET" :
4447 newOpportunities = request .GET .get ("newOpportunities" )
4548 devs = filter_devs_by_new_opportunities (newOpportunities )
@@ -55,6 +58,9 @@ def dev_list(request):
5558
5659@csrf_exempt
5760def dev_details (request , identifier ):
61+ if is_not_authenticated (request ):
62+ return not_authenticated ()
63+
5864 uuid = str (identifier )
5965 dev = get_dev (uuid )
6066 if request .method == "GET" :
@@ -73,6 +79,9 @@ def dev_details(request, identifier):
7379
7480
7581def dev_details_languages (request , identifier ):
82+ if is_not_authenticated (request ):
83+ return not_authenticated ()
84+
7685 uuid = str (identifier )
7786 dev = get_dev (uuid )
7887 if request .method == "GET" :
@@ -85,9 +94,22 @@ def dev_details_languages(request, identifier):
8594
8695
8796def language_list (request ):
97+ if is_not_authenticated (request ):
98+ return not_authenticated ()
99+
88100 return JsonResponse (["c" , "go" , "java" , "python" , "ruby" ], safe = False )
89101
90102
103+ def is_not_authenticated (request ):
104+ api_key = request .headers .get ("x-api-key" )
105+
106+ return api_key != "demoKEY123"
107+
108+
109+ def not_authenticated ():
110+ return HttpResponse (f"Failed to authenticate" , status = 401 )
111+
112+
91113def filter_devs_by_new_opportunities (newOpportunities ):
92114 if newOpportunities in ("False" , "false" , 0 ):
93115 return [dev for dev in DEVS if dev ["newOpportunities" ] == False ]
0 commit comments