---

# Query an arbitrary ntfy topic using ntfy's UnifiedPush topic name syntax.
# Expect an empty response (because we query 'since=1s').

- ansible.builtin.set_fact:
    matrix_ntfy_url_endpoint_public: "{{ matrix_ntfy_base_url }}/upSELFCHECK123/json?poll=1&since=1s"

- name: Check ntfy
  ansible.builtin.uri:
    url: "{{ matrix_ntfy_url_endpoint_public }}"
    follow_redirects: none
    validate_certs: "{{ matrix_ntfy_self_check_validate_certificates }}"
  register: matrix_ntfy_self_check_result
  check_mode: false
  ignore_errors: true

- name: Fail if ntfy not working
  ansible.builtin.fail:
    msg: "Failed checking ntfy is up at `{{ matrix_server_fqn_ntfy }}` (checked endpoint: `{{ matrix_ntfy_url_endpoint_public }}`). Is ntfy running? Is port 443 open in your firewall? Full error: {{ matrix_ntfy_self_check_result }}"
  when: "matrix_ntfy_self_check_result.failed"

- name: Report working ntfy
  ansible.builtin.debug:
    msg: "ntfy at `{{ matrix_server_fqn_ntfy }}` is working (checked endpoint: `{{ matrix_ntfy_url_endpoint_public }}`)"