Skip to content

Commit 574d1dc

Browse files
committed
Fixed OASIS WEB4 API issues.
1 parent 3c6d5a9 commit 574d1dc

13 files changed

Lines changed: 3630 additions & 3623 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,3 +297,4 @@ NextGenSoftware.OASIS.API.ONODE.WebUI.HTML/react-app/yarn.lock
297297
/NextGenSoftware.OASIS.API.ONODE.Core.TestHarness/OASIS_DNA.json
298298
/NextGenSoftware.OASIS.API.ONode.WebAPI/OASIS_DNA.json
299299
/ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/OASIS_DNA.json
300+
/STAR ODK/NextGenSoftware.OASIS.STAR.WebAPI/OASIS_DNA.json

ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/EggsController.cs

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.Threading.Tasks;
44
using Microsoft.AspNetCore.Mvc;
5+
using NextGenSoftware.OASIS.API.Core.Enums;
56
using NextGenSoftware.OASIS.API.Core.Helpers;
67
using NextGenSoftware.OASIS.API.Core.Managers;
78
using NextGenSoftware.OASIS.Common;
@@ -25,7 +26,7 @@ public EggsController()
2526
public async Task<OASISResult<List<Egg>>> GetAllEggs()
2627
{
2728
// Use EggsManager for business logic
28-
return await EggsManager.Instance.GetAllEggsAsync();
29+
return await EggsManager.Instance.GetAllEggsAsync(AvatarId);
2930
}
3031

3132
/// <summary>
@@ -37,7 +38,7 @@ public async Task<OASISResult<List<Egg>>> GetAllEggs()
3738
public async Task<OASISResult<List<EggQuest>>> GetCurrentEggQuests()
3839
{
3940
// Use EggsManager for business logic
40-
return await EggsManager.Instance.GetCurrentEggQuestsAsync();
41+
return await EggsManager.Instance.GetCurrentEggQuestsAsync(AvatarId);
4142
}
4243

4344
/// <summary>
@@ -46,10 +47,10 @@ public async Task<OASISResult<List<EggQuest>>> GetCurrentEggQuests()
4647
/// <returns>Leaderboard for current egg quests</returns>
4748
[Authorize]
4849
[HttpGet("get-current-egg-quest-leader-board")]
49-
public async Task<OASISResult<List<EggQuestLeaderboardEntry>>> GetCurrentEggQuestLeaderBoard()
50+
public async Task<OASISResult<List<EggQuestLeaderboard>>> GetCurrentEggQuestLeaderBoard()
5051
{
5152
// Use EggsManager for business logic
52-
return await EggsManager.Instance.GetCurrentEggQuestLeaderboardAsync();
53+
return await EggsManager.Instance.GetCurrentEggQuestLeaderboardAsync(AvatarId);
5354
}
5455

5556
/// <summary>
@@ -61,7 +62,7 @@ public async Task<OASISResult<List<EggQuestLeaderboardEntry>>> GetCurrentEggQues
6162
public async Task<OASISResult<List<Egg>>> GetMyEggs()
6263
{
6364
// Use EggsManager for business logic
64-
return await EggsManager.Instance.GetAvatarEggsAsync(Avatar.Id);
65+
return await EggsManager.Instance.GetAllEggsAsync(Avatar.Id);
6566
}
6667

6768
/// <summary>
@@ -72,10 +73,10 @@ public async Task<OASISResult<List<Egg>>> GetMyEggs()
7273
/// <returns>Newly discovered egg</returns>
7374
[Authorize]
7475
[HttpPost("discover")]
75-
public async Task<OASISResult<Egg>> DiscoverEgg([FromBody] Guid locationId, [FromQuery] EggDiscoveryMethod discoveryMethod = EggDiscoveryMethod.Exploration)
76+
public async Task<OASISResult<Egg>> DiscoverEgg([FromBody] EggType eggType, string name, Guid locationId, string locationName, [FromQuery] EggDiscoveryMethod discoveryMethod = EggDiscoveryMethod.Exploration)
7677
{
7778
// Use EggsManager for business logic
78-
return await EggsManager.Instance.DiscoverEggAsync(Avatar.Id, locationId, discoveryMethod);
79+
return await EggsManager.Instance.DiscoverEggAsync(Avatar.Id, eggType, name, locationId, locationName, discoveryMethod);
7980
}
8081

