feat: support cloned voice deletion
This commit is contained in:
@@ -398,6 +398,36 @@ func (c MinimaxClient) runVoiceClone(ctx context.Context, request Request) (Resp
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c MinimaxClient) DeleteVoiceClone(ctx context.Context, request VoiceCloneDeleteRequest) (VoiceCloneDeleteResponse, error) {
|
||||
startedAt := time.Now()
|
||||
voiceID := strings.TrimSpace(request.VoiceID)
|
||||
if voiceID == "" {
|
||||
return VoiceCloneDeleteResponse{}, &ClientError{Code: "bad_request", Message: "voice_id is required", Retryable: false}
|
||||
}
|
||||
client := httpClient(request.HTTPClient, c.HTTPClient)
|
||||
payload := map[string]any{
|
||||
"voice_type": "voice_cloning",
|
||||
"voice_id": voiceID,
|
||||
}
|
||||
result, requestID, err := providerPostJSON(ctx, client, providerURL(request.Candidate.BaseURL, "/delete_voice"), payload, request.Candidate.Credentials, "bearer")
|
||||
finishedAt := time.Now()
|
||||
if err != nil {
|
||||
return VoiceCloneDeleteResponse{}, annotateResponseError(err, requestID, startedAt, finishedAt)
|
||||
}
|
||||
if isProviderTaskFailure(providerTaskSpec{Name: "minimax"}, result) {
|
||||
return VoiceCloneDeleteResponse{}, providerTaskFailure(providerTaskSpec{Name: "minimax"}, result, firstNonEmptyString(requestID, requestIDFromResult(result)), startedAt)
|
||||
}
|
||||
deletedVoiceID := firstNonEmptyString(valueAtPath(result, "voice_id"), voiceID)
|
||||
return VoiceCloneDeleteResponse{
|
||||
VoiceID: deletedVoiceID,
|
||||
RequestID: firstNonEmptyString(requestID, requestIDFromResult(result)),
|
||||
Result: result,
|
||||
StartedAt: startedAt,
|
||||
FinishedAt: finishedAt,
|
||||
DurationMS: responseDurationMS(startedAt, finishedAt),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (c MinimaxClient) minimaxVoiceCloneFileID(ctx context.Context, client *http.Client, request Request, body map[string]any, purpose string, fileIDKey string, sourceKeys ...string) (any, string, error) {
|
||||
if value := firstPresent(body[fileIDKey], nil); value != nil {
|
||||
return normalizeMinimaxFileID(value), "", nil
|
||||
|
||||
Reference in New Issue
Block a user