Skip to content

Commit

Permalink
feat: validate avatar id with requests
Browse files Browse the repository at this point in the history
  • Loading branch information
rk132 committed May 21, 2024
1 parent 12c5c99 commit ab825dc
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions Runtime/AvatarCreator/Scripts/WebRequests/AvatarAPIRequests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ namespace ReadyPlayerMe.AvatarCreator
{
public class AvatarAPIRequests
{
private const string INVALID_AVATAR_ID_ERROR_MESSAGE = "Avatar ID is null or empty. Please provide a valid avatar ID.";

private const string RPM_AVATAR_V1_BASE_URL = Env.RPM_API_V1_BASE_URL + "avatars";
private const string RPM_AVATAR_V2_BASE_URL = Env.RPM_API_V2_BASE_URL + "avatars";

Expand Down Expand Up @@ -107,6 +109,7 @@ private static string GetBodyTypeValue(BodyType bodyType)

public async Task<AssetColor[]> GetAvatarColors(string avatarId, AssetType assetType = AssetType.None)
{
ValidateAvatarId(avatarId);
var colorParameters = assetType.GetColorProperty();
if (string.IsNullOrEmpty(colorParameters))
{
Expand All @@ -128,6 +131,7 @@ public async Task<AssetColor[]> GetAvatarColors(string avatarId, AssetType asset

public async Task<AvatarProperties> GetAvatarMetadata(string avatarId, bool isDraft = false)
{
ValidateAvatarId(avatarId);
var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}.json?";

if (isDraft)
Expand Down Expand Up @@ -169,6 +173,7 @@ public async Task<AvatarProperties> CreateNewAvatar(AvatarProperties avatarPrope

public async Task<byte[]> GetAvatar(string avatarId, bool isPreview = false, string parameters = null)
{
ValidateAvatarId(avatarId);
var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}.glb?";

if (!string.IsNullOrEmpty(parameters))
Expand All @@ -191,6 +196,7 @@ public async Task<byte[]> GetAvatar(string avatarId, bool isPreview = false, str

public async Task<AvatarProperties> GetAvatarProperties(string avatarId)
{
ValidateAvatarId(avatarId);
var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}.json?";

var response = await authorizedRequest.SendRequest<Response>(
Expand All @@ -209,6 +215,7 @@ public async Task<AvatarProperties> GetAvatarProperties(string avatarId)

public async Task<byte[]> UpdateAvatar(string avatarId, AvatarProperties avatarProperties, string parameters = null)
{
ValidateAvatarId(avatarId);
var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}?responseType=glb&{parameters}";

var response = await authorizedRequest.SendRequest<Response>(
Expand All @@ -226,6 +233,7 @@ public async Task<byte[]> UpdateAvatar(string avatarId, AvatarProperties avatarP

public async Task PrecompileAvatar(string avatarId, PrecompileData precompileData, string parameters = null)
{
ValidateAvatarId(avatarId);
var json = JsonConvert.SerializeObject(precompileData);

var response = await authorizedRequest.SendRequest<Response>(
Expand All @@ -242,6 +250,7 @@ public async Task PrecompileAvatar(string avatarId, PrecompileData precompileDat

public async Task<string> SaveAvatar(string avatarId)
{
ValidateAvatarId(avatarId);
var response = await authorizedRequest.SendRequest<Response>(
new RequestData
{
Expand All @@ -256,6 +265,7 @@ public async Task<string> SaveAvatar(string avatarId)

public async Task DeleteAvatar(string avatarId, bool isDraft = false)
{
ValidateAvatarId(avatarId);
var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}/";

if (isDraft)
Expand All @@ -271,5 +281,13 @@ public async Task DeleteAvatar(string avatarId, bool isDraft = false)

response.ThrowIfError();
}

private void ValidateAvatarId(string avatarId)
{
if (string.IsNullOrEmpty(avatarId))
{
throw new Exception(INVALID_AVATAR_ID_ERROR_MESSAGE);
}
}
}
}

0 comments on commit ab825dc

Please sign in to comment.