Codeunit 2357 Http Response Message Impl. in 27

App
System Application
Namespace
System.RestClient

Procedures, 24

Versions171819202122232425262728latest

Source242526272829

Source in 27

src/System Application/App/Rest Client/src/HttpResponseMessageImpl.Codeunit.al222 lines, Copyright (c) Microsoft Corporation. MIT

// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace System.RestClient;

codeunit 2357 "Http Response Message Impl."
{
    Access = Internal;
    InherentEntitlements = X;
    InherentPermissions = X;

    #region Constructors
    procedure Create(ResponseMessage: HttpResponseMessage): Codeunit "Http Response Message Impl."
    begin
        SetResponseMessage(ResponseMessage);
        exit(this);
    end;
    #endregion

    #region IsBlockedByEnvironment
    var
        IsBlockedByEnvironment: Boolean;

    procedure SetIsBlockedByEnvironment(Value: Boolean)
    begin
        IsBlockedByEnvironment := Value;
    end;

    procedure GetIsBlockedByEnvironment() ReturnValue: Boolean
    begin
        ReturnValue := IsBlockedByEnvironment;
    end;
    #endregion

    #region HttpStatusCode
    var
        HttpStatusCode: Integer;

    procedure SetHttpStatusCode(Value: Integer)
    begin
        HttpStatusCode := Value;
        IsSuccessStatusCode := Value in [200 .. 299];
    end;

    procedure GetHttpStatusCode() ReturnValue: Integer
    begin
        ReturnValue := HttpStatusCode
    end;
    #endregion

    #region IsSuccessStatusCode
    var
        IsSuccessStatusCode: Boolean;

    procedure GetIsSuccessStatusCode() Result: Boolean
    begin
        Result := IsSuccessStatusCode;
    end;

    procedure SetIsSuccessStatusCode(Value: Boolean)
    begin
        IsSuccessStatusCode := Value;
    end;
    #endregion

    #region ReasonPhrase
    var
        ReasonPhrase: Text;

    procedure SetReasonPhrase(Value: Text)
    begin
        ReasonPhrase := Value;
    end;

    procedure GetReasonPhrase() ReturnValue: Text
    begin
        ReturnValue := ReasonPhrase;
    end;
    #endregion

    #region HttpContent
    var
        HttpContent: Codeunit "Http Content";

    procedure SetContent(Content: Codeunit "Http Content")
    begin
        HttpContent := Content;
    end;

    procedure GetContent() ReturnValue: Codeunit "Http Content"
    begin
        ReturnValue := HttpContent;
    end;
    #endregion

    #region HttpResponseMessage
    var
        CurrHttpResponseMessageInstance: HttpResponseMessage;

    procedure SetResponseMessage(var ResponseMessage: HttpResponseMessage)
    begin
        ClearAll();
        CurrHttpResponseMessageInstance := ResponseMessage;
        SetIsBlockedByEnvironment(ResponseMessage.IsBlockedByEnvironment);
        SetHttpStatusCode(ResponseMessage.HttpStatusCode);
        SetReasonPhrase(ResponseMessage.ReasonPhrase);
        SetIsSuccessStatusCode(ResponseMessage.IsSuccessStatusCode);
        SetHeaders(ResponseMessage.Headers);
        SetContent(HttpContent.Create(ResponseMessage.Content));
    end;

    procedure GetResponseMessage() ReturnValue: HttpResponseMessage
    begin
        ReturnValue := CurrHttpResponseMessageInstance;
    end;
    #endregion

    #region HttpHeaders
    var
        ResponseHttpHeaders: HttpHeaders;

    procedure SetHeaders(Headers: HttpHeaders)
    begin
        ResponseHttpHeaders := Headers;
    end;

    procedure GetHeaders() ReturnValue: HttpHeaders
    begin
        ReturnValue := ResponseHttpHeaders;
    end;
    #endregion

    #region Cookies
    var
        GlobalCookiesInitialized: Boolean;
        GlobalCookies: Dictionary of [Text, Cookie];

    procedure SetCookies(Cookies: Dictionary of [Text, Cookie])
    begin
        GlobalCookies := Cookies;
        GlobalCookiesInitialized := true;
    end;

    procedure GetCookies() Cookies: Dictionary of [Text, Cookie]
    begin
        InitializeCookies();
        Cookies := GlobalCookies;
    end;

    procedure GetCookieNames() CookieNames: List of [Text]
    begin
        InitializeCookies();
        CookieNames := GlobalCookies.Keys();
    end;

    procedure GetCookie(Name: Text) TheCookie: Cookie
    begin
        InitializeCookies();
        if GlobalCookies.Get(Name, TheCookie) then;
    end;

    procedure GetCookie(Name: Text; var TheCookie: Cookie) Success: Boolean
    begin
        InitializeCookies();
        Success := GlobalCookies.Get(Name, TheCookie);
    end;

    local procedure InitializeCookies()
    var
        CookieName: Text;
        Cookie: Cookie;
    begin
        if GlobalCookiesInitialized then
            exit;

        foreach CookieName in CurrHttpResponseMessageInstance.GetCookieNames() do begin
            CurrHttpResponseMessageInstance.GetCookie(CookieName, Cookie);
            GlobalCookies.Add(CookieName, Cookie);
        end;

        GlobalCookiesInitialized := true;
    end;
    #endregion

    #region ErrorMessage
    var
        ErrorMessage: Text;
        GlobalException: ErrorInfo;

    procedure SetErrorMessage(Value: Text)
    begin
        ErrorMessage := Value;
    end;

    procedure GetErrorMessage(): Text
    begin
        if GlobalException.Message <> '' then
            exit(GlobalException.Message);

        if ErrorMessage <> '' then
            exit(ErrorMessage);

        exit(GetLastErrorText());
    end;

    procedure SetException(Exception: ErrorInfo)
    begin
        GlobalException := Exception;
    end;

    procedure GetException() Exception: ErrorInfo
    var
        RestClientExceptionBuilder: Codeunit "Rest Client Exception Builder";
    begin
        if GlobalException.Message = '' then
            Exception := RestClientExceptionBuilder.CreateException(Enum::"Rest Client Exception"::UnknownException, GetErrorMessage())
        else
            Exception := GlobalException;
    end;
    #endregion
}

Procedures, 24

NameParametersReturnsAccessObsolete
SetIsBlockedByEnvironment(Boolean)public-
GetIsBlockedByEnvironment()Booleanpublic-
SetHttpStatusCode(Integer)public-
GetHttpStatusCode()Integerpublic-
GetIsSuccessStatusCode()Booleanpublic-
SetIsSuccessStatusCode(Boolean)public-
SetReasonPhrase(Text)public-
GetReasonPhrase()Textpublic-
SetContent(Codeunit Http Content)public-
GetContent()Codeunit Http Contentpublic-
SetResponseMessage(var HttpResponseMessage)public-
GetResponseMessage()HttpResponseMessagepublic-
SetHeaders(HttpHeaders)public-
GetHeaders()HttpHeaderspublic-
SetErrorMessage(Text)public-
GetErrorMessage()Textpublic-
Create(HttpResponseMessage)Codeunit Http Response Message Impl.public-
SetCookies(Dictionary)public-
GetCookies()Dictionarypublic-
GetCookieNames()Listpublic-
GetCookie(Text)Cookiepublic-
GetCookie(Text, var Cookie)Booleanpublic-
SetException(ErrorInfo)public-
GetException()ErrorInfopublic-