aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/Services
diff options
context:
space:
mode:
authorivar <i@oiee.no>2024-03-19 01:02:22 +0100
committerivar <i@oiee.no>2024-03-19 01:02:22 +0100
commit5f604b3052dab1d51dc130df2470bf330b283ec6 (patch)
treeae00e1fe4542850467555b4e3af41964ba8d878b /code/api/Services
parent63cf177e8cf22e349534664d59a6926f8b36863d (diff)
downloadstorage-5f604b3052dab1d51dc130df2470bf330b283ec6.tar.xz
storage-5f604b3052dab1d51dc130df2470bf330b283ec6.zip
Max lenghts on db schema
Use latest temporal from cdn Implement majority of translation functionality Major refinements/bugs
Diffstat (limited to 'code/api/Services')
-rw-r--r--code/api/Services/Abstractions/IResourceService.cs6
-rw-r--r--code/api/Services/Admin/UserService.cs26
-rw-r--r--code/api/Services/System/ChunkUploaderService.cs15
-rw-r--r--code/api/Services/System/DefaultResourceService.cs16
-rw-r--r--code/api/Services/System/PermissionService.cs27
-rw-r--r--code/api/Services/System/ShareService.cs2
-rw-r--r--code/api/Services/System/StorageService.cs88
7 files changed, 76 insertions, 104 deletions
diff --git a/code/api/Services/Abstractions/IResourceService.cs b/code/api/Services/Abstractions/IResourceService.cs
index 904d59b..ee0ae81 100644
--- a/code/api/Services/Abstractions/IResourceService.cs
+++ b/code/api/Services/Abstractions/IResourceService.cs
@@ -1,6 +1,4 @@
-using I2R.Storage.Api.Services.System;
-
-namespace I2R.Storage.Api.Services.Abstractions;
+namespace Quality.Storage.Api.Services.Abstractions;
public interface IResourceService
{
@@ -9,4 +7,4 @@ public interface IResourceService
public Task RemoveBlobAsync(StorageBlobId id, CancellationToken cancellationToken = default);
public Task SetBlobMetadataAsync(StorageBlobId id, Dictionary<string, string> metadata, CancellationToken cancellationToken = default);
public Task<Dictionary<string,string>> GetBlobMetadataAsync(StorageBlobId id, CancellationToken cancellationToken = default);
-} \ No newline at end of file
+}
diff --git a/code/api/Services/Admin/UserService.cs b/code/api/Services/Admin/UserService.cs
index f149d73..decc5bd 100644
--- a/code/api/Services/Admin/UserService.cs
+++ b/code/api/Services/Admin/UserService.cs
@@ -1,25 +1,17 @@
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
-namespace I2R.Storage.Api.Services.Admin;
+namespace Quality.Storage.Api.Services.Admin;
-public class UserService
+public class UserService(AppDatabase database, ILogger<UserService> logger)
{
- private readonly AppDatabase _database;
- private readonly ILogger<UserService> _logger;
-
- public UserService(AppDatabase database, ILogger<UserService> logger) {
- _database = database;
- _logger = logger;
- }
-
- public bool CanCreateAccount(string username) {
+ public bool CanCreateAccount(string username) {
if (username.IsNullOrWhiteSpace()) {
return false;
}
var normalisedUsername = username.Trim();
- return _database.Users.All(c => c.Username != normalisedUsername);
+ return database.Users.All(c => c.Username != normalisedUsername);
}
public async Task LogInUserAsync(HttpContext httpContext, IEnumerable<Claim> claims) {
@@ -31,22 +23,22 @@ public class UserService
};
await httpContext.SignInAsync(principal, authenticationProperties);
- _logger.LogInformation("Logged in user {userId}", principal.FindFirstValue(AppClaims.USER_ID));
+ logger.LogInformation("Logged in user {userId}", principal.FindFirstValue(AppClaims.USER_ID));
}
public async Task LogOutUserAsync(HttpContext httpContext, CancellationToken cancellationToken = default) {
await httpContext.SignOutAsync();
- _logger.LogInformation("Logged out user {userId}", httpContext.User.FindFirstValue(AppClaims.USER_ID));
+ logger.LogInformation("Logged out user {userId}", httpContext.User.FindFirstValue(AppClaims.USER_ID));
}
public async Task MarkUserAsDeletedAsync(Guid userId, Guid actorId) {
- var user = _database.Users.FirstOrDefault(c => c.Id == userId);
+ var user = database.Users.FirstOrDefault(c => c.Id == userId);
if (user == default) {
- _logger.LogInformation("Tried to delete unknown user {userId}", userId);
+ logger.LogInformation("Tried to delete unknown user {userId}", userId);
return;
}
user.SetDeleted(actorId);
- await _database.SaveChangesAsync();
+ await database.SaveChangesAsync();
}
} \ No newline at end of file
diff --git a/code/api/Services/System/ChunkUploaderService.cs b/code/api/Services/System/ChunkUploaderService.cs
index d650fa4..e1c81d9 100644
--- a/code/api/Services/System/ChunkUploaderService.cs
+++ b/code/api/Services/System/ChunkUploaderService.cs
@@ -1,16 +1,11 @@
-namespace I2R.Storage.Api.Services.System;
+namespace Quality.Storage.Api.Services.System;
-public class ChunkUploaderService
+public class ChunkUploaderService(AppDatabase database, ILogger<ChunkUploaderService> logger)
{
- private readonly ILogger<ChunkUploaderService> _logger;
- private readonly AppDatabase _database;
+ private readonly ILogger<ChunkUploaderService> _logger = logger;
+ private readonly AppDatabase _database = database;
- public ChunkUploaderService(AppDatabase database, ILogger<ChunkUploaderService> logger) {
- _database = database;
- _logger = logger;
- }
-
- public async Task<Guid> StartUploadSession() {
+ public async Task<Guid> StartUploadSession() {
return default;
}
} \ No newline at end of file
diff --git a/code/api/Services/System/DefaultResourceService.cs b/code/api/Services/System/DefaultResourceService.cs
index 5198432..5d05353 100644
--- a/code/api/Services/System/DefaultResourceService.cs
+++ b/code/api/Services/System/DefaultResourceService.cs
@@ -1,17 +1,11 @@
-using I2R.Storage.Api.Services.Abstractions;
+using Quality.Storage.Api.Services.Abstractions;
using File = System.IO.File;
-namespace I2R.Storage.Api.Services.System;
+namespace Quality.Storage.Api.Services.System;
-public class DefaultResourceService : IResourceService
+public class DefaultResourceService(IConfiguration configuration) : IResourceService
{
- private readonly IConfiguration _configuration;
-
- public DefaultResourceService(IConfiguration configuration) {
- _configuration = configuration;
- }
-
- public async Task SetBlobAsync(StorageBlobId id, Stream stream, CancellationToken cancellationToken = default) {
+ public async Task SetBlobAsync(StorageBlobId id, Stream stream, CancellationToken cancellationToken = default) {
await stream.CopyToAsync(File.OpenWrite(EnsureCreatedAndReturnBasedPath(id)), cancellationToken);
}
@@ -33,7 +27,7 @@ public class DefaultResourceService : IResourceService
}
private string EnsureCreatedAndReturnBasedPath(StorageBlobId id) {
- var withoutId = Path.Combine(Directory.GetCurrentDirectory(), _configuration.GetValue(AppEnvVariables.STORAGE_ROOT, "__FILESYSTEM__"), id.Bucket.ToString());
+ var withoutId = Path.Combine(Directory.GetCurrentDirectory(), configuration.GetValue(AppEnvVariables.STORAGE_ROOT, "__FILESYSTEM__"), id.Bucket.ToString());
Directory.CreateDirectory(withoutId);
return Path.Combine(withoutId, id.Id.ToString());
}
diff --git a/code/api/Services/System/PermissionService.cs b/code/api/Services/System/PermissionService.cs
index f55d8c1..a2233c8 100644
--- a/code/api/Services/System/PermissionService.cs
+++ b/code/api/Services/System/PermissionService.cs
@@ -1,19 +1,14 @@
-namespace I2R.Storage.Api.Services.System;
+namespace Quality.Storage.Api.Services.System;
-public class PermissionService
+public class PermissionService(ILogger<PermissionService> logger, AppDatabase database)
{
- private readonly AppDatabase _database;
- private readonly ILogger<PermissionService> _logger;
+ private readonly AppDatabase _database = database;
+ private readonly ILogger<PermissionService> _logger = logger;
- public PermissionService(ILogger<PermissionService> logger, AppDatabase database) {
- _logger = logger;
- _database = database;
- }
-
- public async Task GrantAllOnFile(Guid fileId, Guid userId) { }
- public async Task GrantAllOnFolder(Guid fileId, Guid userId) { }
- public async Task UserCanReadFile(Guid fileId, Guid userId) { }
- public async Task UserCanReadFolder(Guid folderId, Guid userId) { }
- public async Task UserCanWriteFile(Guid fileId, Guid userId) { }
- public async Task UserCanWriteFolder(Guid folderId, Guid userId) { }
-} \ No newline at end of file
+ public async Task GrantAllOnFile(Guid fileId, Guid userId) { }
+ public async Task GrantAllOnFolder(Guid fileId, Guid userId) { }
+ public async Task UserCanReadFile(Guid fileId, Guid userId) { }
+ public async Task UserCanReadFolder(Guid folderId, Guid userId) { }
+ public async Task UserCanWriteFile(Guid fileId, Guid userId) { }
+ public async Task UserCanWriteFolder(Guid folderId, Guid userId) { }
+}
diff --git a/code/api/Services/System/ShareService.cs b/code/api/Services/System/ShareService.cs
index 047e607..7f2f7b7 100644
--- a/code/api/Services/System/ShareService.cs
+++ b/code/api/Services/System/ShareService.cs
@@ -1,4 +1,4 @@
-namespace I2R.Storage.Api.Services.System;
+namespace Quality.Storage.Api.Services.System;
public class ShareService
{
diff --git a/code/api/Services/System/StorageService.cs b/code/api/Services/System/StorageService.cs
index 328be2c..9c6e0ac 100644
--- a/code/api/Services/System/StorageService.cs
+++ b/code/api/Services/System/StorageService.cs
@@ -1,48 +1,46 @@
-namespace I2R.Storage.Api.Services.System;
+namespace Quality.Storage.Api.Services.System;
-public class StorageService
+public class StorageService(AppDatabase database)
{
- private readonly AppDatabase _database;
- private readonly ILogger<StorageService> _logger;
+ public async Task<List<FileSystemEntry>> GetFileSystemEntriesAsync(Guid parent = default) {
+ var fileSystemEntriesContext = database.Folders
+ .Include(c => c.Files)
+ .ConditionalWhere(() => parent != default, folder => folder.ParentId == parent)
+ .Select(p => new FileSystemEntry {
+ Id = p.Id,
+ Name = p.Name,
+ MimeType = SystemConstants.FolderMimeType,
+ SizeInBytes = -1,
+ Files = p.Files.Select(c => new FileSystemEntry {
+ Id = c.Id,
+ Name = c.Name,
+ MimeType = c.MimeType,
+ SizeInBytes = c.SizeInBytes
+ })
+ .ToList()
+ })
+ .KeysetPaginate(builder => {
+ builder.Ascending(entry => entry.Name);
+ });
+ var fileSystemEntries = await fileSystemEntriesContext.Query.ToListAsync();
+ fileSystemEntriesContext.EnsureCorrectOrder(fileSystemEntries);
+ return fileSystemEntries;
+ }
- public StorageService(AppDatabase database, ILogger<StorageService> logger) {
- _database = database;
- _logger = logger;
- }
-
- public async Task<List<FileSystemEntry>> GetFileSystemEntriesAsync(Guid parent = default) {
- var fileSystemEntriesContext = _database.Folders
- .Include(c => c.Files)
- .ConditionalWhere(() => parent != default, folder => folder.ParentId == parent)
- .Select(p => new FileSystemEntry() {
- Id = p.Id,
- Name = p.Name,
- MimeType = SystemConstants.FolderMimeType,
- SizeInBytes = -1,
- Files = p.Files.Select(c => new FileSystemEntry() {
- Id = c.Id,
- Name = c.Name,
- MimeType = c.MimeType,
- SizeInBytes = c.SizeInBytes
- }).ToList()
- })
- .KeysetPaginate(builder => { builder.Ascending(entry => entry.Name); });
- var fileSystemEntries = await fileSystemEntriesContext.Query.ToListAsync();
- fileSystemEntriesContext.EnsureCorrectOrder(fileSystemEntries);
- return fileSystemEntries;
- }
-
- public async Task<FileSystemEntry> GetFileSystemEntryAsync(Guid folder) {
- return _database.Folders.Include(c => c.Files).Select(c => new FileSystemEntry() {
- Id = c.Id,
- SizeInBytes = -1,
- MimeType = SystemConstants.FolderMimeType,
- Files = c.Files.Select(p => new FileSystemEntry() {
- SizeInBytes = p.SizeInBytes,
- MimeType = p.MimeType,
- Id = p.Id,
- Name = p.Name
- }).ToList()
- }).FirstOrDefault(c => c.Id == folder);
- }
-} \ No newline at end of file
+ public Task<FileSystemEntry> GetFileSystemEntryAsync(Guid folderId) {
+ return database.Folders.Include(c => c.Files)
+ .Select(c => new FileSystemEntry {
+ Id = c.Id,
+ SizeInBytes = -1,
+ MimeType = SystemConstants.FolderMimeType,
+ Files = c.Files.Select(p => new FileSystemEntry {
+ SizeInBytes = p.SizeInBytes,
+ MimeType = p.MimeType,
+ Id = p.Id,
+ Name = p.Name
+ })
+ .ToList()
+ })
+ .FirstOrDefaultAsync(c => c.Id == folderId);
+ }
+}