Skip to content

Commit

Permalink
Merge branch 'main' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
ce-nistal authored Mar 8, 2024
2 parents e9eaa13 + 17b7bf7 commit 39e8a3f
Show file tree
Hide file tree
Showing 9 changed files with 55 additions and 62 deletions.
15 changes: 10 additions & 5 deletions Apps.Wordpress/Actions/MediaActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,24 @@
using Blackbird.Applications.Sdk.Common.Actions;
using Blackbird.Applications.Sdk.Common.Authentication;
using Blackbird.Applications.Sdk.Common.Invocation;
using Blackbird.Applications.SDK.Extensions.FileManagement.Interfaces;
using Blackbird.Applications.Sdk.Utils.Extensions.Files;
using Blackbird.Applications.Sdk.Utils.Parsers;

namespace Apps.Wordpress.Actions;

[ActionList]
public class MediaActions : BaseInvocable
{
private readonly IFileManagementClient _fileManagementClient;

private IEnumerable<AuthenticationCredentialsProvider> Creds =>
InvocationContext.AuthenticationCredentialsProviders;

public MediaActions(InvocationContext invocationContext) : base(invocationContext)
public MediaActions(InvocationContext invocationContext, IFileManagementClient fileManagementClient)
: base(invocationContext)
{
_fileManagementClient = fileManagementClient;
}

#region Get
Expand Down Expand Up @@ -51,8 +57,9 @@ public async Task<WordPressMedia> GetMediaById([ActionParameter] MediaRequest me
public async Task<WordPressMedia> UploadMedia([ActionParameter] UploadMedia request)
{
var client = new CustomWordpressClient(Creds);
var media = await client.Media.CreateAsync(new MemoryStream(request.File.Bytes), request.FileName ?? request.File.Name);

var fileStream = await _fileManagementClient.DownloadAsync(request.File);
var fileBytes = await fileStream.GetByteData();
var media = await client.Media.CreateAsync(new MemoryStream(fileBytes), request.FileName ?? request.File.Name);
return new(media);
}

Expand All @@ -70,6 +77,4 @@ public Task DeleteMedia([ActionParameter] MediaRequest media)
}

#endregion


}
26 changes: 16 additions & 10 deletions Apps.Wordpress/Actions/PageActions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@
using Blackbird.Applications.Sdk.Common.Actions;
using Blackbird.Applications.Sdk.Common.Authentication;
using Blackbird.Applications.Sdk.Common.Invocation;
using Blackbird.Applications.SDK.Extensions.FileManagement.Interfaces;
using Blackbird.Applications.Sdk.Utils.Extensions.Files;
using Blackbird.Applications.Sdk.Utils.Extensions.String;
using Blackbird.Applications.Sdk.Utils.Extensions.System;
using Blackbird.Applications.Sdk.Utils.Html.Extensions;
using Blackbird.Applications.Sdk.Utils.Parsers;
using RestSharp;
using WordPressPCL.Models;

namespace Apps.Wordpress.Actions;

