func ModifyWithToken(ctx context.Context, id, token string, s *discord.WebhookSettings) (*discord.Webhook, error) {
	b, err := json.Marshal(s)
	if err != nil {
		return nil, err
	}
	e := endpoint.ModifyWebhookWithToken(id, token)
	resp, err := rest.Do(ctx, e, rest.JSONPayload(b))
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	if resp.StatusCode != http.StatusOK {
		return nil, discord.NewAPIError(resp)
	}
	var w discord.Webhook
	if err = json.NewDecoder(resp.Body).Decode(&w); err != nil {
		return nil, err
	}
	return &w, nil
}
ModifyWithToken is like Modify on a Webhook resource except this call does not require
authentication, does not allow to change the channel_id parameter in the webhook settings,
and does not return a user in the webhook.
package webhook
import (
	"context"
	"encoding/json"
	"errors"
	"net/http"
	"net/url"
	"strconv"
	"github.com/skwair/harmony/discord"
	"github.com/skwair/harmony/internal/endpoint"
	"github.com/skwair/harmony/internal/rest"
)
func GetWithToken(ctx context.Context, id, token string) (*discord.Webhook, error) {
	e := endpoint.GetWebhookWithToken(id, token)
	resp, err := rest.Do(ctx, e, nil)
	if err != nil {
		return nil, err
	}
	defer resp.Body.Close()
	if resp.StatusCode != http.StatusOK {
		return nil, discord.NewAPIError(resp)
	}
	var w discord.Webhook
	if err = json.NewDecoder(resp.Body).Decode(&w); err != nil {
		return nil, err
	}
	return &w, nil
}