deepgram/deepgram-dotnet-sdk

QueryParameterUtil calling ToLower is breaking case sensitive signed url

Closed this issue · 2 comments

What is the current behavior?

What's happening that seems wrong?
I'm using the sdk and everything seems working fine except that when you pass a callbackUrl the value is being change ToLower which can affect signed url that are case sensitive like google cloud storage signed url. Not related, but I also noticed there is no way to pass the callback_method=put parameter mentioned in the docs.

Steps to reproduce

To make it faster to diagnose the root problem. Tell us how can we reproduce the bug.

Call the api with a  `callbackUrl` that contains any capital letter in a query string parameter

await _deepgramClient.Transcription.Prerecorded.GetTranscriptionAsync(
            new UrlSource(RecordingUrl),
            "https://storage.googleapis.com/bucket-name/149247/baaaf530-6f75-4a84-a960-900aa6dcf581.json?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=service-account",
            new PrerecordedTranscriptionOptions
            {
                Model = "phonecall",
                Version = null,
                Language = null,
                Tier = "nova",
                Punctuate = null,
                ProfanityFilter = null,
                Redaction = Array.Empty<string>(),
                Diarize = true,
                DiarizationVersion = null,
                MultiChannel = true,
                Alternatives = 1,
                Numerals = null,
                Numbers = null,
                NumbersSpaces = null,
                Dates = null,
                DateFormat = null,
                Times = null,
                Dictation = null,
                Measurements = null,
                SmartFormat = true,
                SearchTerms = Array.Empty<string>(),
                Replace = Array.Empty<string>(),
                Keywords = Array.Empty<string>(),
                KeywordBoost = null,
                Utterances = null,
                DetectLanguage = true,
                Paragraphs = true,
                UtteranceSplit = null,
                Summarize = true,
                DetectEntities = true,
                Translate = Array.Empty<string>(),
                DetectTopics = true,
                AnalyzeSentiment = null,
                Sentiment = null,
                SentimentThreshold = null,
                FillerWords = null,
                Tag = Array.Empty<string>()
            });

Expected behavior

What would you expect to happen when following the steps above?
I would expect the client to produce a post request where the casing is respected but that is not the case.

Please tell us about your environment

We want to make sure the problem isn't specific to your operating system or programming language.

  • Operating System/Version: Windows 10
  • Language: [all | TypeScript | Python | PHP | etc]
  • Browser: Chrome

Other information

Anything else we should know? (e.g. detailed explanation, stack-traces, related issues, suggestions how to fix, links for us to have context, eg. stack overflow, codepen, etc)

this has been corrected with a specific check for the Callback parameter during query string generation

this has been corrected with a specific check for the Callback parameter during query string generation

Closing issue per comment.