diff --git a/CHANGELOG.md b/CHANGELOG.md index aa4fb5ea..2cd8edc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ All notable changes to this project will be documented in this file. - Zulip integration (#202) - OpsGenie integration returns more detailed error messages - Telegram integration returns more detailed error messages +- Added the "Get a single check" API call (#337) ### Bug Fixes - The "render_docs" command checks if markdown and pygments is installed (#329) diff --git a/hc/api/tests/test_get_check.py b/hc/api/tests/test_get_check.py index 3b0c30a8..b3f916ec 100644 --- a/hc/api/tests/test_get_check.py +++ b/hc/api/tests/test_get_check.py @@ -1,5 +1,4 @@ from datetime import timedelta as td -import uuid from django.utils.timezone import now from hc.api.models import Channel, Check @@ -52,4 +51,4 @@ class GetCheckTestCase(BaseTestCase): def test_it_handles_missing_check(self): made_up_code = "07c2f548-9850-4b27-af5d-6c9dc157ec02" r = self.get(made_up_code) - self.assertEqual(r.status_code, 404) \ No newline at end of file + self.assertEqual(r.status_code, 404) diff --git a/hc/api/views.py b/hc/api/views.py index a8ec08f1..f0225702 100644 --- a/hc/api/views.py +++ b/hc/api/views.py @@ -191,7 +191,7 @@ def single(request, code): try: validate(request.json, schemas.check) _update(check, request.json) - except (BadChannelException,ValidationError) as e: + except (BadChannelException, ValidationError) as e: return JsonResponse({"error": str(e)}, status=400) return JsonResponse(check.to_dict()) @@ -208,14 +208,6 @@ def single(request, code): return HttpResponse(status=405) -@csrf_exempt -@cors("POST", "DELETE") -@validate_json(schemas.check) -@authorize -def update(request, code): - single(request, code) - - @cors("POST") @csrf_exempt @validate_json() diff --git a/templates/docs/api.html b/templates/docs/api.html index c896f2f3..1ce17fe5 100644 --- a/templates/docs/api.html +++ b/templates/docs/api.html @@ -15,7 +15,7 @@ checks in user's account.
GET SITE_ROOT/api/v1/checks/
GET SITE_ROOT/api/v1/checks/<uuid>
GET SITE_ROOT/api/v1/checks/<uuid>
Returns a JSON object containing information information from a single check.
+Returns a JSON representation of a single check.
curl --header "X-Api-Key: your-api-key" SITE_ROOT/api/v1/checks/<uuid>
diff --git a/templates/docs/api.md b/templates/docs/api.md
index d04bac9e..8c3a1e47 100644
--- a/templates/docs/api.md
+++ b/templates/docs/api.md
@@ -8,7 +8,7 @@ checks in user's account.
Endpoint Name | Endpoint Address
------------------------------------------------------|-------
[Get a list of existing checks](#list-checks) | `GET SITE_ROOT/api/v1/checks/`
-[Create a single check](#get-check) | `GET SITE_ROOT/api/v1/checks/`
+[Get a single check](#get-check) | `GET SITE_ROOT/api/v1/checks/`
[Create a new check](#create-check) | `POST SITE_ROOT/api/v1/checks/`
[Update an existing check](#update-check) | `POST SITE_ROOT/api/v1/checks/`
[Pause monitoring of a check](#pause-check) | `POST SITE_ROOT/api/v1/checks//pause`
@@ -158,10 +158,10 @@ is added. This identifier is stable across API calls. Example:
}
```
-## Get a single Check {: #get-check .rule }
+## Get a Single Check {: #get-check .rule }
`GET SITE_ROOT/api/v1/checks/`
-Returns a JSON object containing information information from a single check.
+Returns a JSON representation of a single check.
### Response Codes
@@ -171,6 +171,13 @@ Returns a JSON object containing information information from a single check.
401 Unauthorized
: The API key is either missing or invalid.
+403 Forbidden
+: Access denied, wrong API key.
+
+404 Not Found
+: The specified check does not exist.
+
+
### Example Request
```bash
diff --git a/templates/docs/cloning_checks.html b/templates/docs/cloning_checks.html
index d972fe6b..8206e999 100644
--- a/templates/docs/cloning_checks.html
+++ b/templates/docs/cloning_checks.html
@@ -1,5 +1,5 @@
Cloning Checks
-You can individually clone individual checks SITE_NAME from the "Check Details"
+
You can clone individual checks from the "Check Details"
page:
The "Create a Copy..." function creates a new check in the same project, and copies