diff --git a/src/Squidex/Areas/Api/Controllers/Apps/AppClientsController.cs b/src/Squidex/Areas/Api/Controllers/Apps/AppClientsController.cs
index af59c84ae..14c4ea1b6 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/AppClientsController.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/AppClientsController.cs
@@ -5,7 +5,6 @@
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
-using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Net.Http.Headers;
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/AppRolesController.cs b/src/Squidex/Areas/Api/Controllers/Apps/AppRolesController.cs
index e146c90b3..2cce25530 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/AppRolesController.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/AppRolesController.cs
@@ -47,7 +47,7 @@ namespace Squidex.Areas.Api.Controllers.Apps
[ApiCosts(0)]
public IActionResult GetRoles(string app)
{
- var response = RolesDto.FromApp(App);
+ var response = RolesDto.FromApp(App, this);
Response.Headers[HeaderNames.ETag] = App.Version.ToString();
@@ -82,20 +82,23 @@ namespace Squidex.Areas.Api.Controllers.Apps
/// The name of the app.
/// Role object that needs to be added to the app.
///
- /// 200 => User assigned to app.
+ /// 201 => User assigned to app.
/// 400 => Role name already in use.
/// 404 => App not found.
///
[HttpPost]
[Route("apps/{app}/roles/")]
+ [ProducesResponseType(typeof(RolesDto), 200)]
[ProducesResponseType(typeof(ErrorDto), 400)]
[ApiPermission(Permissions.AppRolesCreate)]
[ApiCosts(1)]
public async Task PostRole(string app, [FromBody] AddRoleDto request)
{
- await CommandBus.PublishAsync(request.ToCommand());
+ var command = request.ToCommand();
+
+ var response = await InvokeCommandAsync(command);
- return NoContent();
+ return CreatedAtAction(nameof(GetRoles), new { app }, response);
}
///
@@ -105,19 +108,22 @@ namespace Squidex.Areas.Api.Controllers.Apps
/// The name of the role to be updated.
/// Role to be updated for the app.
///
- /// 204 => Role updated.
+ /// 200 => Role updated.
/// 400 => Role request not valid.
/// 404 => Role or app not found.
///
[HttpPut]
[Route("apps/{app}/roles/{role}/")]
+ [ProducesResponseType(typeof(RolesDto), 200)]
[ApiPermission(Permissions.AppRolesUpdate)]
[ApiCosts(1)]
public async Task UpdateRole(string app, string role, [FromBody] UpdateRoleDto request)
{
- await CommandBus.PublishAsync(request.ToCommand(role));
+ var command = request.ToCommand(role);
+
+ var response = await InvokeCommandAsync(command);
- return NoContent();
+ return Ok(response);
}
///
@@ -126,20 +132,33 @@ namespace Squidex.Areas.Api.Controllers.Apps
/// The name of the app.
/// The name of the role.
///
- /// 204 => Role deleted.
+ /// 200 => Role deleted.
/// 400 => Role is in use by contributor or client or default role.
/// 404 => Role or app not found.
///
[HttpDelete]
[Route("apps/{app}/roles/{role}/")]
+ [ProducesResponseType(typeof(RolesDto), 200)]
[ProducesResponseType(typeof(ErrorDto), 400)]
[ApiPermission(Permissions.AppRolesDelete)]
[ApiCosts(1)]
public async Task DeleteRole(string app, string role)
{
- await CommandBus.PublishAsync(new DeleteRole { Name = role });
+ var command = new DeleteRole { Name = role };
+
+ var response = await InvokeCommandAsync(command);
+
+ return Ok(response);
+ }
+
+ private async Task InvokeCommandAsync(ICommand command)
+ {
+ var context = await CommandBus.PublishAsync(command);
+
+ var result = context.Result();
+ var response = RolesDto.FromApp(result, this);
- return NoContent();
+ return response;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/AppsController.cs b/src/Squidex/Areas/Api/Controllers/Apps/AppsController.cs
index 0cf66505f..688893497 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/AppsController.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/AppsController.cs
@@ -5,7 +5,6 @@
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
-using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Net.Http.Headers;
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/AppDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/AppDto.cs
index 13b726623..ad7a0d072 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/AppDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/AppDto.cs
@@ -98,7 +98,7 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
result.PlanUpgrade = plans.GetPlanUpgradeForApp(app)?.Name;
}
- return CreateLinks(result, controller, permissions);
+ return result.CreateLinks(controller, permissions);
}
private static PermissionSet GetPermissions(IAppEntity app, string userId, PermissionSet userPermissions)
@@ -118,73 +118,73 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
return new PermissionSet(permissions);
}
- private static AppDto CreateLinks(AppDto result, ApiController controller, PermissionSet permissions)
+ private AppDto CreateLinks(ApiController controller, PermissionSet permissions)
{
- var values = new { app = result.Name };
+ var values = new { app = Name };
- result.AddGetLink("ping", controller.Url(x => nameof(x.GetAppPing), values));
+ AddGetLink("ping", controller.Url(x => nameof(x.GetAppPing), values));
- if (controller.HasPermission(AllPermissions.AppDelete, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppDelete, Name, permissions: permissions))
{
- result.AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteApp), values));
+ AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteApp), values));
}
- if (controller.HasPermission(AllPermissions.AppAssetsRead, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppAssetsRead, Name, permissions: permissions))
{
- result.AddGetLink("assets", controller.Url(x => nameof(x.GetAssets), values));
+ AddGetLink("assets", controller.Url(x => nameof(x.GetAssets), values));
}
- if (controller.HasPermission(AllPermissions.AppBackupsRead, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppBackupsRead, Name, permissions: permissions))
{
- result.AddGetLink("backups", controller.Url(x => nameof(x.GetBackups), values));
+ AddGetLink("backups", controller.Url(x => nameof(x.GetBackups), values));
}
- if (controller.HasPermission(AllPermissions.AppClientsRead, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppClientsRead, Name, permissions: permissions))
{
- result.AddGetLink("clients", controller.Url(x => nameof(x.GetClients), values));
+ AddGetLink("clients", controller.Url(x => nameof(x.GetClients), values));
}
- if (controller.HasPermission(AllPermissions.AppContributorsRead, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppContributorsRead, Name, permissions: permissions))
{
- result.AddGetLink("contributors", controller.Url(x => nameof(x.GetContributors), values));
+ AddGetLink("contributors", controller.Url(x => nameof(x.GetContributors), values));
}
- if (controller.HasPermission(AllPermissions.AppCommon, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppCommon, Name, permissions: permissions))
{
- result.AddGetLink("languages", controller.Url(x => nameof(x.GetLanguages), values));
+ AddGetLink("languages", controller.Url(x => nameof(x.GetLanguages), values));
}
- if (controller.HasPermission(AllPermissions.AppCommon, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppCommon, Name, permissions: permissions))
{
- result.AddGetLink("patterns", controller.Url(x => nameof(x.GetPatterns), values));
+ AddGetLink("patterns", controller.Url(x => nameof(x.GetPatterns), values));
}
- if (controller.HasPermission(AllPermissions.AppPlansRead, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppPlansRead, Name, permissions: permissions))
{
- result.AddGetLink("plans", controller.Url(x => nameof(x.GetPlans), values));
+ AddGetLink("plans", controller.Url(x => nameof(x.GetPlans), values));
}
- if (controller.HasPermission(AllPermissions.AppRolesRead, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppRolesRead, Name, permissions: permissions))
{
- result.AddGetLink("roles", controller.Url(x => nameof(x.GetRoles), values));
+ AddGetLink("roles", controller.Url(x => nameof(x.GetRoles), values));
}
- if (controller.HasPermission(AllPermissions.AppRulesRead, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppRulesRead, Name, permissions: permissions))
{
- result.AddGetLink("rules", controller.Url(x => nameof(x.GetRules), values));
+ AddGetLink("rules", controller.Url(x => nameof(x.GetRules), values));
}
- if (controller.HasPermission(AllPermissions.AppCommon, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppCommon, Name, permissions: permissions))
{
- result.AddGetLink("schemas", controller.Url(x => nameof(x.GetSchemas), values));
+ AddGetLink("schemas", controller.Url(x => nameof(x.GetSchemas), values));
}
- if (controller.HasPermission(AllPermissions.AppSchemasCreate, result.Name, permissions: permissions))
+ if (controller.HasPermission(AllPermissions.AppSchemasCreate, Name, permissions: permissions))
{
- result.AddPostLink("schemas/create", controller.Url(x => nameof(x.PostSchema), values));
+ AddPostLink("schemas/create", controller.Url(x => nameof(x.PostSchema), values));
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/AppLanguageDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/AppLanguageDto.cs
index 4ac3d8ad7..85f6ef7ce 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/AppLanguageDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/AppLanguageDto.cs
@@ -56,27 +56,27 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
Fallback = language.LanguageFallbacks.ToArray()
});
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static AppLanguageDto CreateLinks(AppLanguageDto result, ApiController controller, IAppEntity app)
+ private AppLanguageDto CreateLinks(ApiController controller, IAppEntity app)
{
- var values = new { app = app.Name, language = result.Iso2Code };
+ var values = new { app = app.Name, language = Iso2Code };
- if (!result.IsMaster)
+ if (!IsMaster)
{
if (controller.HasPermission(Permissions.AppLanguagesUpdate, app.Name))
{
- result.AddPutLink("update", controller.Url(x => nameof(x.PutLanguage), values));
+ AddPutLink("update", controller.Url(x => nameof(x.PutLanguage), values));
}
if (controller.HasPermission(Permissions.AppLanguagesDelete, app.Name) && app.LanguagesConfig.Count > 1)
{
- result.AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteLanguage), values));
+ AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteLanguage), values));
}
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/AppLanguagesDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/AppLanguagesDto.cs
index 250408598..77580f5e9 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/AppLanguagesDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/AppLanguagesDto.cs
@@ -5,7 +5,6 @@
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
-using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Squidex.Domain.Apps.Core.Apps;
@@ -34,21 +33,21 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
.ToArray()
};
- return CreateLinks(result, controller, app.Name);
+ return result.CreateLinks(controller, app.Name);
}
- private static AppLanguagesDto CreateLinks(AppLanguagesDto result, ApiController controller, string app)
+ private AppLanguagesDto CreateLinks(ApiController controller, string app)
{
var values = new { app };
- result.AddSelfLink(controller.Url(x => nameof(x.GetLanguages), values));
+ AddSelfLink(controller.Url(x => nameof(x.GetLanguages), values));
if (controller.HasPermission(Permissions.AppLanguagesCreate, app))
{
- result.AddPostLink("create", controller.Url(x => nameof(x.PostLanguage), values));
+ AddPostLink("create", controller.Url(x => nameof(x.PostLanguage), values));
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/ClientDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/ClientDto.cs
index 70c4e3649..df66388b1 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/ClientDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/ClientDto.cs
@@ -41,12 +41,12 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
{
var result = SimpleMapper.Map(client, new ClientDto { Id = id });
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static ClientDto CreateLinks(ClientDto result, ApiController controller, string app)
+ private ClientDto CreateLinks(ApiController controller, string app)
{
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/ClientsDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/ClientsDto.cs
index cf92b47ac..33d470e75 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/ClientsDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/ClientsDto.cs
@@ -27,12 +27,12 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
Items = app.Clients.Select(x => ClientDto.FromClient(x.Key, x.Value, controller, app.Name)).ToArray()
};
- return CreateLinks(result, controller, app.Name);
+ return result.CreateLinks(controller, app.Name);
}
- private static ClientsDto CreateLinks(ClientsDto result, ApiController controller, string app)
+ private ClientsDto CreateLinks(ApiController controller, string app)
{
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/ContributorDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/ContributorDto.cs
index bdd9e8947..4929ed76b 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/ContributorDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/ContributorDto.cs
@@ -5,7 +5,6 @@
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
-using System;
using System.ComponentModel.DataAnnotations;
using Squidex.Shared;
using Squidex.Web;
@@ -29,25 +28,25 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
{
var result = new ContributorDto { ContributorId = id, Role = role };
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static ContributorDto CreateLinks(ContributorDto result, ApiController controller, string app)
+ private ContributorDto CreateLinks(ApiController controller, string app)
{
- if (!controller.IsUser(result.ContributorId))
+ if (!controller.IsUser(ContributorId))
{
if (controller.HasPermission(Permissions.AppContributorsAssign, app))
{
- result.AddPostLink("update", controller.Url(x => nameof(x.PostContributor), new { app }));
+ AddPostLink("update", controller.Url(x => nameof(x.PostContributor), new { app }));
}
if (controller.HasPermission(Permissions.AppContributorsRevoke, app))
{
- result.AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteContributor), new { app, id = result.ContributorId }));
+ AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteContributor), new { app, id = ContributorId }));
}
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/ContributorsDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/ContributorsDto.cs
index 310efbea9..5f7c330fe 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/ContributorsDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/ContributorsDto.cs
@@ -53,21 +53,21 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
result.MaxContributors = plans.GetPlanForApp(app).MaxContributors;
- return CreateLinks(result, controller, app.Name);
+ return result.CreateLinks(controller, app.Name);
}
- private static ContributorsDto CreateLinks(ContributorsDto result, ApiController controller, string app)
+ private ContributorsDto CreateLinks(ApiController controller, string app)
{
var values = new { app };
- result.AddSelfLink(controller.Url(x => nameof(x.GetContributors), values));
+ AddSelfLink(controller.Url(x => nameof(x.GetContributors), values));
if (controller.HasPermission(Permissions.AppContributorsAssign, app))
{
- result.AddPostLink("create", controller.Url(x => nameof(x.PostContributor), values));
+ AddPostLink("create", controller.Url(x => nameof(x.PostContributor), values));
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/RoleDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/RoleDto.cs
index 2c833707b..856e47ec7 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/RoleDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/RoleDto.cs
@@ -11,6 +11,7 @@ using System.ComponentModel.DataAnnotations;
using System.Linq;
using Squidex.Domain.Apps.Core.Apps;
using Squidex.Domain.Apps.Entities.Apps;
+using Squidex.Web;
namespace Squidex.Areas.Api.Controllers.Apps.Models
{
@@ -38,17 +39,24 @@ namespace Squidex.Areas.Api.Controllers.Apps.Models
[Required]
public IEnumerable Permissions { get; set; }
- public static RoleDto FromRole(Role role, IAppEntity app)
+ public static RoleDto FromRole(Role role, IAppEntity app, ApiController controller)
{
var permissions = role.Permissions.WithoutApp(app.Name);
- return new RoleDto
+ var result = new RoleDto
{
Name = role.Name,
NumClients = app.Clients.Count(x => string.Equals(x.Value.Role, role.Name, StringComparison.OrdinalIgnoreCase)),
NumContributors = app.Contributors.Count(x => string.Equals(x.Value, role.Name, StringComparison.OrdinalIgnoreCase)),
Permissions = permissions.ToIds()
};
+
+ return result.CreateLinks(controller, app.Name);
+ }
+
+ private RoleDto CreateLinks(ApiController controller, string name)
+ {
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Apps/Models/RolesDto.cs b/src/Squidex/Areas/Api/Controllers/Apps/Models/RolesDto.cs
index 64390c625..1e1b6b268 100644
--- a/src/Squidex/Areas/Api/Controllers/Apps/Models/RolesDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Apps/Models/RolesDto.cs
@@ -8,22 +8,31 @@
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Squidex.Domain.Apps.Entities.Apps;
+using Squidex.Web;
namespace Squidex.Areas.Api.Controllers.Apps.Models
{
- public sealed class RolesDto
+ public sealed class RolesDto : Resource
{
///
- /// The app roles.
+ /// The roles.
///
[Required]
- public RoleDto[] Roles { get; set; }
+ public RoleDto[] Items { get; set; }
- public static RolesDto FromApp(IAppEntity app)
+ public static RolesDto FromApp(IAppEntity app, ApiController controller)
{
- var roles = app.Roles.Values.Select(x => RoleDto.FromRole(x, app)).ToArray();
+ var result = new RolesDto
+ {
+ Items = app.Roles.Values.Select(x => RoleDto.FromRole(x, app, controller)).ToArray()
+ };
- return new RolesDto { Roles = roles };
+ return result.CreateLinks(controller, app.Name);
+ }
+
+ private RolesDto CreateLinks(ApiController controller, string app)
+ {
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobDto.cs b/src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobDto.cs
index 8cc2fd455..8f39a7140 100644
--- a/src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobDto.cs
@@ -50,19 +50,19 @@ namespace Squidex.Areas.Api.Controllers.Backups.Models
{
var result = SimpleMapper.Map(backup, new BackupJobDto());
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static BackupJobDto CreateLinks(BackupJobDto result, ApiController controller, string app)
+ private BackupJobDto CreateLinks(ApiController controller, string app)
{
- var values = new { app, id = result.Id };
+ var values = new { app, id = Id };
if (controller.HasPermission(Permissions.AppBackupsDelete, app))
{
- result.AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteBackup), values));
+ AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteBackup), values));
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobsDto.cs b/src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobsDto.cs
index 33c88bc25..d533a5030 100644
--- a/src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobsDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobsDto.cs
@@ -29,21 +29,21 @@ namespace Squidex.Areas.Api.Controllers.Backups.Models
Items = backups.Select(x => BackupJobDto.FromBackup(x, controller, app)).ToArray()
};
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static BackupJobsDto CreateLinks(BackupJobsDto result, ApiController controller, string app)
+ private BackupJobsDto CreateLinks(ApiController controller, string app)
{
var values = new { app };
- result.AddSelfLink(controller.Url(x => nameof(x.GetBackups), values));
+ AddSelfLink(controller.Url(x => nameof(x.GetBackups), values));
if (controller.HasPermission(Permissions.AppBackupsCreate, app))
{
- result.AddPostLink("create", controller.Url(x => nameof(x.PostBackup), values));
+ AddPostLink("create", controller.Url(x => nameof(x.PostBackup), values));
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/EventConsumers/Models/EventConsumerDto.cs b/src/Squidex/Areas/Api/Controllers/EventConsumers/Models/EventConsumerDto.cs
index df0846cbf..86ce40203 100644
--- a/src/Squidex/Areas/Api/Controllers/EventConsumers/Models/EventConsumerDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/EventConsumers/Models/EventConsumerDto.cs
@@ -31,31 +31,31 @@ namespace Squidex.Areas.Api.Controllers.EventConsumers.Models
{
var result = SimpleMapper.Map(eventConsumerInfo, new EventConsumerDto());
- return CreateLinks(result, controller);
+ return result.CreateLinks(controller);
}
- private static EventConsumerDto CreateLinks(EventConsumerDto result, ApiController controller)
+ private EventConsumerDto CreateLinks(ApiController controller)
{
if (controller.HasPermission(EventsManagePermission))
{
- var values = new { name = result.Name };
+ var values = new { name = Name };
- if (!result.IsResetting)
+ if (!IsResetting)
{
- result.AddPutLink("reset", controller.Url(x => nameof(x.ResetEventConsumer), values));
+ AddPutLink("reset", controller.Url(x => nameof(x.ResetEventConsumer), values));
}
- if (result.IsStopped)
+ if (IsStopped)
{
- result.AddPutLink("start", controller.Url(x => nameof(x.StartEventConsumer), values));
+ AddPutLink("start", controller.Url(x => nameof(x.StartEventConsumer), values));
}
else
{
- result.AddPutLink("stop", controller.Url(x => nameof(x.StopEventConsumer), values));
+ AddPutLink("stop", controller.Url(x => nameof(x.StopEventConsumer), values));
}
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/EventConsumers/Models/EventConsumersDto.cs b/src/Squidex/Areas/Api/Controllers/EventConsumers/Models/EventConsumersDto.cs
index 8f9a20766..65f11e289 100644
--- a/src/Squidex/Areas/Api/Controllers/EventConsumers/Models/EventConsumersDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/EventConsumers/Models/EventConsumersDto.cs
@@ -26,14 +26,14 @@ namespace Squidex.Areas.Api.Controllers.EventConsumers.Models
Items = items.Select(x => EventConsumerDto.FromEventConsumerInfo(x, controller)).ToArray()
};
- return CreateLinks(result, controller);
+ return result.CreateLinks(controller);
}
- private static EventConsumersDto CreateLinks(EventConsumersDto result, ApiController controller)
+ private EventConsumersDto CreateLinks(ApiController controller)
{
- result.AddSelfLink(controller.Url(c => nameof(c.GetEventConsumers)));
+ AddSelfLink(controller.Url(c => nameof(c.GetEventConsumers)));
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleDto.cs b/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleDto.cs
index f0894b1ae..2b8da5114 100644
--- a/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleDto.cs
@@ -83,36 +83,36 @@ namespace Squidex.Areas.Api.Controllers.Rules.Models
result.Trigger = RuleTriggerDtoFactory.Create(rule.RuleDef.Trigger);
}
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static RuleDto CreateLinks(RuleDto result, ApiController controller, string app)
+ private RuleDto CreateLinks(ApiController controller, string app)
{
- var values = new { app, id = result.Id };
+ var values = new { app, id = Id };
if (controller.HasPermission(Permissions.AppRulesDisable, app))
{
- if (result.IsEnabled)
+ if (IsEnabled)
{
- result.AddPutLink("disable", controller.Url(x => nameof(x.DisableRule), values));
+ AddPutLink("disable", controller.Url(x => nameof(x.DisableRule), values));
}
else
{
- result.AddPutLink("enable", controller.Url(x => nameof(x.EnableRule), values));
+ AddPutLink("enable", controller.Url(x => nameof(x.EnableRule), values));
}
}
if (controller.HasPermission(Permissions.AppRulesUpdate))
{
- result.AddPutLink("update", controller.Url(x => nameof(x.PutRule), values));
+ AddPutLink("update", controller.Url(x => nameof(x.PutRule), values));
}
if (controller.HasPermission(Permissions.AppRulesDelete))
{
- result.AddPutLink("delete", controller.Url(x => nameof(x.DeleteRule), values));
+ AddPutLink("delete", controller.Url(x => nameof(x.DeleteRule), values));
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleEventDto.cs b/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleEventDto.cs
index 498ffd560..201e3dadd 100644
--- a/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleEventDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleEventDto.cs
@@ -71,18 +71,18 @@ namespace Squidex.Areas.Api.Controllers.Rules.Models
SimpleMapper.Map(ruleEvent, result);
SimpleMapper.Map(ruleEvent.Job, result);
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static RuleEventDto CreateLinks(RuleEventDto result, ApiController controller, string app)
+ private RuleEventDto CreateLinks(ApiController controller, string app)
{
- var values = new { app, id = result.Id };
+ var values = new { app, id = Id };
- result.AddPutLink("update", controller.Url(x => nameof(x.PutEvent), values));
+ AddPutLink("update", controller.Url(x => nameof(x.PutEvent), values));
- result.AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteEvent), values));
+ AddDeleteLink("delete", controller.Url(x => nameof(x.DeleteEvent), values));
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleEventsDto.cs b/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleEventsDto.cs
index 83b6d4c6b..d0f382f98 100644
--- a/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleEventsDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Rules/Models/RuleEventsDto.cs
@@ -34,14 +34,14 @@ namespace Squidex.Areas.Api.Controllers.Rules.Models
Items = items.Select(x => RuleEventDto.FromRuleEvent(x, controller, app)).ToArray()
};
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static RuleEventsDto CreateLinks(RuleEventsDto result, ApiController controller, string app)
+ private RuleEventsDto CreateLinks(ApiController controller, string app)
{
- result.AddSelfLink(controller.Url(x => nameof(x.GetEvents), new { app }));
+ AddSelfLink(controller.Url(x => nameof(x.GetEvents), new { app }));
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Rules/Models/RulesDto.cs b/src/Squidex/Areas/Api/Controllers/Rules/Models/RulesDto.cs
index bf4eea27b..c13c163fb 100644
--- a/src/Squidex/Areas/Api/Controllers/Rules/Models/RulesDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Rules/Models/RulesDto.cs
@@ -34,26 +34,26 @@ namespace Squidex.Areas.Api.Controllers.Rules.Models
Items = items.Select(x => RuleDto.FromRule(x, controller, app)).ToArray()
};
- return CreateLinks(result, controller, app);
+ return result.CreateLinks(controller, app);
}
- private static RulesDto CreateLinks(RulesDto result, ApiController controller, string app)
+ private RulesDto CreateLinks(ApiController controller, string app)
{
var values = new { app };
- result.AddSelfLink(controller.Url(x => nameof(x.GetRules), values));
+ AddSelfLink(controller.Url(x => nameof(x.GetRules), values));
if (controller.HasPermission(Permissions.AppRulesCreate, app))
{
- result.AddPostLink("create", controller.Url(x => nameof(x.PostRule), values));
+ AddPostLink("create", controller.Url(x => nameof(x.PostRule), values));
}
if (controller.HasPermission(Permissions.AppRulesEvents, app))
{
- result.AddGetLink("events", controller.Url(x => nameof(x.GetEvents), values));
+ AddGetLink("events", controller.Url(x => nameof(x.GetEvents), values));
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Users/Models/UserDto.cs b/src/Squidex/Areas/Api/Controllers/Users/Models/UserDto.cs
index 2481f73c8..bdc37fa82 100644
--- a/src/Squidex/Areas/Api/Controllers/Users/Models/UserDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Users/Models/UserDto.cs
@@ -57,43 +57,43 @@ namespace Squidex.Areas.Api.Controllers.Users.Models
var result = SimpleMapper.Map(user, new UserDto { DisplayName = userName, Permissions = userPermssions });
- return CreateLinks(result, controller);
+ return result.CreateLinks(controller);
}
- private static UserDto CreateLinks(UserDto result, ApiController controller)
+ private UserDto CreateLinks(ApiController controller)
{
- var values = new { id = result.Id };
+ var values = new { id = Id };
if (controller is UserManagementController)
{
- result.AddSelfLink(controller.Url(c => nameof(c.GetUser), values));
+ AddSelfLink(controller.Url(c => nameof(c.GetUser), values));
}
else
{
- result.AddSelfLink(controller.Url(c => nameof(c.GetUser), values));
+ AddSelfLink(controller.Url(c => nameof(c.GetUser), values));
}
- if (!controller.IsUser(result.Id))
+ if (!controller.IsUser(Id))
{
- if (controller.HasPermission(LockPermission) && !result.IsLocked)
+ if (controller.HasPermission(LockPermission) && !IsLocked)
{
- result.AddPutLink("lock", controller.Url(c => nameof(c.LockUser), values));
+ AddPutLink("lock", controller.Url(c => nameof(c.LockUser), values));
}
- if (controller.HasPermission(UnlockPermission) && result.IsLocked)
+ if (controller.HasPermission(UnlockPermission) && IsLocked)
{
- result.AddPutLink("unlock", controller.Url(c => nameof(c.UnlockUser), values));
+ AddPutLink("unlock", controller.Url(c => nameof(c.UnlockUser), values));
}
}
if (controller.HasPermission(UpdatePermission))
{
- result.AddPutLink("update", controller.Url(c => nameof(c.PutUser), values));
+ AddPutLink("update", controller.Url(c => nameof(c.PutUser), values));
}
- result.AddGetLink("picture", controller.Url(c => nameof(c.GetUserPicture), values));
+ AddGetLink("picture", controller.Url(c => nameof(c.GetUserPicture), values));
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/Areas/Api/Controllers/Users/Models/UsersDto.cs b/src/Squidex/Areas/Api/Controllers/Users/Models/UsersDto.cs
index e866c8af4..662dc7f0b 100644
--- a/src/Squidex/Areas/Api/Controllers/Users/Models/UsersDto.cs
+++ b/src/Squidex/Areas/Api/Controllers/Users/Models/UsersDto.cs
@@ -36,19 +36,19 @@ namespace Squidex.Areas.Api.Controllers.Users.Models
Items = items.Select(x => UserDto.FromUser(x, controller)).ToArray()
};
- return CreateLinks(result, controller);
+ return result.CreateLinks(controller);
}
- private static UsersDto CreateLinks(UsersDto result, ApiController controller)
+ private UsersDto CreateLinks(ApiController controller)
{
- result.AddSelfLink(controller.Url(c => nameof(c.GetUsers)));
+ AddSelfLink(controller.Url(c => nameof(c.GetUsers)));
if (controller.HasPermission(CreatePermissions))
{
- result.AddPostLink("create", controller.Url(c => nameof(c.PostUser)));
+ AddPostLink("create", controller.Url(c => nameof(c.PostUser)));
}
- return result;
+ return this;
}
}
}
diff --git a/src/Squidex/app/features/administration/services/users.service.ts b/src/Squidex/app/features/administration/services/users.service.ts
index a1eb3e9c8..b0165b9de 100644
--- a/src/Squidex/app/features/administration/services/users.service.ts
+++ b/src/Squidex/app/features/administration/services/users.service.ts
@@ -73,7 +73,7 @@ export class UsersService {
public getUser(id: string): Observable {
const url = this.apiUrl.buildUrl(`api/user-management/${id}`);
- return this.http.get(url).pipe(
+ return this.http.get(url).pipe(
map(body => {
return parseUser(body);
}),
@@ -83,7 +83,7 @@ export class UsersService {
public postUser(dto: CreateUserDto): Observable {
const url = this.apiUrl.buildUrl('api/user-management');
- return this.http.post(url, dto).pipe(
+ return this.http.post(url, dto).pipe(
map(body => {
return parseUser(body);
}),
diff --git a/src/Squidex/app/features/settings/pages/clients/client.component.html b/src/Squidex/app/features/settings/pages/clients/client.component.html
index 7fc58d7ad..845ee316d 100644
--- a/src/Squidex/app/features/settings/pages/clients/client.component.html
+++ b/src/Squidex/app/features/settings/pages/clients/client.component.html
@@ -21,7 +21,7 @@
{{client.name}}
-
+
@@ -29,6 +29,7 @@