8182
/// <summary>
@@ -85,24 +86,24 @@ public async Task<OASISResult<Egg>> DiscoverEgg([FromBody] Guid locationId, [Fro
8586
/// <returns>Result of hatching</returns>
8687
[Authorize]
8788
[HttpPost("hatch/{eggId}")]
88-
public async Task<OASISResult<EggHatchResult>> HatchEgg(Guid eggId)
89+
public async Task<OASISResult<Egg>> HatchEgg(Guid eggId)
8990
{
9091
// Use EggsManager for business logic
9192
return await EggsManager.Instance.HatchEggAsync(Avatar.Id, eggId);
9293
}
9394

94-
/// <summary>
95-
/// Update egg gallery position
96-
/// </summary>
97-
/// <param name="eggId">ID of the egg</param>
98-
/// <param name="position">New gallery position</param>
99-
/// <returns>Success status</returns>
100-
[Authorize]
101-
[HttpPut("gallery-position/{eggId}")]
102-
public async Task<OASISResult<bool>> UpdateGalleryPosition(Guid eggId, [FromBody] GalleryPosition position)
103-
{
104-
// Use EggsManager for business logic
105-
return await EggsManager.Instance.UpdateEggGalleryPositionAsync(Avatar.Id, eggId, position);
106-
}
95+
///// <summary>
96+
///// Update egg gallery position
97+
///// </summary>
98+
///// <param name="eggId">ID of the egg</param>
99+
///// <param name="position">New gallery position</param>
100+
///// <returns>Success status</returns>
101+
//[Authorize]
102+
//[HttpPut("gallery-position/{eggId}")]
103+
//public async Task<OASISResult<bool>> UpdateGalleryPosition(Guid eggId, [FromBody] GalleryPosition position)
104+
//{
105+
// // Use EggsManager for business logic
106+
// return await EggsManager.Instance.(Avatar.Id, eggId, position);
107+
//}
107108
}
108109
}
Lines changed: 101 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,111 @@
1-
using System.Threading.Tasks;
2-
using Microsoft.AspNetCore.Mvc;
3-
using Microsoft.Extensions.Options;
4-
using NextGenSoftware.OASIS.API.Core.Helpers;
5-
using NextGenSoftware.OASIS.API.Core.Managers;
6-
using NextGenSoftware.OASIS.API.DNA;
7-
using NextGenSoftware.OASIS.Common;
8-
using System;
9-
using System.Collections.Generic;
1+
//using System.Threading.Tasks;
2+
//using Microsoft.AspNetCore.Mvc;
3+
//using Microsoft.Extensions.Options;
4+
//using NextGenSoftware.OASIS.API.Core.Helpers;
5+
//using NextGenSoftware.OASIS.API.Core.Managers;
6+
//using NextGenSoftware.OASIS.API.DNA;
7+
//using NextGenSoftware.OASIS.Common;
8+
//using System;
9+
//using System.Collections.Generic;
1010