Expand All @@ -31,11 +32,15 @@ public class PageActions : BaseInvocable
{
private const string Endpoint = "pages";

private readonly IFileManagementClient _fileManagementClient;

private IEnumerable<AuthenticationCredentialsProvider> Creds =>
InvocationContext.AuthenticationCredentialsProviders;

public PageActions(InvocationContext invocationContext) : base(invocationContext)
public PageActions(InvocationContext invocationContext, IFileManagementClient fileManagementClient)
: base(invocationContext)
{
_fileManagementClient = fileManagementClient;
}

#region Get
Expand Down Expand Up @@ -113,12 +118,11 @@ public async Task<FileResponse> GetPageByIdAsHtml([ActionParameter] PageRequest
var page = await client.Pages.GetByIDAsync(input.Id);

var html = (page.Title.Rendered, page.Content.Rendered).AsHtml();

return new(new(Encoding.UTF8.GetBytes(html))
{
Name = $"{page.Title.Rendered}.html",
ContentType = MediaTypeNames.Text.Html
});

using var stream = new MemoryStream(Encoding.UTF8.GetBytes(html));
var file = await _fileManagementClient.UploadAsync(stream, MediaTypeNames.Text.Html,
$"{page.Title.Rendered}.html");
return new(file);
}

#endregion
Expand Down Expand Up @@ -159,11 +163,13 @@ [ActionParameter] PageTranslationOptions translationOptions

private Task<WordPressItem> ExecuteModification(FileModificationRequest input, PageTranslationOptions translationOptions, string? id)
{
var html = Encoding.UTF8.GetString(input.File.Bytes);
var fileStream = await _fileManagementClient.DownloadAsync(input.File);
var fileBytes = await fileStream.GetByteData();
var html = Encoding.UTF8.GetString(fileBytes);
var htmlDocument = html.AsHtmlDocument();
var title = htmlDocument.GetTitle();
var body = htmlDocument.GetBody();
return ExecuteModification(new ModificationRequest { Title = title, Content = body }, translationOptions, id);
return await ExecuteModification(new ModificationRequest { Title = title, Content = body }, translationOptions, id);
}

private async Task<WordPressItem> ExecuteModification(ModificationRequest input, PageTranslationOptions translationOptions, string? id)
Expand Down
31 changes: 18 additions & 13 deletions Apps.Wordpress/Actions/PostActions.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
using System.Net;
using System.Net.Mime;
using System.Net.Mime;
using System.Text;
using Apps.Wordpress.Api;
using Apps.Wordpress.Api.RestSharp;
using Apps.Wordpress.Constants;
using Apps.Wordpress.Extensions;
using Apps.Wordpress.Models.Dtos;
using Apps.Wordpress.Models.Entities;
Expand All @@ -17,24 +15,30 @@
using Blackbird.Applications.Sdk.Common.Actions;
using Blackbird.Applications.Sdk.Common.Authentication;
using Blackbird.Applications.Sdk.Common.Invocation;
using Blackbird.Applications.SDK.Extensions.FileManagement.Interfaces;
using Blackbird.Applications.Sdk.Utils.Extensions.Files;
using Blackbird.Applications.Sdk.Utils.Extensions.String;
using Blackbird.Applications.Sdk.Utils.Extensions.System;
using Blackbird.Applications.Sdk.Utils.Html.Extensions;
using Blackbird.Applications.Sdk.Utils.Parsers;
using RestSharp;
using WordPressPCL.Models;

namespace Apps.Wordpress.Actions;

[ActionList]
public class PostActions : BaseInvocable
{
private const string Endpoint = "posts";

private readonly IFileManagementClient _fileManagementClient;

private IEnumerable<AuthenticationCredentialsProvider> Creds =>
InvocationContext.AuthenticationCredentialsProviders;

public PostActions(InvocationContext invocationContext) : base(invocationContext)
public PostActions(InvocationContext invocationContext, IFileManagementClient fileManagementClient)
: base(invocationContext)
{
_fileManagementClient = fileManagementClient;
}

#region Get
Expand Down Expand Up @@ -112,12 +116,11 @@ public async Task<FileResponse> GetPostByIdAsHtml([ActionParameter] PostRequest
var post = await client.Posts.GetByIDAsync(input.Id);

var html = (post.Title.Rendered, post.Content.Rendered).AsHtml();

return new(new(Encoding.UTF8.GetBytes(html))
{
Name = $"{post.Title.Rendered}.html",
ContentType = MediaTypeNames.Text.Html
});

using var stream = new MemoryStream(Encoding.UTF8.GetBytes(html));
var file = await _fileManagementClient.UploadAsync(stream, MediaTypeNames.Text.Html,
$"{post.Title.Rendered}.html");
return new(file);
}

#endregion
Expand Down Expand Up @@ -158,11 +161,13 @@ [ActionParameter] PostTranslationOptions translationOptions

private Task<WordPressItem> ExecuteModification(FileModificationRequest input, PostTranslationOptions translationOptions, string? id)
{
var html = Encoding.UTF8.GetString(input.File.Bytes);
var fileStream = await _fileManagementClient.DownloadAsync(input.File);
var fileBytes = await fileStream.GetByteData();
var html = Encoding.UTF8.GetString(fileBytes);
var htmlDocument = html.AsHtmlDocument();
var title = htmlDocument.GetTitle();
var body = htmlDocument.GetBody();
return ExecuteModification(new ModificationRequest { Title = title, Content = body }, translationOptions, id);
return await ExecuteModification(new ModificationRequest { Title = title, Content = body }, translationOptions, id);
}

private async Task<WordPressItem> ExecuteModification(ModificationRequest input, PostTranslationOptions translationOptions, string? id)
Expand Down
9 changes: 5 additions & 4 deletions Apps.Wordpress/Apps.Wordpress.csproj
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Product>Wordpress (+ Polylang)</Product>
<Version>1.1.0</Version>
<Version>1.1.1</Version>
<Description>The world’s most popular website builder</Description>
<AssemblyName>Apps.Wordpress</AssemblyName>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Blackbird.Applications.Sdk.Common" Version="2.2.0-alpha4" />
<PackageReference Include="Blackbird.Applications.Sdk.Utils" Version="1.0.12" />
<PackageReference Include="Blackbird.Applications.Sdk.Common" Version="2.3.2-alpha1" />
<PackageReference Include="Blackbird.Applications.SDK.Extensions.FileManagement" Version="1.0.1" />
<PackageReference Include="Blackbird.Applications.Sdk.Utils" Version="1.0.16" />
<PackageReference Include="Blackbird.Applications.Sdk.Utils.Html" Version="1.0.1" />
<PackageReference Include="WordPressPCL" Version="2.0.1" />
</ItemGroup>
Expand Down
11 changes: 0 additions & 11 deletions Apps.Wordpress/Models/Requests/CreateFromFileRequest.cs

This file was deleted.

9 changes: 2 additions & 7 deletions Apps.Wordpress/Models/Requests/FileModificationRequest.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using File = Blackbird.Applications.Sdk.Common.Files.File;
using Blackbird.Applications.Sdk.Common.Files;

namespace Apps.Wordpress.Models.Requests
{
public class FileModificationRequest
{
public File File { get; set; }
public FileReference File { get; set; }
}
}
4 changes: 2 additions & 2 deletions Apps.Wordpress/Models/Requests/Media/UploadMedia.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using Blackbird.Applications.Sdk.Common;
using File = Blackbird.Applications.Sdk.Common.Files.File;
using Blackbird.Applications.Sdk.Common.Files;

namespace Apps.Wordpress.Models.Requests.Media;

public class UploadMedia
{
[Display("File name")] public string? FileName { get; set; }
[Display("File content")] public File File { get; set; }
[Display("File content")] public FileReference File { get; set; }
}
8 changes: 0 additions & 8 deletions Apps.Wordpress/Models/Requests/UpdateFromFileRequest.cs

This file was deleted.

4 changes: 2 additions & 2 deletions Apps.Wordpress/Models/Responses/FileResponse.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using File = Blackbird.Applications.Sdk.Common.Files.File;
using Blackbird.Applications.Sdk.Common.Files;

namespace Apps.Wordpress.Models.Responses;

public record FileResponse(File File);
public record FileResponse(FileReference File);

0 comments on commit 39e8a3f

Please sign in to comment.