diff --git a/openapi b/openapi index 57adeb471026ccc88074889aefbe68ef692cb0ca..84f816367c469b590cb2db47a4bb1b06b56729f9 160000 --- a/openapi +++ b/openapi @@ -1 +1 @@ -Subproject commit 57adeb471026ccc88074889aefbe68ef692cb0ca +Subproject commit 84f816367c469b590cb2db47a4bb1b06b56729f9 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 9d8d06bbaba60daf5dd8c9c586575300d0cb334b..5845b1007de4267f86043862fe47cb1b59a963fd 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 @@ -73,7 +73,11 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers try { Trackable mytrackable = _trackableService.Create(trackable); - return StatusCode(200, mytrackable.UUID.ToString()); + if (mytrackable == null) + { + return StatusCode(409, "UUID already existing!"); + } + else return StatusCode(200, mytrackable.UUID.ToString()); } catch (Exception e) { @@ -100,7 +104,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers { worldlinkinfo += worldlink.UUID.ToString() + "; "; worldlink.UUIDFrom = Guid.Empty; - worldlink.TypeFrom = ObjectType.NotIdentifiedEnum; + worldlink.TypeFrom = TypeWorldStorage.UNKNOWNEnum; _worldLinkService.Replace(worldlink); } @@ -110,7 +114,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers { worldlinkinfo += worldlink.UUID.ToString() + "; "; worldlink.UUIDTo = Guid.Empty; - worldlink.TypeTo = ObjectType.NotIdentifiedEnum; + worldlink.TypeTo = TypeWorldStorage.UNKNOWNEnum; _worldLinkService.Replace(worldlink); } if (worldlinkinfo.Length > 1) 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 97189a09776d36bdacf12cf61e8e8a2294bb08b4..8d5e48bc1d4b4c1de5cb1c04f80f34d6dcc39ce6 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 @@ -73,7 +73,11 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers try { WorldAnchor myworldanchor = _worldAnchorService.Create(worldAnchor); - return StatusCode(200, myworldanchor.UUID.ToString()); + if (myworldanchor == null) + { + return StatusCode(409, "UUID alread exexisting!"); + } + else return StatusCode(200, myworldanchor.UUID.ToString()); } catch (Exception e) { @@ -100,7 +104,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers { worldlinkinfo += worldlink.UUID.ToString() + "; "; worldlink.UUIDFrom = Guid.Empty; - worldlink.TypeFrom = ObjectType.NotIdentifiedEnum; + worldlink.TypeFrom = TypeWorldStorage.UNKNOWNEnum; _worldLinkService.Replace(worldlink); } @@ -110,7 +114,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers { worldlinkinfo += worldlink.UUID.ToString() + "; "; worldlink.UUIDTo = Guid.Empty; - worldlink.TypeTo = ObjectType.NotIdentifiedEnum; + worldlink.TypeTo = TypeWorldStorage.UNKNOWNEnum; _worldLinkService.Replace(worldlink); } if (worldlinkinfo.Length > 1) 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 9bbb36264772d44d4faa32c8eb7f2488297d08a0..cd5da8ac57a90b905ce163c9ef5423f5920f9db4 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 @@ -72,7 +72,11 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers try { WorldLink myworldlink = _worldLinkService.Create(worldLink); - return StatusCode(200, myworldlink.UUID.ToString()); + if (myworldlink == null) + { + return StatusCode(409, "UUID already existing!"); + } + else return StatusCode(200, myworldlink.UUID.ToString()); } catch (Exception e) { @@ -103,36 +107,36 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers if (null != myworldlink) { // check TypeFrom - if (myworldlink.TypeFrom == ObjectType.TrackableEnum) + if (myworldlink.TypeFrom == TypeWorldStorage.TRACKABLEEnum) { if (null == _trackableService.Get(myworldlink.UUIDFrom)) { - myworldlink.TypeFrom = ObjectType.NotIdentifiedEnum; + myworldlink.TypeFrom = TypeWorldStorage.UNKNOWNEnum; myworldlink.UUIDFrom = Guid.Empty; } } - else if (myworldlink.TypeFrom == ObjectType.WorldAnchorEnum) + else if (myworldlink.TypeFrom == TypeWorldStorage.ANCHOREnum) { if (null == _worldAnchorService.Get(myworldlink.UUIDFrom)) { - myworldlink.TypeFrom = ObjectType.NotIdentifiedEnum; + myworldlink.TypeFrom = TypeWorldStorage.UNKNOWNEnum; myworldlink.UUIDFrom = Guid.Empty; } } // check TypeTo - if (myworldlink.TypeTo == ObjectType.TrackableEnum) + if (myworldlink.TypeTo == TypeWorldStorage.TRACKABLEEnum) { if (null == _trackableService.Get(myworldlink.UUIDTo)) { - myworldlink.TypeTo = ObjectType.NotIdentifiedEnum; + myworldlink.TypeTo = TypeWorldStorage.UNKNOWNEnum; myworldlink.UUIDTo = Guid.Empty; } } - else if (myworldlink.TypeTo == ObjectType.WorldAnchorEnum) + else if (myworldlink.TypeTo == TypeWorldStorage.ANCHOREnum) { if (null == _worldAnchorService.Get(myworldlink.UUIDTo)) { - myworldlink.TypeTo = ObjectType.NotIdentifiedEnum; + myworldlink.TypeTo = TypeWorldStorage.UNKNOWNEnum; myworldlink.UUIDTo = Guid.Empty; } } @@ -153,36 +157,36 @@ namespace ETSI.ARF.OpenAPI.WorldStorage.Controllers foreach (WorldLink myworldlink in worldlinklist) { // check TypeFrom - if (myworldlink.TypeFrom == ObjectType.TrackableEnum) + if (myworldlink.TypeFrom == TypeWorldStorage.TRACKABLEEnum) { if (null == _trackableService.Get(myworldlink.UUIDFrom)) { - myworldlink.TypeFrom = ObjectType.NotIdentifiedEnum; + myworldlink.TypeFrom = TypeWorldStorage.UNKNOWNEnum; myworldlink.UUIDFrom = Guid.Empty; } } - else if (myworldlink.TypeFrom == ObjectType.WorldAnchorEnum) + else if (myworldlink.TypeFrom == TypeWorldStorage.ANCHOREnum) { if (null == _worldAnchorService.Get(myworldlink.UUIDFrom)) { - myworldlink.TypeFrom = ObjectType.NotIdentifiedEnum; + myworldlink.TypeFrom = TypeWorldStorage.UNKNOWNEnum; myworldlink.UUIDFrom = Guid.Empty; } } // check TypeTo - if (myworldlink.TypeTo == ObjectType.TrackableEnum) + if (myworldlink.TypeTo == TypeWorldStorage.TRACKABLEEnum) { if (null == _trackableService.Get(myworldlink.UUIDTo)) { - myworldlink.TypeTo = ObjectType.NotIdentifiedEnum; + myworldlink.TypeTo = TypeWorldStorage.UNKNOWNEnum; myworldlink.UUIDTo = Guid.Empty; } } - else if (myworldlink.TypeTo == ObjectType.WorldAnchorEnum) + else if (myworldlink.TypeTo == TypeWorldStorage.ANCHOREnum) { if (null == _worldAnchorService.Get(myworldlink.UUIDTo)) { - myworldlink.TypeTo = ObjectType.NotIdentifiedEnum; + myworldlink.TypeTo = TypeWorldStorage.UNKNOWNEnum; myworldlink.UUIDTo = Guid.Empty; } } diff --git a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/Startup.cs b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/Startup.cs index af7fb23731c976057ec3d636a31fe5d2c4e8cc5f..2978f0ad5a5b4b25c7cbc8693f1673badfdf250c 100644 --- a/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/Startup.cs +++ b/server/worldstorage/src/ETSI.ARF.OpenAPI.WorldStorage/Startup.cs @@ -92,8 +92,8 @@ namespace ETSI.ARF.OpenAPI.WorldStorage // // appsetting.json - requires using Microsoft.Extensions.Options - services.Configure<DatabaseSettings>(Configuration.GetSection(nameof(DatabaseSettings))); - + IServiceCollection c = services.Configure<DatabaseSettings>(Configuration.GetSection(nameof(DatabaseSettings))); + // // MongoDB // @@ -104,7 +104,7 @@ namespace ETSI.ARF.OpenAPI.WorldStorage services.AddSingleton<TrackableService>(); services.AddSingleton<WorldAnchorService>(); services.AddSingleton<WorldLinkService>(); - + // Add framework services. services // Don't need the full MVC stack for an API, see https://andrewlock.net/comparing-startup-between-the-asp-net-core-3-templates/ @@ -160,6 +160,13 @@ namespace ETSI.ARF.OpenAPI.WorldStorage /// <param name="env"></param> public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { + // + // Initialize all ARF services + // + app.ApplicationServices.GetRequiredService<TrackableService>(); + app.ApplicationServices.GetRequiredService<WorldAnchorService>(); + app.ApplicationServices.GetRequiredService<WorldLinkService>(); + if (env.IsDevelopment()) { app.UseDeveloperExceptionPage();