Workshop - Finished initial plugin implementation

This commit is contained in:
RobertBeekman committed 2024-02-17 11:54:22 +01:00
1 parent f2c8de1746
commit cf10193bd2
10 files changed
+70 -45

No files matched your search

@@ -63,6 +63,14 @@ public class PluginEntryInstallationHandler : IEntryInstallationHandler
using ZipArchive archive = new(stream);
archive.ExtractToDirectory(releaseDirectory.FullName);
// If there is already a version of the plugin installed, disable it
if (installedEntry.TryGetMetadata("PluginId", out Guid pluginId))
{
Plugin? currentVersion = _pluginManagementService.GetAllPlugins().FirstOrDefault(p => p.Guid == pluginId);
if (currentVersion != null)
_pluginManagementService.UnloadPlugin(currentVersion);
}
// Load the plugin, next time during startup this will happen automatically
try
{
@@ -97,7 +97,7 @@ public class InstalledEntry
/// <param name="value">The value to set.</param>
public void SetMetadata(string key, object value)
{
_metadata.Add(key, value);
_metadata[key] = value;
}
/// <summary>
@@ -118,7 +118,7 @@ public class InstalledEntry
{
return new DirectoryInfo(Path.Combine(Constants.WorkshopFolder, $"{EntryId}-{StringUtilities.UrlFriendly(Name)}"));
}
/// <summary>
/// Returns the directory info of a release of this entry, where any files would be stored if applicable.
/// </summary>
@@ -3,7 +3,7 @@ namespace Artemis.WebClient.Workshop.Models;
public class PersonalAccessToken
{
public string Key { get; init; }
public DateTimeOffset CreationTime { get; init; }
public DateTimeOffset? Expiration { get; init; }
public DateTime CreationTime { get; init; }
public DateTime? Expiration { get; init; }
public string? Description { get; init; }
}
@@ -10,7 +10,7 @@ public interface IUserManagementService : IProtectedArtemisService
Task<ApiResult> ChangeEmailAddress(string emailAddress, CancellationToken cancellationToken);
Task<ApiResult> ChangeAvatar(Stream avatar, CancellationToken cancellationToken);
Task<ApiResult> RemoveAccount(CancellationToken cancellationToken);
Task<string> CreatePersonAccessToken(string description, DateTimeOffset expirationDate, CancellationToken cancellationToken);
Task<string> CreatePersonAccessToken(string description, DateTime expirationDate, CancellationToken cancellationToken);
Task<ApiResult> DeletePersonAccessToken(PersonalAccessToken personalAccessToken, CancellationToken cancellationToken);
Task<List<PersonalAccessToken>> GetPersonAccessTokens(CancellationToken cancellationToken);
}
@@ -66,7 +66,7 @@ internal class UserManagementService : IUserManagementService
}
/// <inheritdoc />
public async Task<string> CreatePersonAccessToken(string description, DateTimeOffset expirationDate, CancellationToken cancellationToken)
public async Task<string> CreatePersonAccessToken(string description, DateTime expirationDate, CancellationToken cancellationToken)
{
HttpClient client = _httpClientFactory.CreateClient(WorkshopConstants.IDENTITY_CLIENT_NAME);
HttpResponseMessage response = await client.PostAsync("user/access-token", JsonContent.Create(new {Description = description, ExpirationDate = expirationDate}), cancellationToken);