11-
namespace NextGenSoftware.OASIS.API.ONODE.WebAPI.Controllers
12-
{
13-
[ApiController]
14-
[Route("api/files")]
15-
public class FilesController : OASISControllerBase
16-
{
17-
/*
18-
OASISDNA _settings;
11+
//namespace NextGenSoftware.OASIS.API.ONODE.WebAPI.Controllers
12+
//{
13+
// [ApiController]
14+
// [Route("api/files")]
15+
// public class FilesController : OASISControllerBase
16+
// {
17+
// /*
18+
// OASISDNA _settings;
1919

20-
public FilesController(IOptions<OASISDNA> OASISSettings) : base(OASISSettings)
21-
{
22-
_settings = OASISSettings.Value;
23-
}*/
20+
// public FilesController(IOptions<OASISDNA> OASISSettings) : base(OASISSettings)
21+
// {
22+
// _settings = OASISSettings.Value;
23+
// }*/
2424

25-
public FilesController()
26-
{
25+
// public FilesController()
26+
// {
2727

28-
}
28+
// }
2929

30-
/// <summary>
31-
/// Get's all files stored for the currently logged in avatar
32-
/// </summary>
33-
/// <returns></returns>
34-
[Authorize]
35-
[HttpGet("get-all-files-stored-for-current-logged-in-avatar")]
36-
public async Task<OASISResult<List<StoredFile>>> GetAllFilesStoredForCurrentLoggedInAvatar()
37-
{
38-
// Use FilesManager for business logic
39-
return await FilesManager.Instance.GetAllFilesForAvatarAsync(Avatar.Id);
40-
}
30+
// /// <summary>
31+
// /// Get's all files stored for the currently logged in avatar
32+
// /// </summary>
33+
// /// <returns></returns>
34+
// [Authorize]
35+
// [HttpGet("get-all-files-stored-for-current-logged-in-avatar")]
36+
// public async Task<OASISResult<List<StoredFile>>> GetAllFilesStoredForCurrentLoggedInAvatar()
37+
// {
38+
// // Use FilesManager for business logic
39+
// return await FilesManager.Instance.GetAllFilesForAvatarAsync(Avatar.Id);
40+
// }
4141

42-
/// <summary>
43-
/// Upload a file for the current avatar
44-
/// </summary>
45-
/// <param name="fileName">Name of the file</param>
46-
/// <param name="fileData">File data as byte array</param>
47-
/// <param name="contentType">MIME type of the file</param>
48-
/// <param name="metadata">Additional metadata for the file</param>
49-
/// <returns></returns>
50-
[Authorize]
51-
[HttpPost("upload-file")]
52-
public async Task<OASISResult<StoredFile>> UploadFile([FromBody] string fileName, [FromBody] byte[] fileData, [FromBody] string contentType, [FromBody] Dictionary<string, object> metadata = null)
53-
{
54-
// Use FilesManager for business logic
55-
return await FilesManager.Instance.UploadFileAsync(Avatar.Id, fileName, fileData, contentType, metadata);
56-
}
42+
// /// <summary>
43+
// /// Upload a file for the current avatar
44+
// /// </summary>
45+
// /// <param name="fileName">Name of the file</param>
46+
// /// <param name="fileData">File data as byte array</param>
47+
// /// <param name="contentType">MIME type of the file</param>
48+
// /// <param name="metadata">Additional metadata for the file</param>
49+
// /// <returns></returns>
50+
// [Authorize]
51+
// [HttpPost("upload-file")]
52+
// public async Task<OASISResult<StoredFile>> UploadFile(string fileName, byte[] fileData, string contentType, Dictionary<string, object> metadata = null)
53+
// {
54+
// // Use FilesManager for business logic
55+
// return await FilesManager.Instance.UploadFileAsync(Avatar.Id, fileName, fileData, contentType, metadata);
56+
// }
5757

58-
/// <summary>
59-
/// Download a file by ID
60-
/// </summary>
61-
/// <param name="fileId">ID of the file to download</param>
62-
/// <returns></returns>
63-
[Authorize]
64-
[HttpGet("download-file/{fileId}")]
65-
public async Task<OASISResult<FileDownload>> DownloadFile(Guid fileId)
66-
{
67-
// Use FilesManager for business logic
68-
return await FilesManager.Instance.DownloadFileAsync(Avatar.Id, fileId);
69-
}
58+
// /// <summary>
59+
// /// Download a file by ID
60+
// /// </summary>
61+
// /// <param name="fileId">ID of the file to download</param>
62+
// /// <returns></returns>
63+
// [Authorize]
64+
// [HttpGet("download-file/{fileId}")]
65+
// public async Task<OASISResult<FileDownload>> DownloadFile(Guid fileId)
66+
// {
67+
// // Use FilesManager for business logic
68+
// return await FilesManager.Instance.DownloadFileAsync(Avatar.Id, fileId);
69+
// }
7070

71-
/// <summary>
72-
/// Delete a file by ID
73-
/// </summary>
74-
/// <param name="fileId">ID of the file to delete</param>
75-
/// <returns></returns>
76-
[Authorize]
77-
[HttpDelete("delete-file/{fileId}")]
78-
public async Task<OASISResult<bool>> DeleteFile(Guid fileId)
79-
{
80-
// Use FilesManager for business logic
81-
return await FilesManager.Instance.DeleteFileAsync(Avatar.Id, fileId);
82-
}
71+
// /// <summary>
72+
// /// Delete a file by ID
73+
// /// </summary>
74+
// /// <param name="fileId">ID of the file to delete</param>
75+
// /// <returns></returns>
76+
// [Authorize]
77+
// [HttpDelete("delete-file/{fileId}")]
78+
// public async Task<OASISResult<bool>> DeleteFile(Guid fileId)
79+
// {
80+
// // Use FilesManager for business logic
81+
// return await FilesManager.Instance.DeleteFileAsync(Avatar.Id, fileId);
82+
// }
8383

84-
/// <summary>
85-
/// Get file metadata by ID
86-
/// </summary>
87-
/// <param name="fileId">ID of the file</param>
88-
/// <returns></returns>
89-
[Authorize]
90-
[HttpGet("file-metadata/{fileId}")]
91-
public async Task<OASISResult<StoredFile>> GetFileMetadata(Guid fileId)
92-
{
93-
// Use FilesManager for business logic
94-
return await FilesManager.Instance.GetFileMetadataAsync(Avatar.Id, fileId);
95-
}
84+
// /// <summary>
85+
// /// Get file metadata by ID
86+
// /// </summary>
87+
// /// <param name="fileId">ID of the file</param>
88+
// /// <returns></returns>
89+
// [Authorize]
90+
// [HttpGet("file-metadata/{fileId}")]
91+
// public async Task<OASISResult<StoredFile>> GetFileMetadata(Guid fileId)
92+
// {
93+
// // Use FilesManager for business logic
94+
// return await FilesManager.Instance.GetFileMetadataAsync(Avatar.Id, fileId);
95+
// }
9696

97-
/// <summary>
98-
/// Update file metadata
99-
/// </summary>
100-
/// <param name="fileId">ID of the file</param>
101-
/// <param name="metadata">New metadata for the file</param>
102-
/// <returns></returns>
103-
[Authorize]
104-
[HttpPut("update-file-metadata/{fileId}")]
105-
public async Task<OASISResult<bool>> UpdateFileMetadata(Guid fileId, [FromBody] Dictionary<string, object> metadata)
106-
{
107-
// Use FilesManager for business logic
108-
return await FilesManager.Instance.UpdateFileMetadataAsync(Avatar.Id, fileId, metadata);
109-
}
110-
}
111-
}
97+
// /// <summary>
98+
// /// Update file metadata
99+
// /// </summary>
100+
// /// <param name="fileId">ID of the file</param>
101+
// /// <param name="metadata">New metadata for the file</param>
102+
// /// <returns></returns>
103+
// [Authorize]
104+
// [HttpPut("update-file-metadata/{fileId}")]
105+
// public async Task<OASISResult<bool>> UpdateFileMetadata(Guid fileId, [FromBody] Dictionary<string, object> metadata)
106+
// {
107+
// // Use FilesManager for business logic
108+
// return await FilesManager.Instance.UpdateFileMetadataAsync(Avatar.Id, fileId, metadata);
109+
// }
110+
// }
111+
//}

ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/GiftsController.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ public async Task<OASISResult<List<Gift>>> GetMyGifts()
3737
/// <returns>Sent gift details</returns>
3838
[Authorize]
3939
[HttpPost("send-gift/{toAvatarId}")]
40-
public async Task<OASISResult<Gift>> SendGift(Guid toAvatarId, [FromBody] GiftType giftType, [FromBody] string message = null, [FromBody] Dictionary<string, object> metadata = null)
40+
//public async Task<OASISResult<Gift>> SendGift(Guid toAvatarId, [FromBody] GiftType giftType, [FromBody] string message = null, [FromBody] Dictionary<string, object> metadata = null)
41+
public async Task<OASISResult<Gift>> SendGift(Guid toAvatarId, GiftType giftType, string message = null, Dictionary<string, object> metadata = null)
4142
{
4243
return await GiftsManager.Instance.SendGiftAsync(Avatar.Id, toAvatarId, giftType, message, metadata);
4344
}

ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/HealthController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using Microsoft.AspNetCore.Mvc;
23

