func (dc *DexClient) UpdateCustomListContext(ctx context.Context, id, name, visibility string, manga []string, version int) (*CustomListResponse, error) {
	req := struct {
		Name       string
		Visibility string
		manga      []string
		Version    int
	}{Name: name, Visibility: visibility, manga: manga, Version: version}
	rBytes, err := json.Marshal(&req)
	if err != nil {
		return nil, err
	}
	var r CustomListResponse
	err = dc.responseOp(ctx, http.MethodPut, fmt.Sprintf(UpdateCustomListPath, id), bytes.NewBuffer(rBytes), &r)
	return &r, err
}
UpdateCustomListContext : UpdateCustomList with custom context.
package mangodex
import (
	"bytes"
	"context"
	"encoding/json"
	"fmt"
	"net/http"
	"net/url"
	"strconv"
)
const (
	CreateCustomListPath        = "list"
	GetCustomListPath           = "list/%s"
	UpdateCustomListPath        = GetCustomListPath
	DeleteCustomListPath        = GetCustomListPath
	AddMangaInListPath          = "manga/%s/list/%s"
	RemoveMangaInListPath       = AddMangaInListPath
	GetPublicCustomListListPath = "user/%s/list"
)
type CustomListList struct {
	Results []CustomListResponse `json:"results"`
	Limit   int                  `json:"limit"`
	Offset  int                  `json:"offset"`
	Total   int                  `json:"total"`
}
type CustomListResponse struct {
	Result        string         `json:"result"`
	Data          CustomList     `json:"data"`
	Relationships []Relationship `json:"relationships"`
}
func (r *CustomListResponse) GetResult() string {
	return r.Result
}
type CustomList struct {
	ID         string               `json:"id"`
	Type       string               `json:"type"`
	Attributes CustomListAttributes `json:"attributes"`
}
type CustomListAttributes struct {
	Name       string `json:"name"`
	Visibility string `json:"visibility"`
	Owner      User   `json:"owner"`
	Version    int    `json:"version"`
}
func (dc *DexClient) CreateCustomList(name, visibility string, manga []string, version int) (*CustomListResponse, error) {
	return dc.CreateCustomListContext(context.Background(), name, visibility, manga, version)
}
func (dc *DexClient) CreateCustomListContext(ctx context.Context, name, visibility string, manga []string, version int) (*CustomListResponse, error) {
	req := struct {
		Name       string
		Visibility string
		manga      []string
		Version    int
	}{Name: name, Visibility: visibility, manga: manga, Version: version}
	rBytes, err := json.Marshal(&req)
	if err != nil {
		return nil, err
	}
	var r CustomListResponse
	err = dc.responseOp(ctx, http.MethodPost, CreateCustomListPath, bytes.NewBuffer(rBytes), &r)
	return &r, err
}
func (dc *DexClient) GetCustomList(id string) (*CustomListResponse, error) {
	return dc.GetCustomListContext(context.Background(), id)
}
func (dc *DexClient) GetCustomListContext(ctx context.Context, id string) (*CustomListResponse, error) {
	var r CustomListResponse
	err := dc.responseOp(ctx, http.MethodGet, fmt.Sprintf(GetCustomListPath, id), nil, &r)
	return &r, err
}
func (dc *DexClient) UpdateCustomList(id, name, visibility string, manga []string, version int) (*CustomListResponse, error) {
	return dc.UpdateCustomListContext(context.Background(), id, name, visibility, manga, version)
}