def contact(request):
    if request.method == "GET":
        page_size = request.GET.get("pageSize")
        page = request.GET.get("page")
        query = request.GET.get("query")
        response = elasticsearch_handler.get_contacts(page_size, page, query)
        return HttpResponse(json.dumps(response), content_type="application/json")

    elif request.method == "POST":
        data = {}

        # Check if all the required fields are specified
        if request.POST.get("name") and request.POST.get("number") and request.POST.get("address") and request.POST.get(
                "email"):
            data["name"] = request.POST.get("name")
            data["number"] = request.POST.get("number")
            data["address"] = request.POST.get("address")
            data["email"] = request.POST.get("email")
            response = elasticsearch_handler.insert_contact(data)
            return HttpResponse(json.dumps(response), content_type="application/json")

        # Show error message if all the fields are not specified
        return HttpResponse(json.dumps({"acknowledged": False, "message": "Required fields not specified."}),
                            content_type="application/json")

    # Show error message if request is not GET or POST
    return HttpResponse(json.dumps({"acknowledged": False, "message": "Invalid request."}),
                        content_type="application/json")
Exemple #2
0
 def test_insert_invalid_number(self):
     data = {
         "name": "John",
         "number": "1234567890123456",
         "address": "Maple Road, Orange, AB",
         "email": "*****@*****.**"
     }
     response = elasticsearch_handler.insert_contact(data)
     self.assertFalse(response["acknowledged"])
Exemple #3
0
 def test_insert_pass(self):
     data = {
         "name": "John",
         "number": "1234567890",
         "address": "Maple Road, Orange, AB",
         "email": "*****@*****.**"
     }
     elasticsearch_handler.insert_contact(data)
     time.sleep(1)
     results = es.search(index="addressbook",
                         doc_type="contact",
                         body={"query": {
                             "match": {
                                 "name": data["name"]
                             }
                         }})
     inserted_data = results["hits"]["hits"][0]["_source"]
     self.assertEqual(data["name"], inserted_data["name"])
     self.assertEqual(data["number"], inserted_data["number"])
     self.assertEqual(data["address"], inserted_data["address"])
     self.assertEqual(data["email"], inserted_data["email"])
Exemple #4
0
 def test_insert_contact_exists(self):
     data = {
         "name": "John",
         "number": "1234567890",
         "address": "Maple Road, Orange, AB",
         "email": "*****@*****.**"
     }
     es.index(index="addressbook", doc_type="contact", id=1, body=data)
     time.sleep(1)
     new_data = {
         "name": "John",
         "number": "0987654321",
         "address": "Wine Road, Apple, CD",
         "email": "*****@*****.**"
     }
     response = elasticsearch_handler.insert_contact(new_data)
     self.assertFalse(response["acknowledged"])