Repository: louislam/uptime-kuma
File: server/notification-providers/ntfy.js (JavaScript)

Code before:
                };
            }
            if (notification.ntfyCall) {
                headers["X-Call"] = notification.ntfyCall;
            }
            let config = {
                headers,
            };
            config = this.getAxiosConfigWithProxy(config);
            // If heartbeatJSON is null, assume non monitoring notification (Certificate warning) or testing.
            if (heartbeatJSON == null) {
                // Default values for test notification
                let title = (monitorJSON?.name || notification.ntfytopic) + " [Uptime-Kuma]";
                let message = msg;

                // Apply custom templates from notification settings if enabled
                if (notification.ntfyUseTemplate) {
                    const customTitle = notification.ntfyCustomTitle?.trim() || "";
                    const customMessage = notification.ntfyCustomMessage?.trim() || "";

                    if (customTitle !== "") {
                        title = await this.renderTemplate(customTitle, msg, monitorJSON, heartbeatJSON);
                    }
                    if (customMessage !== "") {
                        message = await this.renderTemplate(customMessage, msg, monitorJSON, heartbeatJSON);
                    }
                }

                let ntfyTestData = {
                    topic: notification.ntfytopic,
                    title: title,
                    message: message,
                    priority: notification.ntfyPriority,
                    tags: ["test_tube"],
                };
                await axios.post(notification.ntfyserverurl, ntfyTestData, config);
                return okMsg;
            }
            let tags = [];
            let status = "unknown";
            let priority = notification.ntfyPriority || 4;
            if ("status" in heartbeatJSON) {
                if (heartbeatJSON.status === DOWN) {
                    tags = ["red_circle"];
                    status = "Down";
                    // defaults to max(priority + 1, 5)
                    priority = notification.ntfyPriorityDown || (priority === 5 ? priority : priority + 1);
                } else if (heartbeatJSON["status"] === UP) {
                    tags = ["green_circle"];
                    status = "Up";
                }

Review comment (suggestion):
```suggestion
                    const customTitle = notification.ntfyCustomTitle?.trim() || "";
                    if (customTitle !== "") {
                        title = await this.renderTemplate(customTitle, msg, monitorJSON, heartbeatJSON);
                    }

                    const customMessage = notification.ntfyCustomMessage?.trim() || "";
                    if (customMessage !== "") {
                        message = await this.renderTemplate(customMessage, msg, monitorJSON, heartbeatJSON);
                    }
```

Code after:
                };
            }
            if (notification.ntfyCall) {
                headers["X-Call"] = notification.ntfyCall;
            }
            let config = {
                headers,
            };
            config = this.getAxiosConfigWithProxy(config);
            // If heartbeatJSON is null, assume non monitoring notification (Certificate warning) or testing.
            if (heartbeatJSON == null) {
                // Default values for test notification
                let title = (monitorJSON?.name || notification.ntfytopic) + " [Uptime-Kuma]";
                let message = msg;

                // Apply custom templates from notification settings if enabled
                if (notification.ntfyUseTemplate) {
                    const customTitle = notification.ntfyCustomTitle?.trim() || "";
                    if (customTitle !== "") {
                        title = await this.renderTemplate(customTitle, msg, monitorJSON, heartbeatJSON);
                    }

                    const customMessage = notification.ntfyCustomMessage?.trim() || "";
                    if (customMessage !== "") {
                        message = await this.renderTemplate(customMessage, msg, monitorJSON, heartbeatJSON);
                    }
                }

                let ntfyTestData = {
                    topic: notification.ntfytopic,
                    title: title,
                    message: message,
                    priority: notification.ntfyPriority,
                    tags: ["test_tube"],
                };
                await axios.post(notification.ntfyserverurl, ntfyTestData, config);
                return okMsg;
            }
            let tags = [];
            let status = "unknown";
            let priority = notification.ntfyPriority || 4;
            if ("status" in heartbeatJSON) {
                if (heartbeatJSON.status === DOWN) {
                    tags = ["red_circle"];
                    status = "Down";
                    // defaults to max(priority + 1, 5)
                    priority = notification.ntfyPriorityDown || (priority === 5 ? priority : priority + 1);
                } else if (heartbeatJSON["status"] === UP) {
                    tags = ["green_circle"];
                    status = "Up";
                }