#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
// Ganti dengan SSID dan password WiFi Anda
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// URL API endpoint
const char* serverName = "https://yellowgreen-mule-372794.hostingersite.com/api/checkCard";
void setup() {
  Serial.begin(115200);
  delay(1000);
  StaticJsonDocument<200> doc;
  // Koneksi ke WiFi
  Serial.print("Menghubungkan ke WiFi");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("\nWiFi terhubung!");
}
void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    Serial.println("\nMasukkan card_code:");
    
    // Tunggu input dari Serial Monitor
    while (Serial.available() == 0) {
      delay(10);
    }
    String card_code = Serial.readStringUntil('\n');
    card_code.trim(); // Hapus spasi atau karakter newline di awal/akhir
    if (card_code.length() > 0) {
      HTTPClient http;
      // Inisialisasi koneksi HTTP
      http.begin(serverName);
      // Set header dan konten untuk permintaan POST
      http.addHeader("Content-Type", "application/x-www-form-urlencoded");
      // Data form-urlencoded
      String postData = "card_code=" + card_code;
      // Indikasi menghubungkan ke server
      Serial.println("Menghubungkan ke server...");
      // Kirim permintaan POST
      int httpResponseCode = http.POST(postData);
      if (httpResponseCode > 0) {
        String response = http.getString();
        Serial.println("Response dari server:");
        Serial.println(response);
        // Buat objek DynamicJsonDocument
        StaticJsonDocument<200> doc; // Sesuaikan ukuran buffer dengan kebutuhan
        // Parsing JSON
        DeserializationError error = deserializeJson(doc, response);
        // Periksa apakah parsing berhasil
        if (error) {
          Serial.print("Error parsing JSON: ");
          Serial.println(error.c_str());
          return;
        }
        // Ambil data dari JSON
        bool success = doc["success"];
        const char* message = doc["message"];
        // Tampilkan hasil
        Serial.print("Success: ");
        Serial.println(success);
        Serial.print("Message: ");
        Serial.println(message);
      } else {
        Serial.print("Error pada request: ");
        Serial.println(httpResponseCode);
      }
      // Akhiri koneksi HTTP
      http.end();
    }
  } else {
    Serial.println("WiFi tidak terhubung, mencoba ulang...");
    WiFi.reconnect();
  }
  delay(2000); // Delay sebelum input berikutnya
}