Browse Source

adds a unique parameter to the check creation API

It only checks for name uniqueness.
pull/85/head
James Moore 8 years ago
parent
commit
bcde5fe9d2
2 changed files with 21 additions and 1 deletions
  1. +13
    -1
      hc/api/views.py
  2. +8
    -0
      templates/front/docs_api.html

+ 13
- 1
hc/api/views.py View File

@ -55,8 +55,20 @@ def checks(request):
return JsonResponse(doc) return JsonResponse(doc)
elif request.method == "POST": elif request.method == "POST":
unique = bool(request.json.get("unique", False))
name = str(request.json.get("name", ""))
if unique:
existing_checks = Check.objects.filter(user=request.user, name=name)
if existing_checks.count() > 0:
# There might be more than one check with the same name since name
# uniqueness isn't enforced in the model
return JsonResponse(existing_checks.first().to_dict(), status=200)
check = Check(user=request.user) check = Check(user=request.user)
check.name = str(request.json.get("name", ""))
check.name = name
check.tags = str(request.json.get("tags", "")) check.tags = str(request.json.get("tags", ""))
if "timeout" in request.json: if "timeout" in request.json:
check.timeout = td(seconds=request.json["timeout"]) check.timeout = td(seconds=request.json["timeout"])


+ 8
- 0
templates/front/docs_api.html View File

@ -127,6 +127,14 @@ The response may contain a JSON document with additional data.
to automatically assign all existing notification channels.</p> to automatically assign all existing notification channels.</p>
</td> </td>
</tr> </tr>
<tr>
<th>unique</th>
<td>
<p>bool, optional, default value: False.</p>
<p>When true a check won't be created if there exists a check with the
same name. If any existing checks match then the first one will be returned.</p>
</td>
</tr>
</table> </table>
<h3 class="api-section">Example Request</h3> <h3 class="api-section">Example Request</h3>


Loading…
Cancel
Save