Commit Graph

24 Commits

Author SHA1 Message Date
kjac
54e76b74c4 Handle unpublished, non-variant content 2023-02-02 09:29:36 +01:00
kjac
d04c50b988 Basic structure for document and document type read API 2023-02-01 15:35:38 +01:00
Kenn Jacobsen
ac8cfcf634 Align template API with dictionary API (#13714)
* Align the template services and API with the dictionary ones (use attempt pattern)

* A little controller clean-up

* Mimic old file service behavior, make unit tests happy

* Align CreateForContentTypeAsync return value with the rest of the TemplateService API

* Scaffold endpoint should no longer feature master templates

* Update the OpenAPI JSON
2023-01-31 12:20:46 +01:00
Kenn Jacobsen
0297152249 Split localization service into dedicated services (#13731)
* Rework language service and API

* Revert unintended commit of Directory.Build.props

* Create OS conditional test for invalid ISO codes

* Reintroduce and obsolete old Delete method on ILocalizationService + make new Delete method delete by ISO code + add obsoletion attrs to service implementation

* Review comments + utilize new Delete method

* Do not allow model reuse when creating a new language

* Fix bad merge

* Split localization service into dedicated services for language and dictionary item handling

* Replaced ILocalizationService usage in management API (as much as can be done for now)

* Ensure we can create dictionary items with explicit keys (but no duplicates)

* Fix culture controller so it works properly with pagination

* Update OpenAPI JSON

* Actually update the language being updated...

* Unit test for invalid ISO now no longer needs to differ between OS :)

* A little bit of code health improvements

* A litte less code duplication

* Remove duplicate validation
2023-01-26 13:34:11 +01:00
Elitsa Marinovska
aa90efa5b7 New Backoffice: Log viewer controller (#13648)
* Fixing a few nullable reference types for log viewer (#13634)

(cherry picked from commit b4ca2a6636)

* Adding LogControllerBase

* Migrating GetLogLevels()

* Migrating GetNumberOfErrors()

* Migrating GetLogLevelCounts()

* Migrating GetCanViewLogs()

* Migrating GetMessageTemplates()

* Migrating GetLogs()

* Migrating GetSavedSearches()

* Migrating PostSavedSearch()

* Migrating DeleteSavedSearch()

* Adding LoggerViewModel

* Adding LogViewModelMapDefinition

* Update OpenApi.json

* Cleanup

* V12: Change nullability for the log searches (#13647)

* Changing nullability

* Obsolete DeleteSavedSearch since the query param is not used

* Fix a bit more referenced

* Add default implementation for the new overload of DeleteSavedSearch

(cherry picked from commit 5e06f5a8a0)

* Updates based on nullability fix

* Adding GetSavedSearchByName

* Implementing ByName endpoint

* Refactoring Delete endpoint based on GetSavedSearchByName

* Refactoring Create endpoint to return the item's location

* Suppress new GetSavedSearchByName in ILogViewer interfaces

* Update OpenApi.json

* Adding github initials to FIXME

* Renaming

* Moving files to Core proj

* Adding GetLogs with skip and take

* Introducing ILogViewerService

* Supressing xml for ILogViewer.GetLogsAsPagedModel()

* Changing to our own Enum representation of LogLevel

* Creating ILogEntry needed for GetPagedLogs()

* Refactoring controllers to use the new logViewerService

* Removing base class methods since those have been moved to the new service

* Removing ErrorCountLogViewerController since the result can be calculated from another endpoint

* Refactoring the MapDefinition because of the new return types from the service

* Update OpenApi.json

* Obsoleting old methods in favor of the ILogViewerService

* Cleanup

* Fixing enum representation as strings for Swagger

* Adding documentation

* Changing enum representation to string in OpenApi.OpenApi.json

* Fix FIXME (use CreatedAtAction)

* Removing JsonStringEnumConverter as there should be another way to fix enum representation for Swagger

* Removing MappingBuilderExtensions and making specific LogViewerBuilderExtensions

* Changes to the .sln file

* Take only the result in the response

* Register the LogViewer extensions

* Update OpenApi.json

* Fix the supressions.xml

* Add inheritdoc

* Remove GetSavedSearchByName as it isn't necessary to introduce it anymore

* Obsolete interfaces

* Rename ViewPermission controller to ValidateLogFileSize

* Make rest of the methods async

* Route name change

* Remove methods obsoletion

* Introduce the "attempt" pattern

* Refactoring of ILogViewerService

* Refactoring controllers

* Another OpenApi.json update

* Adding fixme

* Re-add new client project

Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
2023-01-25 11:53:42 +01:00
Kenn Jacobsen
ff2d90d775 Rework dictionary CRUD operations (#13688)
* Rework dictionary CRUD operations

* Update OpenAPI json

* Move responsibility to localization service, introduce new attempt pattern for create and update operations, update unit tests accordingly

* Fix merge

* Rollback assumption that we can map entities from scratch (entity relations got in the way)

* Update OpenAPI JSON

* Add breakage supressions

* Add compat suppressions for integration test project

* Make dictionary item deletion follow same pattern as create and update

* Review comments + update delete to use new pattern

* Update breakage suppressions to match the new Delete method
2023-01-20 13:40:24 +01:00
Kenn Jacobsen
4640a317b8 Support non-nullable reference types in OpenAPI doc (#13685)
* Refactored ManagementApiComposer into several extension classes

* ADd support for non-nullable reference types in OpenAPI doc

* Update OpenAPI JSON to reflect new (lack of) nullability

* Don't add factories twice :)

* Rework composing + move backoffice route detection for management API to core
2023-01-18 13:11:42 +01:00
Kenn Jacobsen
de8e307295 Add "is trashed" data for content and media tree controllers (#13687) 2023-01-17 14:04:22 +01:00
Kenn Jacobsen
25f66e7413 Turn the indexer health status into an enum + rearrange the view models according to controller namespaces (#13686) 2023-01-17 14:04:13 +01:00
Kenn Jacobsen
01224fce89 Template API for new backoffice (#13642)
* Template query builder API

* Create a dedicated template service (copy template operations from file service)

* CRUD API for templates

* Make file service consume the template service (remove duplicated code)

* Use the template service in the old template controller so we can track changes better (note: this is breaking, but it doesn't matter as the controller will be deleted)

* Add scaffolding to the template API

* Make the route differ between query settings and execution

* Get rid of ugly string constants

* Refactor query execution a little to improve code health

* Fix build checks (compat)

* Deduce the master template from the template contents

* Make template service async, move master template parsing into template service

* Fix open API test

* Make sure the unit tests use new template parsing

* Add FIXME for SetMasterTemplate

* added obsolete attributes

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-01-11 14:40:41 +01:00
Bjarke Berg
08c1708730 Merge remote-tracking branch 'origin/v12/dev' into v13/dev
# Conflicts:
#	src/Umbraco.Cms.Api.Management/Controllers/ManagementApiControllerBase.cs
2023-01-06 10:30:58 +01:00
Bjarke Berg
84d78e1393 Merge 2023-01-06 10:14:59 +01:00
Kenn Jacobsen
c44fa56661 New backoffice: Data type API (#13633)
* Add PropertyEditorUiAlias to datatype incl. migration for persistence

* Add configuration validation

* Folder CRUD (reusable for other folder trees) + datatype delete + more RESTish response from datatype create and update

* API for datatype references

* Clean up response types, swagger metadata and fix OpenAPI test

* Allow breakage in the build

* Use yield return pattern

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Fix incorrect return type from references API

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2023-01-06 08:45:06 +01:00
Kenn Jacobsen
d1fd1f16fd Move resources and implementations for System.Text.Json for reuse across projects (#13626)
* Moved resources and implementations for System.Text.Json for reuse across projects.

* Move MvcBuilderExtensions as well
2023-01-03 15:34:23 +01:00
Kenn Jacobsen
a8f070d834 Datatype configuration refactor (#13605)
* Moved refactor from V12 based branch

* Remove obsolete config property to avoid obsoletion warnings

* Clean up test models

* Make the datatype API a little less confusing by introducing explicit models for create and update

* Remame "Configuration" to "Data" to make FE happy :)

* Safeguard deserialization of empty configs

* Less strict number handling for deserialization

* Prepare for data type config migrations

* Attempt to have contextual config serializers

* Update OpenAPI spec with (temporary) data type controller

* Fix unit tests

* Update compat suppressions (allow breakage for datatype and configuration editor)

* Make the duplicate JsonObjectConverter implementation private
2022-12-21 14:29:59 +01:00
Elitsa Marinovska
fef793326f New Backoffice: Health check controller (#13543)
* Adding health check controllers - getAll & getGroupByName

* Adding HealthCheckGroup mapper

* Adding viewModels

* Adding a factory for building a health check group with result view model

* Registering the mapper and factory

* Updating OpenApi.json

* Remove unnecessary checks - we instantiate the target before calling the Map()

* Adding ProducesResponseType for GetAll()

* Fixing usings

* Making checks required for a health check group

* Adding OK() around result to be explicit

* Adding default values to skip and take

* Adding Umbraco.Code comments

* Removing ? from HealthCheckGroupWithResultViewModel return type

* Move the grouping creation to the factory

* Adding Actions[] for each health check + mapping

* Defaulting ValueRequired to false

* Refactoring routes - from health-check to health-check-group

* Move to HealthCheckGroup folder

* Fix OpenApi.json

* Changing class name and making Key of HealthCheckActionViewModel non-nullable

* Fixing namespace

* Migrating ExecuteAction endpoint

* Add execute-action endpoint to OpenApi.json

* Use Task.FromResult() around the action result

* Fixing namespaces and swagger group name

* Fixing naming of the key in the health check action

* Fix tag names in OpenApi.json
2022-12-19 13:50:18 +01:00
Nikolaj
e86b90faff Merge branch 'v11/dev' into v12/dev 2022-12-15 14:03:22 +01:00
Mole
0b04ae76da New backoffice: Redirect Url Management controller (#13572)
* Add status endpoint

* Refactor GetStatus to use a factory for the viewmodel

* Move controllers to correct namespace

* Add response type to GetStatus

* Create query endpoint

* Create GetAll endpoint

* Add by key

* Add delete by key

* Rename enabled controller

* Add SetEnabled endpoint

* Update OpenApi.json

* Replace query endpoint with a optional filter parameter

* Use enum to enabled and disable url tracking

* Update OpenApi.json

* Add bad request response type to GetAll endpoint
2022-12-15 10:04:44 +01:00
Bjarke Berg
aec88e8418 Merge remote-tracking branch 'origin/v11/dev' into v12/dev 2022-12-14 09:11:30 +01:00
Kenn Jacobsen
e397ac9011 REST-ify dictionary and language controllers (#13531)
* Update signatures to always return ActionResult<> or IActionResult

* Make a few endpoints more RESTish

* Update OpenAPI json
2022-12-12 15:03:36 +01:00
Nikolaj Geisle
1fd4ed1de7 V12: Named json options (#13537)
* Introduce named JSON options for specific input/output JSON formatting

* Handle empty objects

* Remove obsolete attributes

* Update src/Umbraco.Cms.Api.Management/DependencyInjection/MvcBuilderExtensions.cs

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Add constant for Backoffice NamedJsonOptions

Co-authored-by: kjac <kja@umbraco.dk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-12-12 14:15:54 +01:00
Kenn Jacobsen
801966f1ae Created a common library for the APIs (#13530)
* Created a common library for the APIs and moved stuff that is required for the new content API. Also moved the versioned backoffice API route handling to the management API where it belongs.

* Remove test auth attribute from Media
2022-12-09 08:52:17 +01:00
Mole
73515560b7 New backoffice: Token storage (#13519)
* Enable reference tokens

* Enable token validation

* Add Data protection
2022-12-07 06:48:53 +01:00
Kenn Jacobsen
bc94b2e16c Rename management API from Umbraco.Cms.ManagementApi to Umbraco.Cms.Api.Management (#13512) 2022-12-02 11:33:02 +01:00