package main

// import (
// 	"bytes"
// 	"crypto/tls"
// 	"crypto/x509"
// 	"flag"
// 	"fmt"
// 	"io"
// 	"net/http"
// 	"strings"
// 	"time"

// 	"github.com/gin-gonic/gin"
// 	"github.com/pingcap/errors"
// 	"github.com/pingcap/log"
// 	"go.uber.org/zap"

// 	"github.com/pingcap-inc/clinic/pkg/config"
// 	"github.com/pingcap-inc/clinic/pkg/jiradb"
// )

// const (
// 	oncallProjectKey = 11101
// 	syncDuration     = 5 * time.Minute
// )

// var (
// 	endpoint string
// 	dbUser   string
// 	dbPass   string
// 	jiraUser string
// 	jiraPass string
// 	client   *http.Client
// )

// func main() {
// 	flag.StringVar(&endpoint, "endpoint", "http://127.0.0.1:7777", "endpoint of clinic server")
// 	flag.StringVar(&dbUser, "db-user", "wh-write", "username of jira database")
// 	flag.StringVar(&dbPass, "db-pass", "", "password of jira database")
// 	flag.StringVar(&jiraUser, "jira-user", "", "user name of jira")
// 	flag.StringVar(&jiraPass, "jira-pass", "", "password of jira")
// 	flag.Parse()

// 	cfg := &config.DBConfig{
// 		User:     "wh-write",
// 		Host:     "172.16.4.36",
// 		Port:     3306,
// 		Database: "jiradb",
// 		Password: dbPass,
// 	}
// 	if err := jiradb.Initialize(cfg); err != nil {
// 		panic(err)
// 	}

// 	initClient()
// 	//nolint:errcheck
// 	go SyncBindRequest(time.Tick(syncDuration))
// 	syncJiraCh := make(chan time.Time)
// 	//nolint:errcheck
// 	go SyncJira(syncJiraCh)
// 	go func() {
// 		for t := range time.Tick(syncDuration) {
// 			syncJiraCh <- t
// 		}
// 	}()

// 	r := gin.Default()
// 	r.POST("/jira-issues/:id", func(c *gin.Context) {
// 		data, err := io.ReadAll(c.Request.Body)
// 		if err != nil {
// 			c.JSON(500, "unable to read request body")
// 			return
// 		}
// 		if bytes.Contains(data, []byte("clinic.pingcap.com")) {
// 			log.Info("jira issue update", zap.String("id", c.Param("id")))
// 			syncJiraCh <- time.Now()
// 		}
// 		c.JSON(200, nil)
// 	})
// 	panic(r.Run(":5566"))
// }

// func initClient() {
// 	if strings.HasPrefix(strings.ToLower(endpoint), "https://") {
// 		roots := x509.NewCertPool()
// 		ok := roots.AppendCertsFromPEM([]byte(privateCA))
// 		if !ok {
// 			panic("failed to parse root certificate")
// 		}
// 		ok = roots.AppendCertsFromPEM([]byte(publicCA))
// 		if !ok {
// 			panic("failed to parse root certificate")
// 		}
// 		client = &http.Client{
// 			Transport: &http.Transport{
// 				TLSClientConfig: &tls.Config{RootCAs: roots},
// 			},
// 		}
// 	} else {
// 		client = http.DefaultClient
// 	}
// }

// func request(req *http.Request) (*http.Response, error) {
// 	resp, err := client.Do(req)
// 	if err != nil {
// 		return nil, err
// 	}

// 	if resp.StatusCode == http.StatusUnauthorized {
// 		return nil, errors.New("Unauthorized")
// 	}

// 	if resp.StatusCode == http.StatusForbidden {
// 		return nil, errors.New("Some requests can only be used on the Internal network")
// 	}

// 	if resp.StatusCode == http.StatusBadRequest {
// 		defer resp.Body.Close()

// 		data, err := io.ReadAll(resp.Body)
// 		if err != nil {
// 			return nil, errors.New(" Bad Request")
// 		}

