예제 #1
0
def add_whatsapp(request):
    if not settings.TWILIO_USE_WHATSAPP:
        raise Http404("whatsapp integration is not available")

    if request.method == "POST":
        form = AddSmsForm(request.POST)
        if form.is_valid():
            channel = Channel(project=request.project, kind="whatsapp")
            channel.name = form.cleaned_data["label"]
            channel.value = json.dumps({
                "value": form.cleaned_data["value"],
                "up": form.cleaned_data["up"],
                "down": form.cleaned_data["down"],
            })
            channel.save()

            channel.assign_all_checks()
            return redirect("hc-channels")
    else:
        form = AddSmsForm()

    ctx = {
        "page": "channels",
        "project": request.project,
        "form": form,
        "profile": request.project.owner_profile,
    }
    return render(request, "integrations/add_whatsapp.html", ctx)
예제 #2
0
def add_matrix(request):
    if settings.MATRIX_ACCESS_TOKEN is None:
        raise Http404("matrix integration is not available")

    if request.method == "POST":
        form = AddMatrixForm(request.POST)
        if form.is_valid():
            channel = Channel(project=request.project, kind="matrix")
            channel.value = form.cleaned_data["room_id"]

            # If user supplied room alias instead of ID, use it as channel name
            alias = form.cleaned_data["alias"]
            if not alias.startswith("!"):
                channel.name = alias

            channel.save()

            channel.assign_all_checks()
            messages.success(request, "The Matrix integration has been added!")
            return redirect("hc-channels")
    else:
        form = AddMatrixForm()

    ctx = {
        "page": "channels",
        "form": form,
        "matrix_user_id": settings.MATRIX_USER_ID
    }
    return render(request, "integrations/add_matrix.html", ctx)
예제 #3
0
def add_sms(request, code):
    if settings.TWILIO_AUTH is None:
        raise Http404("sms integration is not available")

    project = _get_project_for_user(request, code)
    if request.method == "POST":
        form = AddSmsForm(request.POST)
        if form.is_valid():
            channel = Channel(project=project, kind="sms")
            channel.name = form.cleaned_data["label"]
            channel.value = json.dumps({"value": form.cleaned_data["value"]})
            channel.save()

            channel.assign_all_checks()
            return redirect("hc-p-channels", project.code)
    else:
        form = AddSmsForm()

    ctx = {
        "page": "channels",
        "project": project,
        "form": form,
        "profile": project.owner_profile,
    }
    return render(request, "integrations/add_sms.html", ctx)