Skip to content

Commit

Permalink
Merge pull request #149 from bennycdr/main
Browse files Browse the repository at this point in the history
Added GetDefaultCustomData to the public API.
  • Loading branch information
Dartanlla authored Jan 23, 2025
2 parents 035be1c + 7f716d1 commit a397d75
Show file tree
Hide file tree
Showing 15 changed files with 340 additions and 3 deletions.
8 changes: 8 additions & 0 deletions src/OWSData/Models/Composites/DefaultCustomDataDTO.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace OWSData.Models.Composites
{
public class DefaultCustomDataDTO
{
public string CustomFieldName { get; set; }
public string FieldValue { get; set; }
}
}
12 changes: 12 additions & 0 deletions src/OWSData/Models/Composites/DefaultCustomDataRows.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using OWSData.Models.Tables;
using System;
using System.Collections.Generic;
using System.Text;

namespace OWSData.Models.Composites
{
public class DefaultCustomDataRows
{
public List<DefaultCustomData> Rows { get; set; }
}
}
15 changes: 15 additions & 0 deletions src/OWSData/Models/Tables/DefaultCustomData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;

namespace OWSData.Models.Tables
{
public partial class DefaultCustomData
{
// public Guid CustomerGuid { get; set; }
// public int DefaultCustomCharacterDataId { get; set; }
// public int DefaultCharacterValuesId { get; set; }
public string CustomFieldName { get; set; }
public string FieldValue { get; set; }

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,24 @@ public async Task<GetCharByCharName> GetCharByCharName(Guid customerGUID, string
return outputCharacter.FirstOrDefault();
}

public async Task<IEnumerable<DefaultCustomData>> GetDefaultCustomCharacterData(Guid customerGUID, string defaultSetName)
{
IEnumerable<DefaultCustomData> outputDefaultCustomCharacterDataRows;

using (Connection)
{
var parameters = new DynamicParameters();
parameters.Add("@CustomerGUID", customerGUID);
parameters.Add("@DefaultSetName", defaultSetName);

outputDefaultCustomCharacterDataRows = await Connection.QueryAsync<DefaultCustomData>(GenericQueries.GetDefaultCharacterCustomDataByName,
parameters,
commandType: CommandType.Text);
}

return outputDefaultCustomCharacterDataRows;
}

public async Task<IEnumerable<CustomCharacterData>> GetCustomCharacterData(Guid customerGUID, string characterName)
{
IEnumerable<CustomCharacterData> outputCustomCharacterDataRows;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,23 @@ public async Task<IEnumerable<CustomCharacterData>> GetCustomCharacterData(Guid

return outputCustomCharacterDataRows;
}
public async Task<IEnumerable<DefaultCustomData>> GetDefaultCustomCharacterData(Guid customerGUID, string defaultSetName)
{
IEnumerable<DefaultCustomData> outputDefaultCustomCharacterDataRows;

using (Connection)
{
var parameters = new DynamicParameters();
parameters.Add("@CustomerGUID", customerGUID);
parameters.Add("@DefaultSetName", defaultSetName);

outputDefaultCustomCharacterDataRows = await Connection.QueryAsync<DefaultCustomData>(GenericQueries.GetDefaultCharacterCustomDataByName,
parameters,
commandType: CommandType.Text);
}

return outputDefaultCustomCharacterDataRows;
}

public async Task<JoinMapByCharName> JoinMapByCharName(Guid customerGUID, string characterName, string zoneName, int playerGroupType)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,23 @@ public async Task<IEnumerable<CustomCharacterData>> GetCustomCharacterData(Guid

return outputCustomCharacterDataRows;
}
public async Task<IEnumerable<DefaultCustomData>> GetDefaultCustomCharacterData(Guid customerGUID, string defaultSetName)
{
IEnumerable<DefaultCustomData> outputDefaultCustomCharacterDataRows;

using (Connection)
{
var parameters = new DynamicParameters();
parameters.Add("@CustomerGUID", customerGUID);
parameters.Add("@DefaultSetName", defaultSetName);

outputDefaultCustomCharacterDataRows = await Connection.QueryAsync<DefaultCustomData>(GenericQueries.GetDefaultCustomCharacterDataByDefaultSetName,
parameters,
commandType: CommandType.Text);
}

return outputDefaultCustomCharacterDataRows;
}

public async Task<JoinMapByCharName> JoinMapByCharName(Guid customerGUID, string characterName, string zoneName, int playerGroupType)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public interface ICharactersRepository
Task CleanUpInstances(Guid customerGUID);
Task<GetCharByCharName> GetCharByCharName(Guid customerGUID, string characterName);
Task<IEnumerable<CustomCharacterData>> GetCustomCharacterData(Guid customerGUID, string characterName);
Task<IEnumerable<DefaultCustomData>> GetDefaultCustomCharacterData(Guid customerGUID, string defaultSetName);
Task<JoinMapByCharName> JoinMapByCharName(Guid customerGUID, string characterName, string zoneName, int playerGroupType);
Task UpdateCharacterStats(UpdateCharacterStats updateCharacterStats);
Task UpdatePosition(Guid customerGUID, string characterName, string mapName, float X, float Y, float Z, float RX, float RY, float RZ);
Expand Down
16 changes: 15 additions & 1 deletion src/OWSData/SQL/GenericQueries.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,21 @@ FROM CustomCharacterData CCD
WHERE CCD.CustomerGUID = @CustomerGUID
AND C.CharName = @CharName";

public static readonly string GetPlayerGroupIDByType = @"SELECT COALESCE(PG.PlayerGroupID, 0)
public static readonly string GetDefaultCharacterCustomDataByName = @"SELECT *
FROM CustomCharacterData CCD
INNER JOIN Characters C ON C.CharacterID = CCD.CharacterID
WHERE CCD.CustomerGUID = @CustomerGUID
AND C.CharName = @DefaultSetName";

public static readonly string GetDefaultCustomCharacterDataByDefaultSetName = @"SELECT *
FROM DefaultCustomCharacterData DCCD
INNER JOIN DefaultCharacterValues DCV
ON DCCD.DefaultCharacterValuesId = DCV.DefaultCharacterValuesId
WHERE DCV.DefaultSetName = @DefaultSetName
AND DCCD.CustomerGUID = @CustomerGUID";


public static readonly string GetPlayerGroupIDByType = @"SELECT COALESCE(PG.PlayerGroupID, 0)
FROM PlayerGroupCharacters PGC
INNER JOIN PlayerGroup PG ON PG.PlayerGroupID = PGC.PlayerGroupID
WHERE PGC.CustomerGUID = @CustomerGUID
Expand Down
20 changes: 19 additions & 1 deletion src/OWSPublicAPI/Controllers/CharactersController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
using OWSPublicAPI.Requests.Characters;
using OWSData.Repositories.Interfaces;
using OWSPublicAPI.DTOs;
using OWSData.Models.Composites;

namespace OWSPublicAPI.Controllers
{
Expand All @@ -34,6 +35,7 @@ public class CharactersController : Controller
private readonly ICharactersRepository _charactersRepository;
private readonly IHeaderCustomerGUID _customerGuid;
private readonly ICustomCharacterDataSelector _customCharacterDataSelector;
private readonly ICustomDataSelector _customDataSelector;
private readonly IGetReadOnlyPublicCharacterData _getReadOnlyPublicCharacterData;

/// <summary>
Expand All @@ -43,13 +45,14 @@ public class CharactersController : Controller
/// All dependencies are injected.
/// </remarks>
public CharactersController(Container container, IUsersRepository usersRepository, ICharactersRepository charactersRepository, IHeaderCustomerGUID customerGuid,
ICustomCharacterDataSelector customCharacterDataSelector, IGetReadOnlyPublicCharacterData getReadOnlyPublicCharacterData)
ICustomCharacterDataSelector customCharacterDataSelector, ICustomDataSelector customDataSelector, IGetReadOnlyPublicCharacterData getReadOnlyPublicCharacterData)
{
_container = container;
_usersRepository = usersRepository;
_charactersRepository = charactersRepository;
_customerGuid = customerGuid;
_customCharacterDataSelector = customCharacterDataSelector;
_customDataSelector = customDataSelector;
_getReadOnlyPublicCharacterData = getReadOnlyPublicCharacterData;
}

Expand Down Expand Up @@ -85,5 +88,20 @@ public async Task<IActionResult> GetByName([FromBody] GetByNameDTO request)
return await getByNameRequest.Handle();
}

/// <summary>
/// Get Default Custom Character Data by defaultSetName.
/// </summary>
/// <remarks>
/// Get Default Custom Character Data by defaultSetName
/// </remarks>
[HttpPost]
[Route("GetDefaultCustomData")]
[Produces(typeof(DefaultCustomDataRows))]

public async Task<IActionResult> GetDefaultCustomData([FromBody] GetDefaultCustomrDataDTO request)
{
GetDefaultCustomDataRequest getDefaultCustomData = new GetDefaultCustomDataRequest(request, _usersRepository, _charactersRepository, _customerGuid, _customDataSelector, _getReadOnlyPublicCharacterData);
return await getDefaultCustomData.Handle();
}
}
}
27 changes: 27 additions & 0 deletions src/OWSPublicAPI/DTOs/GetDefaultCustomrDataDTO.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
namespace OWSPublicAPI.DTOs
{
/// <summary>
/// GetByNameDTO data transfer object
/// </summary>
/// <remarks>
/// GetByNameDTO is data transfer object for GetByNameRequest
/// </remarks>
public class GetDefaultCustomrDataDTO
{
/// <summary>
/// UserSessionGUID Request Parameter
/// </summary>
/// <remarks>
/// Contains the User Session GUID from the request
/// </remarks>
public string UserSessionGUID { get; set; }

/// <summary>
/// CharacterName Request Paramater
/// </summary>
/// <remarks>
/// Contains the Character Name from the request
/// </remarks>
public string DefaultSetName { get; set; }
}
}
58 changes: 57 additions & 1 deletion src/OWSPublicAPI/OWSPublicAPI.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit a397d75

Please sign in to comment.