34
namespace NextGenSoftware.OASIS.API.ONODE.WebAPI.Controllers

ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/MapController.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
using System.Threading.Tasks;
44
using Microsoft.AspNetCore.Mvc;
55
using NextGenSoftware.OASIS.API.Core.Holons;
6+
using NextGenSoftware.OASIS.API.Core.Interfaces.Search;
67
using NextGenSoftware.OASIS.API.Core.Objects;
8+
using NextGenSoftware.OASIS.API.Core.Objects.Search;
79
using NextGenSoftware.OASIS.API.ONODE.Core.Holons;
810
using NextGenSoftware.OASIS.API.ONODE.Core.Managers;
911
using NextGenSoftware.OASIS.Common;
@@ -43,10 +45,10 @@ private MapManager MapManager
4345
/// <param name="searchParams">Search parameters including query, location bounds, and filters</param>
4446
/// <returns>Search results containing matching locations and features</returns>
4547
[HttpPost("search")]
46-
public async Task<OASISResult<ISearchResults>> Search([FromBody] ISearchParams searchParams)
48+
public async Task<OASISResult<List<MapLocation>>> Search(string query, LocationType? type = null, double? latitude = null, double? longitude = null, double? radiusKm = null)
4749
{
4850
// Use MapManager for business logic
49-
return await MapManager.SearchAsync(searchParams);
51+
return await MapManager.SearchLocationsAsync(query, type, latitude, longitude, radiusKm);
5052
}
5153

5254
///// <summary>

0 commit comments

Comments
 (0)