public override NoAPIResponse getResponse()
        {
            BrimeAPIResponse response = doRequest();

            BrimeAPIError.ThrowException(response);
            return(new NoAPIResponse(response.Data));
        }
Exemple #2
0
        }                                                               // No parameters

        public override int getResponse()
        {
            BrimeAPIResponse response = doRequest();

            BrimeAPIError.ThrowException(response);
            return(response.Data.Value <int>("total"));
        }
Exemple #3
0
        public static void ThrowException(BrimeAPIResponse response)
        {
            // Note: Despite this being a foreach, this will only throw the first error detected. Using foreach to
            //       simplify difference between majority of cases which have no errors, and those which do. Could
            //       potentially be switched to if (response.Errors.Count > 0) switch (response.Errors[0]) ...
            foreach (BrimeAPIError error in response.Errors)
            {
                switch (error.Name)
                {
                case "INTERNAL_ERROR":      throw new BrimeAPIInternalError(error);

                case "NOT_IMPLEMENTED":     throw new BrimeAPINotImplemented(error);

                case "MISSING_PARAMETER":   throw new BrimeAPIMissingParameter(error);

                case "INVALID_CLIENT_ID":   throw new BrimeAPIInvalidClientID(error);

                case "MISSING_SCOPE":       throw new BrimeAPIMissingScope(error);

                case "INVALID_CHANNEL":     throw new BrimeAPIInvalidChannel(error);

                case "RATE_LIMIT_EXCEEDED": throw new BrimeAPIRateLimitExceeded(error);

                case "MISSING_ACCESS":      throw new BrimeAPIMissingAccess(error);

                default:                    throw new BrimeAPIException(error);
                }
            }
        }
Exemple #4
0
        public override List <BrimeClip> getResponse()
        {
            BrimeAPIResponse response = doRequest();

            BrimeAPIError.ThrowException(response);

            JArray?clips = response.Data.Value <JArray>("clips");

            if (clips != null)
            {
                List <BrimeClip> _result = new List <BrimeClip>(clips.Count);
                foreach (JToken?clip in clips)
                {
                    if (clip != null)
                    {
                        _result.Add(new BrimeClip(clip));
                    }
                }
                return(_result);
            }
            else
            {
                return(new List <BrimeClip>());
            }
        }
        public override LivestreamsByCategoryResponse getResponse()
        {
            BrimeAPIResponse response = doRequest();

            BrimeAPIError.ThrowException(response);
            return(new LivestreamsByCategoryResponse(response));
        }
Exemple #6
0
        public override BrimeEmoteSet getResponse()
        {
            BrimeAPIResponse response = doRequest();

            BrimeAPIError.ThrowException(response);
            return(new BrimeEmoteSet(response.Data));
        }
Exemple #7
0
 public ChannelEmotesResponse(BrimeAPIResponse response)
 {
     try {
         // TODO: Check structure of API response - no current example
         EmoteSet = new BrimeEmoteSet(response.Data);
     } catch (Exception e) {
         throw new BrimeAPIMalformedResponse(e.ToString());
     }
 }
Exemple #8
0
        public override BrimeCategory getResponse()
        {
            // Trigger the request and process the JSON response.
            BrimeAPIResponse response = doRequest();

            // Trigger exceptions for any detected errors in the response.
            BrimeAPIError.ThrowException(response);

            // Generate the new Category from the response.
            return(new BrimeCategory(response.Data));
        }
        public override bool getResponse()
        {
            BrimeAPIResponse response = doRequest();

            try {
                BrimeAPIError.ThrowException(response);
            } catch (BrimeAPIInvalidChannel) {
                return(false);
            }
            return(true);
        }
Exemple #10
0
        public static ErrorCheckResult CheckError(BrimeAPIResponse response)
        {
            ErrorCheckResult _result = ErrorCheckResult.VALID;

            foreach (BrimeAPIError error in response.Errors)
            {
                if (error.ErrorCode == 429)
                {
                    _result = ErrorCheckResult.RETRY;
                }
                else
                {
                    return(_result); // once one error detected, return immediately
                }
            }
            return(_result); // result will either be VALID if no error present, or set to RETRY if RateLimit detected (ERROR returns early)
        }
 public GlobalEmotesResponse(BrimeAPIResponse apiResponse)
 {
     BrimeAPIError.ThrowException(apiResponse);
     try {
         JArray?emoteSets = apiResponse.Data.Value <JArray>("emoteSets");
         GlobalEmoteSets = new List <BrimeEmoteSet>((emoteSets == null) ? 0 : emoteSets.Count);
         if (emoteSets != null)
         {
             foreach (JToken set in emoteSets)
             {
                 GlobalEmoteSets.Add(new BrimeEmoteSet(set));
             }
         }
     } catch (Exception e) {
         throw new BrimeAPIMalformedResponse(e.ToString());
     }
 }
Exemple #12
0
        public override List <BrimeStream> getResponse()
        {
            BrimeAPIResponse response = doRequest();

            BrimeAPIError.ThrowException(response);
            List <BrimeStream> _result;
            JArray?            streams = response.Data.Value <JArray>("streams");

            if (streams != null)
            {
                _result = new List <BrimeStream>(streams.Count);
                foreach (JToken item in streams)
                {
                    _result.Add(new BrimeStream(item));
                }
            }
            else
            {
                _result = new List <BrimeStream>();
            }
            return(_result);
        }
Exemple #13
0
        public override List <LivestreamsByCategoryResponse> getResponse()
        {
            BrimeAPIResponse response = doRequest();

            BrimeAPIError.ThrowException(response);
            JArray?items = response.Data.Value <JArray>("categories");

            if (items != null)
            {
                List <LivestreamsByCategoryResponse> _result = new List <LivestreamsByCategoryResponse>(items.Count);
                foreach (JToken item in items)
                {
                    if (item != null)
                    {
                        _result.Add(new LivestreamsByCategoryResponse(item));
                    }
                }
                return(_result);
            }
            else
            {
                return(new List <LivestreamsByCategoryResponse>());
            }
        }
 public LivestreamsByCategoryResponse(BrimeAPIResponse response) : this(response.Data)
 {
 }