2024-12-15 01:39:39 +00:00
#if ! DISABLE_PLAYFABENTITY_API
using System ;
using System.Collections.Generic ;
using PlayFab.CloudScriptModels ;
using PlayFab.Internal ;
using PlayFab.SharedModels ;
namespace PlayFab
{
/// <summary>
/// API methods for executing CloudScript using an Entity Profile
/// </summary>
public class PlayFabCloudScriptInstanceAPI : IPlayFabInstanceApi
{
public readonly PlayFabApiSettings apiSettings = null ;
public readonly PlayFabAuthenticationContext authenticationContext = null ;
public PlayFabCloudScriptInstanceAPI ( PlayFabAuthenticationContext context )
{
if ( context = = null )
throw new PlayFabException ( PlayFabExceptionCode . AuthContextRequired , "Context cannot be null, create a PlayFabAuthenticationContext for each player in advance, or call <PlayFabClientInstanceAPI>.GetAuthenticationContext()" ) ;
authenticationContext = context ;
}
public PlayFabCloudScriptInstanceAPI ( PlayFabApiSettings settings , PlayFabAuthenticationContext context )
{
if ( context = = null )
throw new PlayFabException ( PlayFabExceptionCode . AuthContextRequired , "Context cannot be null, create a PlayFabAuthenticationContext for each player in advance, or call <PlayFabClientInstanceAPI>.GetAuthenticationContext()" ) ;
apiSettings = settings ;
authenticationContext = context ;
}
/// <summary>
/// Verify entity login.
/// </summary>
public bool IsEntityLoggedIn ( )
{
return authenticationContext = = null ? false : authenticationContext . IsEntityLoggedIn ( ) ;
}
/// <summary>
/// Clear the Client SessionToken which allows this Client to call API calls requiring login.
/// A new/fresh login will be required after calling this.
/// </summary>
public void ForgetAllCredentials ( )
{
if ( authenticationContext ! = null )
{
authenticationContext . ForgetAllCredentials ( ) ;
}
}
/// <summary>
/// Cloud Script is one of PlayFab's most versatile features. It allows client code to request execution of any kind of
/// custom server-side functionality you can implement, and it can be used in conjunction with virtually anything.
/// </summary>
public void ExecuteEntityCloudScript ( ExecuteEntityCloudScriptRequest request , Action < ExecuteCloudScriptResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/ExecuteEntityCloudScript" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Cloud Script is one of PlayFab's most versatile features. It allows client code to request execution of any kind of
/// custom server-side functionality you can implement, and it can be used in conjunction with virtually anything.
/// </summary>
public void ExecuteFunction ( ExecuteFunctionRequest request , Action < ExecuteFunctionResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/ExecuteFunction" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Gets registered Azure Functions for a given title id and function name.
/// </summary>
public void GetFunction ( GetFunctionRequest request , Action < GetFunctionResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/GetFunction" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
2025-01-24 21:36:28 +00:00
/// <summary>
/// Lists all currently registered Event Hub triggered Azure Functions for a given title.
/// </summary>
public void ListEventHubFunctions ( ListFunctionsRequest request , Action < ListEventHubFunctionsResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/ListEventHubFunctions" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
2024-12-15 01:39:39 +00:00
/// <summary>
/// Lists all currently registered Azure Functions for a given title.
/// </summary>
public void ListFunctions ( ListFunctionsRequest request , Action < ListFunctionsResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/ListFunctions" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Lists all currently registered HTTP triggered Azure Functions for a given title.
/// </summary>
public void ListHttpFunctions ( ListFunctionsRequest request , Action < ListHttpFunctionsResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/ListHttpFunctions" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Lists all currently registered Queue triggered Azure Functions for a given title.
/// </summary>
public void ListQueuedFunctions ( ListFunctionsRequest request , Action < ListQueuedFunctionsResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/ListQueuedFunctions" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Generate an entity PlayStream event for the provided function result.
/// </summary>
public void PostFunctionResultForEntityTriggeredAction ( PostFunctionResultForEntityTriggeredActionRequest request , Action < EmptyResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/PostFunctionResultForEntityTriggeredAction" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Generate an entity PlayStream event for the provided function result.
/// </summary>
public void PostFunctionResultForFunctionExecution ( PostFunctionResultForFunctionExecutionRequest request , Action < EmptyResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/PostFunctionResultForFunctionExecution" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Generate a player PlayStream event for the provided function result.
/// </summary>
public void PostFunctionResultForPlayerTriggeredAction ( PostFunctionResultForPlayerTriggeredActionRequest request , Action < EmptyResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/PostFunctionResultForPlayerTriggeredAction" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Generate a PlayStream event for the provided function result.
/// </summary>
public void PostFunctionResultForScheduledTask ( PostFunctionResultForScheduledTaskRequest request , Action < EmptyResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/PostFunctionResultForScheduledTask" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
2025-01-24 21:36:28 +00:00
/// <summary>
/// Registers an event hub triggered Azure Function with a title.
/// </summary>
public void RegisterEventHubFunction ( RegisterEventHubFunctionRequest request , Action < EmptyResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/RegisterEventHubFunction" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
2024-12-15 01:39:39 +00:00
/// <summary>
/// Registers an HTTP triggered Azure function with a title.
/// </summary>
public void RegisterHttpFunction ( RegisterHttpFunctionRequest request , Action < EmptyResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/RegisterHttpFunction" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Registers a queue triggered Azure Function with a title.
/// </summary>
public void RegisterQueuedFunction ( RegisterQueuedFunctionRequest request , Action < EmptyResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/RegisterQueuedFunction" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
/// <summary>
/// Unregisters an Azure Function with a title.
/// </summary>
public void UnregisterFunction ( UnregisterFunctionRequest request , Action < EmptyResult > resultCallback , Action < PlayFabError > errorCallback , object customData = null , Dictionary < string , string > extraHeaders = null )
{
var context = ( request = = null ? null : request . AuthenticationContext ) ? ? authenticationContext ;
var callSettings = apiSettings ? ? PlayFabSettings . staticSettings ;
if ( ! context . IsEntityLoggedIn ( ) ) throw new PlayFabException ( PlayFabExceptionCode . NotLoggedIn , "Must be logged in to call this method" ) ;
PlayFabHttp . MakeApiCall ( "/CloudScript/UnregisterFunction" , request , AuthType . EntityToken , resultCallback , errorCallback , customData , extraHeaders , context , callSettings , this ) ;
}
}
}
#endif