Commit 777b58a9 authored by Sylvain Renault's avatar Sylvain Renault
Browse files

Services are intitalized on server startup.

Creating an object with a given UUID now get an 409 error if the id is already existing in the database.
parent d22f891c
Loading
Loading
Loading
Loading

openapi @ 84f81636

Original line number Diff line number Diff line
Subproject commit 57adeb471026ccc88074889aefbe68ef692cb0ca
Subproject commit 84f816367c469b590cb2db47a4bb1b06b56729f9
+7 −3
Original line number Diff line number Diff line
@@ -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)
+7 −3
Original line number Diff line number Diff line
@@ -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)
+21 −17
Original line number Diff line number Diff line
@@ -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;
                    }
                }
+10 −3
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ 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
@@ -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();