// 		errmsg := resp.Status
// 		if string(data) != "" {
// 			errmsg = fmt.Sprintf("%s. %s", errmsg, string(data))
// 		}
// 		return nil, errors.Errorf(" Bad Request, msg=%s", errmsg)
// 	}

// 	if resp.StatusCode == http.StatusProcessing {
// 		return nil, errors.New("the resource is processing, please again later")
// 	}

// 	return resp, nil
// }

// var privateCA = `-----BEGIN CERTIFICATE-----
// MIIDizCCAnOgAwIBAgIRAJK3FPu59GQ+fCx9skKPQwUwDQYJKoZIhvcNAQELBQAw
// XzELMAkGA1UEBhMCQ04xEDAOBgNVBAoMB3BpbmdjYXAxDTALBgNVBAsMBHRpZGIx
// DjAMBgNVBAgMBUNoaW5hMQ0wCwYDVQQDDARDQSAxMRAwDgYDVQQHDAdjaGVuZ2R1
// MB4XDTIxMDIyNDA0MDI0MFoXDTQxMDIyNDA1MDI0MFowXzELMAkGA1UEBhMCQ04x
// EDAOBgNVBAoMB3BpbmdjYXAxDTALBgNVBAsMBHRpZGIxDjAMBgNVBAgMBUNoaW5h
// MQ0wCwYDVQQDDARDQSAxMRAwDgYDVQQHDAdjaGVuZ2R1MIIBIjANBgkqhkiG9w0B
// AQEFAAOCAQ8AMIIBCgKCAQEAlNsKtdOUXM9M08PWYk3cRHfa+DeQYClz4hiTZbun
// 1vgcglKreaQ2Q6DVG3W64x+JlQZqfB4Rzj0xO+6sTrO0b5/Ou6uxx9C1ywvK6SjO
// 23wjkZPp0Rd84vyzcF6uanq9e3SzjrahJaWwTMHaYXqDpVs6w0K4aYo2T1TqQoMY
// gdXu/7lcerYAjdBhaLSY68TuS/sW4CSanpHcH8jzRwm/PLuvO+HJ6p+v1DMAZxl8
// FF1K+ivUSMKNkwHw6j5vF5hKCyCJYCqn49NYAV+K914WN8fI2KaLpD1zwr7FoPLQ
// bGCjZWFGXeJ7R/4+uK3IFighr/7NKuBf78Szb3Ms3ZtKMwIDAQABo0IwQDAPBgNV
// HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQT/cQTJebkFLih8qhNHXleHIxF9jAOBgNV
// HQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBAFR4Ic7I/pMdXiomDW5a5HIi
// dk19KDIBIvvF3onLLy5aN6P11j2z57yLblXpTLoGowsc0FqtYoxczv768cyG0JJI
// MBmSW+krcqHIg6GXMhMzekNuwL/ae6fLFefyGgAwo5GhD4t02jFDA0mspUNoI0gX
// 38DYxUABs5EPOWdOLfLHXKxYvLx1Qs2sNjDKKppPgs5Jw8g2MiKYmpDvXHtA6N3B
// 6JjQ5AbHOz05Yu2/NhwmMbmSNXH8hUJJYg9zhyGd9YiXF+6r5fj4zaOYNY7cP0UN
// bzt89DIiAIVY/SxoonK/u5myE3h8ChdYMbdeUCBBuIWFpzK5EfbFjmV90dMgxDw=
// -----END CERTIFICATE-----`

// var publicCA = `-----BEGIN CERTIFICATE-----
// MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
// iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
// cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
// BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx
// MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV
// BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE
// ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g
// VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
// AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N
// TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj
// eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E
// oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk
// Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY
// uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j
// BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb
// +ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G
// A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw
// CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0
// LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr
// BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv
// bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov
// L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H
// ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH
// 7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi
// H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx
// RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv
// xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38
// sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL
// l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq
// 6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY
// LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5
// yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K
// 00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
// -----END CERTIFICATE-----`
