package client

import (
	"context"
	"fmt"

	"forge.cadoles.com/cadoles/bouncer/internal/admin"
	"forge.cadoles.com/cadoles/bouncer/internal/store"
	"github.com/pkg/errors"
)

func (c *Client) DeleteProxy(ctx context.Context, proxyName store.ProxyName, funcs ...OptionFunc) (store.ProxyName, error) {
	response := withResponse[admin.DeleteProxyResponse]()

	path := fmt.Sprintf("/api/v1/proxies/%s", proxyName)

	if err := c.apiDelete(ctx, path, nil, &response, funcs...); err != nil {
		return "", errors.WithStack(err)
	}

	if response.Error != nil {
		return "", errors.WithStack(response.Error)
	}

	return response.Data.ProxyName, nil
}