diff --git a/openapi b/openapi index 073fd7213fd9e6ebc2f8a47d628a650de30c8bc4..99ea877dca8ba0587699f12dab77a43f79a836fc 160000 --- a/openapi +++ b/openapi @@ -1 +1 @@ -Subproject commit 073fd7213fd9e6ebc2f8a47d628a650de30c8bc4 +Subproject commit 99ea877dca8ba0587699f12dab77a43f79a836fc diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/RelocalizationInformationImpl.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/RelocalizationInformationImpl.cs index 9a377b30adec12cab328cbdf7b14cdf9e249f9da..f4cf0957c08164e4498a377e36215fef56c2f3af 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/RelocalizationInformationImpl.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/RelocalizationInformationImpl.cs @@ -52,17 +52,24 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// Operation to retrieve all the relocalization information of one or severals WorldAnchors or Trackables. /// /// - public override IActionResult GetRelocalizationInformation([FromQuery(Name = "uuids")][Required()] List uuids, [FromQuery(Name = "capabilities")][Required()] List capabilities, [FromHeader(Name = "token")] string token) + // old: public override IActionResult GetRelocalizationInformation([FromQuery(Name = "uuids")][Required()] List uuids, [FromQuery(Name = "capabilities")][Required()] List capabilities, [FromHeader(Name = "token")] string token) + public override IActionResult GetRelocalizationInformation([FromQuery(Name = "uuids")][Required()] List uuids, [FromQuery(Name = "capabilities")][Required()] List capabilities, [FromHeader(Name = "token")] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + WorldAnchorService _worldAnchorService = WorldAnchorService.Singleton as WorldAnchorService; TrackableService _trackableService = TrackableService.Singleton as TrackableService; var history = new List(); - var result = new GetRelocalizationInformation200Response(); + var result = new RelocalizationInformations(); result.RelocInfo = new List(); + Guid errorUid = Guid.Empty; + foreach (var request in uuids) { + //System.Diagnostics.Debug.WriteLine("RelocInfo: Looking in the WS database for UUID=" + request.Uuid.ToString()); + var anchor = _worldAnchorService.Get(request.Uuid); Trackable trackable = null; @@ -88,18 +95,18 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers else if (trackable != null) { history.Add(trackable.UUID); - + Matrix4x4 matrix = Matrix4x4.Identity; var relocalizationInformation = new RelocalizationInformation(); relocalizationInformation.RequestUUID = trackable.UUID; relocalizationInformation.RequestType = TypeWorldStorage.TRACKABLEEnum; - relocalizationInformation.RelocObjects = new List(); + relocalizationInformation.RelocObjects = new List(); if (trackable.Match(capabilities)) { // add itself with matrix identity as Transform3D - var itself = new RelocalizationInformationRelocObjectsInner(); + var itself = new RelocObject(); itself.Trackable = trackable; itself.Mode = request.Mode; itself.Transform3D = new List() @@ -118,16 +125,19 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers } else { - Console.WriteLine($"WorldAnchor with UUID {request.Uuid} does not exist in database"); + Console.WriteLine($"Trackable or WorldAnchor with UUID {request.Uuid} does not exist in database"); } } - return result.RelocInfo.Count > 0 ? new ObjectResult(result) : StatusCode(404, "Not found, could not find UUID in database."); + return result.RelocInfo.Count > 0 ? new ObjectResult(result) : StatusCode(404, new Error() { Message = "Not found, could not find UUID(s) in database." }); } - private List FindRelocInfo(Guid targetUUID, ModeWorldStorage mode, Matrix4x4 matrix, List capabilities, ref List history) + // + // Helpers + // + private List FindRelocInfo(Guid targetUUID, ModeWorldStorage mode, Matrix4x4 matrix, List capabilities, ref List history) { - var results = new List(); + var results = new List(); results.AddRange(FindRelocInfoAsTo(targetUUID, mode, matrix, capabilities, ref history)); results.AddRange(FindRelocInfoAsFrom(targetUUID, mode, matrix, capabilities, ref history)); @@ -136,13 +146,13 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers } // Check links where the target UUID appeared as "To" - private List FindRelocInfoAsTo(Guid targetUUID, ModeWorldStorage mode, Matrix4x4 matrix, List capabilities, ref List history) + private List FindRelocInfoAsTo(Guid targetUUID, ModeWorldStorage mode, Matrix4x4 matrix, List capabilities, ref List history) { TrackableService _trackableService = TrackableService.Singleton as TrackableService; WorldAnchorService _worldAnchorService = WorldAnchorService.Singleton as WorldAnchorService; WorldLinkService _worldLinkService = WorldLinkService.Singleton as WorldLinkService; - var results = new List(); + var results = new List(); // Check links where the target UUID appeared as "To" List linksTo; @@ -199,7 +209,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers } // We found a valid trackable, add it to the results - var result = new RelocalizationInformationRelocObjectsInner(); + var result = new RelocObject(); result.Trackable = trackable; result.Mode = mode; result.Transform3D = new List() @@ -226,9 +236,9 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers if (anchor != null) { - + Matrix4x4 m; - m = link.Matrix()*matrix; + m = link.Matrix() * matrix; if (mode == ModeWorldStorage.REQUESTTOTRACKABLESEnum) { @@ -272,13 +282,13 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers } // Check links where the target UUID appeared as "From" - private List FindRelocInfoAsFrom(Guid targetUUID, ModeWorldStorage mode, Matrix4x4 matrix, List capabilities, ref List history) + private List FindRelocInfoAsFrom(Guid targetUUID, ModeWorldStorage mode, Matrix4x4 matrix, List capabilities, ref List history) { TrackableService _trackableService = TrackableService.Singleton as TrackableService; WorldAnchorService _worldAnchorService = WorldAnchorService.Singleton as WorldAnchorService; WorldLinkService _worldLinkService = WorldLinkService.Singleton as WorldLinkService; - var results = new List(); + var results = new List(); // Check links where the anchor appeared as "From" List linksTo; @@ -335,7 +345,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers } // We found a valid trackable, add it to the results - var result = new RelocalizationInformationRelocObjectsInner(); + var result = new RelocObject(); result.Trackable = trackable; result.Mode = mode; result.Transform3D = new List() diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/TrackablesImpl.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/TrackablesImpl.cs index f6c4bdce3a49c4e5aaa0375582fd51d7f37f0f7a..46e13652029ec8c3b23c935e6e23c99473d0ce8a 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/TrackablesImpl.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/TrackablesImpl.cs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -// Last change: June 2024 +// Last change: September 2024 // /* @@ -66,6 +66,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult AddTrackable([FromBody] Trackable trackable, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + if (String.IsNullOrEmpty(trackable.UUID.ToString())) { trackable.UUID = Guid.NewGuid(); @@ -75,13 +77,13 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers Trackable mytrackable = _trackableService.Create(trackable); if (mytrackable == null) { - return StatusCode(409, "UUID already existing!"); + return StatusCode(409, new Error() { Message = "UUID already existing!" }); } - else return StatusCode(200, mytrackable.UUID.ToString()); + else return StatusCode(200, new Success() { Message = mytrackable.UUID.ToString() }); } catch (Exception e) { - return StatusCode(400, e.Message); + return StatusCode(400, new Error() { Message = e.Message }); } } @@ -90,6 +92,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult DeleteTrackable([FromRoute(Name = "trackableUUID")][Required] Guid trackableUUID, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + // Access other service(s) WorldLinkService _worldLinkService = WorldLinkService.Singleton as WorldLinkService; @@ -121,7 +125,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers { result += ", removed object was referenced in " + worldlinkinfo + " and removed there as well"; } - return (count > 0) ? new ObjectResult(result) : StatusCode(404, "Not found, could not find UUID in database."); + result += " Token: " + token; + return (count > 0) ? StatusCode(200, new Success() { Message = result }) : StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } /// @@ -129,8 +134,10 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult GetTrackableById([FromRoute(Name = "trackableUUID")][Required] Guid trackableUUID, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + Trackable trackable = _trackableService.Get(trackableUUID); - return (null != trackable) ? new ObjectResult(trackable) : StatusCode(404, "Not found, could not find UUID in database."); + return (null != trackable) ? new ObjectResult(trackable) : StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } /// @@ -138,8 +145,11 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult GetTrackables([FromHeader] string token) { - List trackablelist = _trackableService.Get(); - return new ObjectResult(trackablelist); + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + + TrackablesResponse response = new TrackablesResponse(); + response.Trackables = _trackableService.Get(); + return new ObjectResult(response); } @@ -149,14 +159,16 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult ModifyTrackable([FromBody] Trackable trackable, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + long count = _trackableService.Replace(trackable); if (count == 0) { - return StatusCode(404, "Not found, could not find UUID in database."); + return StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } else { - return StatusCode(200, trackable.UUID.ToString()); + return StatusCode(200, new Success() { Message = trackable.UUID.ToString() }); } } } diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/WorldAnchorsImpl.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/WorldAnchorsImpl.cs index 0d6663375c20628577dd23c0df7f95c8d525586f..0aebce3020e289304dc4cebcfba5532e413bc5d7 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/WorldAnchorsImpl.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/WorldAnchorsImpl.cs @@ -66,6 +66,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult AddWorldAnchor([FromBody] WorldAnchor worldAnchor, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + if (String.IsNullOrEmpty(worldAnchor.UUID.ToString())) { worldAnchor.UUID = Guid.NewGuid(); @@ -75,13 +77,13 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers WorldAnchor myworldanchor = _worldAnchorService.Create(worldAnchor); if (myworldanchor == null) { - return StatusCode(409, "UUID alread exexisting!"); + return StatusCode(409, new Error() { Message = "UUID alread exexisting!" }); } - else return StatusCode(200, myworldanchor.UUID.ToString()); + else return StatusCode(200, new Success() { Message = myworldanchor.UUID.ToString() }); } catch (Exception e) { - return StatusCode(400, e.Message); + return StatusCode(400, new Error() { Message = e.Message }); } } @@ -90,6 +92,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult DeleteWorldAnchor([FromRoute(Name = "worldAnchorUUID")][Required] Guid worldAnchorUUID, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + // Access other service(s) WorldLinkService _worldLinkService = WorldLinkService.Singleton as WorldLinkService; @@ -121,7 +125,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers { result += ", but removed object was referenced in " + worldlinkinfo + " and removed there as well"; } - return (count > 0) ? new ObjectResult(result) : StatusCode(404, "Not found, could not find UUID in database."); + return (count > 0) ? StatusCode(200, new Success() { Message = result }) : StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } /// @@ -129,8 +133,10 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult GetWorldAnchorById([FromRoute(Name = "worldAnchorUUID")][Required] Guid worldAnchorUUID, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + WorldAnchor myworldanchor = _worldAnchorService.Get(worldAnchorUUID); - return (null != myworldanchor) ? new ObjectResult(myworldanchor) : StatusCode(404, "Not found, could not find UUID in database."); + return (null != myworldanchor) ? new ObjectResult(myworldanchor) : StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } /// @@ -138,8 +144,11 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult GetWorldAnchors([FromHeader] string token) { - List worldanchorlist = _worldAnchorService.Get(); - return new ObjectResult(worldanchorlist); + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + + WorldAnchorsResponse response = new WorldAnchorsResponse(); + response.WorldAnchors = _worldAnchorService.Get(); + return new ObjectResult(response); } @@ -149,14 +158,16 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult ModifyWorldAnchor([FromBody] WorldAnchor worldAnchor, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + long count = _worldAnchorService.Replace(worldAnchor); if (count == 0) { - return StatusCode(404, "Not found, could not find UUID in database."); + return StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } else { - return StatusCode(200, worldAnchor.UUID.ToString()); + return StatusCode(200, new Success() { Message = worldAnchor.UUID.ToString() }); } } diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/WorldLinksImpl.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/WorldLinksImpl.cs index 27ce36e891b86c3a6dff3ea9f757fa3941ebc2b9..48a0b9422046f27d187b9aa23ba36eacf125a9dc 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/WorldLinksImpl.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/ControllersImpl/WorldLinksImpl.cs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -// Last change: June 2024 +// Last change: September 2024 // /* @@ -65,6 +65,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult AddWorldLink([FromBody] WorldLink worldLink, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + if (String.IsNullOrEmpty(worldLink.UUID.ToString())) { worldLink.UUID = Guid.NewGuid(); @@ -74,13 +76,13 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers WorldLink myworldlink = _worldLinkService.Create(worldLink); if (myworldlink == null) { - return StatusCode(409, "UUID already existing!"); + return StatusCode(409, new Error() { Message = "UUID already existing!" }); } - else return StatusCode(200, myworldlink.UUID.ToString()); + else return StatusCode(200, new Success() { Message = myworldlink.UUID.ToString() }); } catch (Exception e) { - return StatusCode(400, e.Message); + return StatusCode(400, new Error() { Message = e.Message}); } } @@ -89,8 +91,10 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult DeleteWorldLink([FromRoute(Name = "worldLinkUUID")][Required] Guid worldLinkUUID, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + long count = _worldLinkService.Remove(worldLinkUUID); - return (count > 0) ? new ObjectResult("ok") : StatusCode(404, "Not found, could not find UUID in database."); + return (count > 0) ? StatusCode(200, new Success() { Message = "ok" } ) : StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } @@ -99,6 +103,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult GetWorldLinkById([FromRoute(Name = "worldLinkUUID")][Required] Guid worldLinkUUID, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + // Access other service(s) TrackableService _trackableService = TrackableService.Singleton as TrackableService; WorldAnchorService _worldAnchorService = WorldAnchorService.Singleton as WorldAnchorService; @@ -141,7 +147,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers } } } - return (null != myworldlink) ? new ObjectResult(myworldlink) : StatusCode(404, "Not found, could not find UUID in database."); + return (null != myworldlink) ? new ObjectResult(myworldlink) : StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } /// @@ -149,12 +155,16 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult GetWorldLinks([FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + + WorldLinksResponse response = new WorldLinksResponse(); + // Access other service(s) TrackableService _trackableService = TrackableService.Singleton as TrackableService; WorldAnchorService _worldAnchorService = WorldAnchorService.Singleton as WorldAnchorService; - List worldlinklist = _worldLinkService.Get(); - foreach (WorldLink myworldlink in worldlinklist) + response.WorldLinks = _worldLinkService.Get(); + foreach (WorldLink myworldlink in response.WorldLinks) { // check TypeFrom if (myworldlink.TypeFrom == TypeWorldStorage.TRACKABLEEnum) @@ -191,7 +201,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers } } } - return new ObjectResult(worldlinklist); + return new ObjectResult(response); } @@ -201,14 +211,16 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers /// public override IActionResult ModifyWorldLink([FromBody] WorldLink worldLink, [FromHeader] string token) { + if (!Startup.IsAccessGranted(token)) return StatusCode(511, new Error() { Message = "Invalid token!" }); + long count = _worldLinkService.Replace(worldLink); if (count == 0) { - return StatusCode(404, "Not found, could not find UUID in database."); + return StatusCode(404, new Error() { Message = "Not found, could not find UUID in database." }); } else { - return StatusCode(200, worldLink.UUID.ToString()); + return StatusCode(200, new Success() { Message = worldLink.UUID.ToString() }); } } } diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/TrackableService.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/TrackableService.cs index c7601cb22b3d1ede3738f9d8e7cecee6207b1756..3b4fb58180c0663f93d3fa42b17ab93c1fbd594a 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/TrackableService.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/TrackableService.cs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -// Last change: June 2022 +// Last change: June 2024 // using System; diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/WorldAnchorService.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/WorldAnchorService.cs index 2b50133bc231dd05ecf22c682875bae819f19898..78defd59775eb4e9260873b1b18d63c1264a1f28 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/WorldAnchorService.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/WorldAnchorService.cs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -// Last change: June 2022 +// Last change: June 2024 // using System; diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/WorldLinkService.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/WorldLinkService.cs index dac8abd63734ed230b56cd24ad2915ba603c9b17..7a0f1dd6871e7170afe98e26e22e238c2dadb8c6 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/WorldLinkService.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/ETSI-ARF/Services/WorldLinkService.cs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -// Last change: June 2022 +// Last change: June 2024 // using System; diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/Startup.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/Startup.cs index b2d59f7aa163a8dc47a08351cc99c1ac74395d8c..4d7bf50431faded4b46f6cbcaacf5a4214615f57 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/Startup.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/Startup.cs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. // -// Last change: June 2024 +// Last change: September 2024 // /* @@ -23,7 +23,7 @@ * * API ensuring interoperability between an authoring tool and a World Storage service * - * The version of the OpenAPI document: 2.0.1 + * The version of the OpenAPI document: 2.0.2 * * Generated by: https://openapi-generator.tech */ @@ -68,17 +68,18 @@ namespace ETSI.ARF.OpenAPI.WorldStorage /// /// The API version. (how to read it from the yaml?) /// - static public string apiVersion = "2.0.1"; + static public string apiVersion = "2.0.0"; /// /// Demo access key /// - static public string accessKey = "My!Key.ETSI"; + static public string accessKey = "ARF"; /// /// Demo secret key /// - static public string secretKey = "GW0Wae1t4Cs5rAqEbPYFWO9J5nSbpJXxp1F3uv0J"; + //static public string secretKey = "GW0Wae1t4Cs5rAqEbPYFWO9J5nSbpJXxp1F3uv0J"; + static public string secretKey = "hhi"; /// /// Constructor @@ -97,14 +98,16 @@ namespace ETSI.ARF.OpenAPI.WorldStorage /// /// SylR: Check if the request is authorized /// - /// + /// /// - //static public bool IsAccessAllowed(ETSI.ARF.OpenAPI.WorldStorage.Models.SecureAccess security) - //{ - // Console.WriteLine(security.AccessKey); - // return true; - // //return (security.AccessKey == accessKey && security.SecretKey == secretKey); - //} + static public bool IsAccessGranted(string token) + { + if (token == null) return false; + else if (token == "dev") return true; // developermode + + string[] t = token .Split('&'); + return t[0] == accessKey && t[1] == secretKey; + } /// /// This method gets called by the runtime. Use this method to add services to the container. @@ -180,7 +183,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage services .AddControllers(options => { - options.ModelBinderProviders.Insert(0, new FromJsonBinderProviderT()); + options.ModelBinderProviders.Insert(0, new FromJsonBinderProviderT()); + options.ModelBinderProviders.Insert(0, new FromJsonBinderProviderT()); options.ModelBinderProviders.Insert(0, new FromJsonBinderProviderT()); }); } @@ -220,10 +224,10 @@ namespace ETSI.ARF.OpenAPI.WorldStorage // set route prefix to openapi, e.g. http://localhost:8080/openapi/index.html c.RoutePrefix = "openapi"; //TODO: Either use the SwaggerGen generated OpenAPI contract (generated from C# classes) - //c.SwaggerEndpoint("/openapi/" + apiVersion + "/openapi.json", "World Storage API"); + c.SwaggerEndpoint("/openapi/" + apiVersion + "/openapi.json", "World Storage API"); //TODO: Or alternatively use the original OpenAPI contract that's included in the static files - c.SwaggerEndpoint("/openapi-original.json", "World Storage API Original"); + //c.SwaggerEndpoint("/openapi-original.json", "World Storage API Original"); }); app.UseRouting(); app.UseEndpoints(endpoints => diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/appsettings.json b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/appsettings.json index f2c1c69170344c6eb056decb3e52e44808e147dc..182c0310c7f82d4de46a9876debfbb4aea261a11 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/appsettings.json +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/appsettings.json @@ -5,9 +5,9 @@ "MongoSrv": "192-168-020-029.fe.hhi.de", "MongoPort": "27037", "DatabaseName": "WorldStorageAPI", - "CollectionNameWorldLinks": "WorldLinks-DEV", - "CollectionNameTrackables": "Trackables-DEV", - "CollectionNameWorldAnchors": "WorldAnchors-DEV" + "CollectionNameWorldLinks": "WorldLinks", + "CollectionNameTrackables": "Trackables", + "CollectionNameWorldAnchors": "WorldAnchors" }, "Logging": { "LogLevel": {