From ab825dc5cdece3d069716c4d9114cf47f4328b0e Mon Sep 17 00:00:00 2001 From: Raigo Kovask Date: Tue, 21 May 2024 11:56:39 +0300 Subject: [PATCH] feat: validate avatar id with requests --- .../Scripts/WebRequests/AvatarAPIRequests.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Runtime/AvatarCreator/Scripts/WebRequests/AvatarAPIRequests.cs b/Runtime/AvatarCreator/Scripts/WebRequests/AvatarAPIRequests.cs index be8fe864..b6297edf 100644 --- a/Runtime/AvatarCreator/Scripts/WebRequests/AvatarAPIRequests.cs +++ b/Runtime/AvatarCreator/Scripts/WebRequests/AvatarAPIRequests.cs @@ -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"; @@ -107,6 +109,7 @@ private static string GetBodyTypeValue(BodyType bodyType) public async Task GetAvatarColors(string avatarId, AssetType assetType = AssetType.None) { + ValidateAvatarId(avatarId); var colorParameters = assetType.GetColorProperty(); if (string.IsNullOrEmpty(colorParameters)) { @@ -128,6 +131,7 @@ public async Task GetAvatarColors(string avatarId, AssetType asset public async Task GetAvatarMetadata(string avatarId, bool isDraft = false) { + ValidateAvatarId(avatarId); var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}.json?"; if (isDraft) @@ -169,6 +173,7 @@ public async Task CreateNewAvatar(AvatarProperties avatarPrope public async Task GetAvatar(string avatarId, bool isPreview = false, string parameters = null) { + ValidateAvatarId(avatarId); var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}.glb?"; if (!string.IsNullOrEmpty(parameters)) @@ -191,6 +196,7 @@ public async Task GetAvatar(string avatarId, bool isPreview = false, str public async Task GetAvatarProperties(string avatarId) { + ValidateAvatarId(avatarId); var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}.json?"; var response = await authorizedRequest.SendRequest( @@ -209,6 +215,7 @@ public async Task GetAvatarProperties(string avatarId) public async Task 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( @@ -226,6 +233,7 @@ public async Task 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( @@ -242,6 +250,7 @@ public async Task PrecompileAvatar(string avatarId, PrecompileData precompileDat public async Task SaveAvatar(string avatarId) { + ValidateAvatarId(avatarId); var response = await authorizedRequest.SendRequest( new RequestData { @@ -256,6 +265,7 @@ public async Task SaveAvatar(string avatarId) public async Task DeleteAvatar(string avatarId, bool isDraft = false) { + ValidateAvatarId(avatarId); var url = $"{RPM_AVATAR_V2_BASE_URL}/{avatarId}/"; if (isDraft) @@ -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); + } + } } }