From 11be5df857a74fa8ee1c9dcb661a293ed9f09536 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Mon, 14 Nov 2022 10:37:56 +0700 Subject: feat: Remove old time tracker models, routes and entities --- .../Internal/Account/DeleteAccountRoute.cs | 8 -- .../Endpoints/Internal/Account/GetArchiveRoute.cs | 61 ---------- .../Endpoints/Internal/Account/UserArchiveDto.cs | 131 --------------------- 3 files changed, 200 deletions(-) delete mode 100644 code/api/src/Endpoints/Internal/Account/GetArchiveRoute.cs delete mode 100644 code/api/src/Endpoints/Internal/Account/UserArchiveDto.cs (limited to 'code/api/src/Endpoints/Internal') diff --git a/code/api/src/Endpoints/Internal/Account/DeleteAccountRoute.cs b/code/api/src/Endpoints/Internal/Account/DeleteAccountRoute.cs index 5df1fb6..e5bbb10 100644 --- a/code/api/src/Endpoints/Internal/Account/DeleteAccountRoute.cs +++ b/code/api/src/Endpoints/Internal/Account/DeleteAccountRoute.cs @@ -28,17 +28,9 @@ public class DeleteAccountRoute : RouteBaseAsync.WithoutRequest.WithActionResult return Ok(); } - var githubMappings = _database.TimeCategories.Where(c => c.UserId == user.Id); var passwordResets = _database.ForgotPasswordRequests.Where(c => c.UserId == user.Id); - var entries = _database.TimeEntries.Where(c => c.UserId == user.Id); - var labels = _database.TimeLabels.Where(c => c.UserId == user.Id); - var categories = _database.TimeCategories.Where(c => c.UserId == user.Id); - _database.TimeCategories.RemoveRange(githubMappings); _database.ForgotPasswordRequests.RemoveRange(passwordResets); - _database.TimeEntries.RemoveRange(entries); - _database.TimeLabels.RemoveRange(labels); - _database.TimeCategories.RemoveRange(categories); _database.Users.Remove(user); await _database.SaveChangesAsync(cancellationToken); diff --git a/code/api/src/Endpoints/Internal/Account/GetArchiveRoute.cs b/code/api/src/Endpoints/Internal/Account/GetArchiveRoute.cs deleted file mode 100644 index 0d9f817..0000000 --- a/code/api/src/Endpoints/Internal/Account/GetArchiveRoute.cs +++ /dev/null @@ -1,61 +0,0 @@ -namespace IOL.GreatOffice.Api.Endpoints.Internal.Account; - -public class GetAccountArchiveRoute : RouteBaseAsync.WithoutRequest.WithActionResult -{ - private readonly MainAppDatabase _database; - - public GetAccountArchiveRoute(MainAppDatabase database) { - _database = database; - } - - /// - /// Get a data archive with the currently logged on user's data. - /// - /// - /// - [HttpGet("~/_/account/archive")] - public override async Task> HandleAsync(CancellationToken cancellationToken = default) { - var user = _database.Users.SingleOrDefault(c => c.Id == LoggedInUser.Id); - if (user == default) { - await HttpContext.SignOutAsync(); - return Unauthorized(); - } - - var entries = _database.TimeEntries - .AsNoTracking() - .Include(c => c.Labels) - .Include(c => c.Category) - .Where(c => c.UserId == user.Id) - .ToList(); - - var jsonOptions = new JsonSerializerOptions { - WriteIndented = true - }; - - var dto = new UserArchiveDto(user); - dto.Entries.AddRange(entries.Select(entry => new UserArchiveDto.EntryDto { - CreatedAt = entry.CreatedAt.ToString("yyyy-MM-ddTHH:mm:ssZ"), - StartDateTime = entry.Start, - StopDateTime = entry.Stop, - Description = entry.Description, - Labels = entry.Labels - .Select(c => new UserArchiveDto.LabelDto { - Name = c.Name, - Color = c.Color - }) - .ToList(), - Category = new UserArchiveDto.CategoryDto { - Name = entry.Category.Name, - Color = entry.Category.Color - }, - })); - - dto.CountEntries(); - - var entriesSerialized = JsonSerializer.SerializeToUtf8Bytes(dto, jsonOptions); - - return File(entriesSerialized, - "application/json", - user.Username + "-time-tracker-archive-" + AppDateTime.UtcNow.ToString("yyyyMMddTHHmmss") + ".json"); - } -} \ No newline at end of file diff --git a/code/api/src/Endpoints/Internal/Account/UserArchiveDto.cs b/code/api/src/Endpoints/Internal/Account/UserArchiveDto.cs deleted file mode 100644 index 5d259ab..0000000 --- a/code/api/src/Endpoints/Internal/Account/UserArchiveDto.cs +++ /dev/null @@ -1,131 +0,0 @@ - -namespace IOL.GreatOffice.Api.Endpoints.Internal.Account; - -/// -/// Represents a user archive as it is provided to users. -/// -public class UserArchiveDto -{ - /// - public UserArchiveDto(User user) { - Meta = new MetaDto { - GeneratedAt = AppDateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") - }; - User = new UserDto(user); - Entries = new List(); - } - - /// - /// Metadata for the user archive. - /// - public MetaDto Meta { get; } - - /// - /// Relevant user data for the archive. - /// - public UserDto User { get; } - - /// - /// List of entries that the user has created. - /// - public List Entries { get; } - - public void CountEntries() { - Meta.EntryCount = Entries.Count; - } - - /// - /// Represents a time entry in the data archive. - /// - public class EntryDto - { - public string CreatedAt { get; init; } - - [JsonIgnore] - public DateTime StartDateTime { get; init; } - - /// - /// ISO 8601 string of the UTC date the time entry started. - /// - public string Start => StartDateTime.ToString("yyyy-MM-ddTHH:mm:ssZ"); - - [JsonIgnore] - public DateTime StopDateTime { get; init; } - - /// - /// ISO 8601 string of the UTC date the time entry stopped. - /// - public string Stop => StopDateTime.ToString("yyyy-MM-ddTHH:mm:ssZ"); - - /// - /// Total amount of minutes elapsed from start to stop on this time entry. - /// - public double Minutes => StopDateTime.Subtract(StartDateTime).TotalMinutes; - - public string Description { get; init; } - - /// - /// Archive spesific category for this time entry. - /// - public CategoryDto Category { get; init; } - - /// - /// Archive spesific list of labels for this time entry. - /// - public List Labels { get; init; } - } - - /// - /// Time entry category as it is written to the user archive. - /// - public class CategoryDto - { - public string Name { get; init; } - public string Color { get; init; } - } - - /// - /// Time entry label as it is written to the user archive. - /// - public class LabelDto - { - public string Name { get; init; } - public string Color { get; init; } - } - - - /// - /// Represents the user who this archive's data is based on. - /// - public class UserDto - { - /// - public UserDto(User user) { - Username = user.Username; - CreatedAt = user.CreatedAt; - } - - /// - /// UTC date this user was created. - /// - public DateTime CreatedAt { get; } - - public string Username { get; } - } - - /// - /// Represents the meta object which contains metdata for this archive. - /// - public class MetaDto - { - /// - /// ISO 8601 UTC date string for when this archive was created. - /// - public string GeneratedAt { get; init; } - - /// - /// Amount of entries in the archive. - /// - public int EntryCount { get; set; } - } -} -- cgit v1.3