Browse Source

Download url in backup dto.

pull/382/head
Sebastian Stehle 7 years ago
parent
commit
73002fa38b
  1. 1
      src/Squidex.Web/ResourceLink.cs
  2. 2
      src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobDto.cs
  3. 2
      src/Squidex/Areas/Api/Controllers/Backups/Models/RestoreRequestDto.cs
  4. 2
      src/Squidex/Areas/Api/Controllers/Backups/RestoreController.cs
  5. 2
      src/Squidex/Areas/Api/Controllers/Rules/Models/RuleActionProcessor.cs
  6. 2
      src/Squidex/Areas/Api/Controllers/Schemas/SchemasController.cs
  7. 2
      src/Squidex/Areas/IdentityServer/Config/LazyClientStore.cs
  8. 2
      src/Squidex/app/features/settings/module.ts
  9. 2
      src/Squidex/app/features/settings/pages/backups/backups-page.component.html
  10. 2
      src/Squidex/app/features/settings/pages/backups/backups-page.component.ts
  11. 23
      src/Squidex/app/features/settings/pages/backups/pipes.ts
  12. 4
      src/Squidex/app/shared/services/backups.service.ts

1
src/Squidex.Web/ResourceLink.cs

@ -19,7 +19,6 @@ namespace Squidex.Web
[Display(Description = "The link method.")]
public string Method { get; set; }
[Required]
[Display(Description = "Additional data about the link.")]
public string Metadata { get; set; }
}

2
src/Squidex/Areas/Api/Controllers/Backups/Models/BackupJobDto.cs

@ -62,6 +62,8 @@ namespace Squidex.Areas.Api.Controllers.Backups.Models
AddDeleteLink("delete", controller.Url<BackupsController>(x => nameof(x.DeleteBackup), values));
}
AddGetLink("download", controller.Url<BackupContentController>(x => nameof(x.GetBackupContent), values));
return this;
}
}

2
src/Squidex/Areas/Api/Controllers/Backups/Models/RestoreRequest.cs → src/Squidex/Areas/Api/Controllers/Backups/Models/RestoreRequestDto.cs

@ -10,7 +10,7 @@ using System.ComponentModel.DataAnnotations;
namespace Squidex.Areas.Api.Controllers.Backups.Models
{
public sealed class RestoreRequest
public sealed class RestoreRequestDto
{
/// <summary>
/// The name of the app.

2
src/Squidex/Areas/Api/Controllers/Backups/RestoreController.cs

@ -68,7 +68,7 @@ namespace Squidex.Areas.Api.Controllers.Backups
[HttpPost]
[Route("apps/restore/")]
[ApiPermission(Permissions.AdminRestore)]
public async Task<IActionResult> PostRestore([FromBody] RestoreRequest request)
public async Task<IActionResult> PostRestore([FromBody] RestoreRequestDto request)
{
var restoreGrain = grainFactory.GetGrain<IRestoreGrain>(SingleGrain.Id);

2
src/Squidex/Areas/Api/Controllers/Rules/Models/RuleActionProcessor.cs

@ -55,7 +55,7 @@ namespace Squidex.Areas.Api.Controllers.Rules.Models
if (oldName != null)
{
context.Document.Definitions.Remove(oldName);
context.Document.Definitions.Add(action.Key, derivedSchema);
context.Document.Definitions.Add($"{action.Key}RuleActionDto", derivedSchema);
}
}

2
src/Squidex/Areas/Api/Controllers/Schemas/SchemasController.cs

@ -114,7 +114,7 @@ namespace Squidex.Areas.Api.Controllers.Schemas
/// </returns>
[HttpPost]
[Route("apps/{app}/schemas/")]
[ProducesResponseType(typeof(SchemaDetailsDto), 200)]
[ProducesResponseType(typeof(SchemaDetailsDto), 201)]
[ApiPermission(Permissions.AppSchemasCreate)]
[ApiCosts(1)]
public async Task<IActionResult> PostSchema(string app, [FromBody] CreateSchemaDto request)

2
src/Squidex/Areas/IdentityServer/Config/LazyClientStore.cs

@ -176,7 +176,7 @@ namespace Squidex.Areas.IdentityServer.Config
},
Claims = new List<Claim>
{
new Claim(SquidexClaimTypes.Permissions, Permissions.Admin)
new Claim(SquidexClaimTypes.Permissions, Permissions.All)
}
};
}

2
src/Squidex/app/features/settings/module.ts

@ -16,7 +16,6 @@ import {
} from '@app/shared';
import {
BackupDownloadUrlPipe,
BackupDurationPipe,
BackupsPageComponent,
ClientComponent,
@ -199,7 +198,6 @@ const routes: Routes = [
RouterModule.forChild(routes)
],
declarations: [
BackupDownloadUrlPipe,
BackupDurationPipe,
BackupsPageComponent,
ClientComponent,

2
src/Squidex/app/features/settings/pages/backups/backups-page.component.html

@ -72,7 +72,7 @@
<div *ngIf="backup.stopped && !backup.isFailed">
Download:
<a href="{{backup | sqxBackupDownloadUrl}}" sqxExternalLink="noicon">
<a href="{{apiUrl.buildUrl(backup.downloadUrl)}}" sqxExternalLink="noicon">
Ready <i class="icon-external-link"></i>
</a>
</div>

2
src/Squidex/app/features/settings/pages/backups/backups-page.component.ts

@ -10,6 +10,7 @@ import { timer } from 'rxjs';
import { onErrorResumeNext, switchMap } from 'rxjs/operators';
import {
ApiUrlConfig,
AppsState,
BackupDto,
BackupsState,
@ -23,6 +24,7 @@ import {
})
export class BackupsPageComponent extends ResourceOwner implements OnInit {
constructor(
public readonly apiUrl: ApiUrlConfig,
public readonly appsState: AppsState,
public readonly backupsState: BackupsState
) {

23
src/Squidex/app/features/settings/pages/backups/pipes.ts

@ -7,12 +7,7 @@
import { Pipe, PipeTransform } from '@angular/core';
import {
ApiUrlConfig,
AppsState,
BackupDto,
Duration
} from '@app/shared';
import { BackupDto, Duration } from '@app/shared';
@Pipe({
name: 'sqxBackupDuration',
@ -22,20 +17,4 @@ export class BackupDurationPipe implements PipeTransform {
public transform(backup: BackupDto) {
return Duration.create(backup.started, backup.stopped!).toString();
}
}
@Pipe({
name: 'sqxBackupDownloadUrl',
pure: true
})
export class BackupDownloadUrlPipe implements PipeTransform {
constructor(
private readonly apiUrl: ApiUrlConfig,
private readonly appsState: AppsState
) {
}
public transform(backup: BackupDto) {
return this.apiUrl.buildUrl(`api/apps/${this.appsState.appName}/backups/${backup.id}`);
}
}

4
src/Squidex/app/shared/services/backups.service.ts

@ -41,6 +41,8 @@ export class BackupDto {
public readonly canDelete: boolean;
public readonly downloadUrl: string;
constructor(
links: ResourceLinks,
public readonly id: string,
@ -53,6 +55,8 @@ export class BackupDto {
this._links = links;
this.canDelete = hasAnyLink(links, 'delete');
this.downloadUrl = links['download'].href;
}
}

Loading…
Cancel
Save