From 1f0bba7dd0a747c6f6643d73ddd962523d3e714c Mon Sep 17 00:00:00 2001 From: Tai Groot Date: Tue, 18 Apr 2023 18:12:30 -0700 Subject: [PATCH] add editvoice based on addvoice --- client/voices.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/client/voices.go b/client/voices.go index b01e560..3dd9e69 100644 --- a/client/voices.go +++ b/client/voices.go @@ -146,11 +146,27 @@ func (c Client) EditVoice(ctx context.Context, voiceID, name, description string url := fmt.Sprintf(c.endpoint+"/v1/voices/%s/edit", voiceID) client := &http.Client{} - // TODO create body here - req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, nil) + var b bytes.Buffer + w := multipart.NewWriter(&b) + for _, r := range files { + var fw io.Writer + var err error + if fw, err = w.CreateFormFile("files[]", r.Name()); err != nil { + return err + } + if _, err := io.Copy(fw, r); err != nil { + return err + } + } + w.WriteField("name", name) + w.WriteField("description", description) + w.WriteField("name", strings.Join(labels, ", ")) + w.Close() + req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, &b) if err != nil { return err } + req.Header.Set("Content-Type", w.FormDataContentType()) req.Header.Set("xi-api-key", c.apiKey) req.Header.Set("User-Agent", "github.com/taigrr/elevenlabs") req.Header.Set("accept", "application/json")