Commit Graph

91 Commits

Author SHA1 Message Date
Artemy 0d9af9f437 new urls 2026-02-08 23:34:13 +07:00
Artemy f54b00ab31 set new UseUrls 2026-02-08 23:15:48 +07:00
Artemy 0a43e35797 test to make server 2026-02-08 22:30:29 +07:00
Artemy cc2921d257 Updeted Session Model and Session Opener Service
renamed RefreshToken in model to RefreshTokenHash - now we have a hash of token, not a token
2025-12-14 14:03:18 +07:00
Artemy 7e6f914878 technical edits 2025-12-12 17:23:01 +07:00
Artemy bf2aca40d3 added https 2025-11-04 13:40:03 +07:00
Artemy ed03d6cbf7 part 2 to update applicationUrl 2025-11-04 13:03:07 +07:00
Artemy 595253d7c3 add 8080 to applicationUrl 2025-11-04 13:00:32 +07:00
Artemy b1e8cc83b2 update docker file 2025-11-04 12:49:41 +07:00
Artemy e6f7292bab AllowedHosts updated 2025-11-04 12:38:17 +07:00
Artemy c541c404b4 added new origins 2025-11-04 11:58:14 +07:00
Artemy a5a5fc4758 new app server and database + added hub and controller of user profile 2025-11-04 11:41:06 +07:00
Artemy 1d442d037c Add cryptographic session key management for users
Introduces a new cryptographic key management system for user sessions, including models, DTOs, interfaces, and services for handling identity keys, signed pre-keys, and one-time pre-keys. Updates the SessionKeysController and DI configuration to use the new services. Adds related EF Core configurations and migrations, and updates the UserSession model to reference the new UserCryptoSession. Removes the obsolete ISessionKeyService interface.
2025-07-30 21:26:35 +07:00
Artemy dc560ba698 fix docs 2025-07-30 12:41:57 +07:00
Artemy 751c30dedd Add CurrentUserSessionService for session ID retrieval
Introduces ICurrentUserSessionService and its implementation to provide access to the current user's session ID via the 'sid' claim. Registers the service in DI and adds comprehensive unit tests to validate correct and error scenarios.
2025-07-25 18:07:05 +07:00
Artemy ce630fbe0a Add sessionId to JWT and update session handling
The JwtService now includes sessionId in access tokens, and all usages have been updated to pass sessionId when generating tokens. UserSession now supports public encryption and signing keys. Tests and session management logic have been updated to reflect these changes, ensuring session-specific claims in JWTs and improved session tracking.
2025-07-25 17:54:58 +07:00
Artemy e9eee5bfec UserSession namespace was changed 2025-07-24 21:37:12 +07:00
Artemy 6a6c3d513d UserSessionRevoker 2025-07-24 18:05:11 +07:00
Artemy 15f9370dbe Created SessionController and UserSessionReader
+ tests for UserSessionReader
2025-07-24 17:03:51 +07:00
Artemy 53ea25f9fd small fix 2025-07-24 14:45:01 +07:00
Artemy 73f22a3ace more tests for PresenceHub 2025-07-24 13:54:59 +07:00
Artemy caefcd5827 test 2025-07-24 13:43:51 +07:00
Artemy e277159022 UserNotificationScopeServiceTests 2025-07-23 22:41:46 +07:00
Artemy be0edb0f94 Refactor user ID access in SignalR hubs and add online user tracking
Introduces IHubUserAccessor and its implementation to centralize user ID retrieval from SignalR HubCallerContext, replacing duplicated logic in ChatsHub, FriendsHub, and PresenceHub. Moves extension and mapping files to a Common directory, adds UserToUserDtoMappingAction for online status mapping, and implements OnlineUserStore with tests for tracking online users. Updates dependency injection and test code to use the new abstractions.
2025-07-23 22:21:51 +07:00
Artemy 31fdf4cb37 Add user online presence tracking and notification
Introduced interfaces and services for tracking user online status, including IOnlineUserStore, IUserNotificationScopeService, and IUserPresenceReader. Added PresenceHub for real-time presence updates via SignalR. Updated OnlinePingingController to use new services and return online status and last seen. Extended UserDto with IsOnline property. Updated dependency injection and privacy settings enum. Removed obsolete IUserPresenceService.
2025-07-23 21:07:29 +07:00
Artemy b24649e53a Refactor message loading API and add message query support
Reworked message loading endpoints and services to support flexible message querying with 'before' and 'after' parameters via a new MessageQuery contract. Updated controller actions, service interfaces, and implementations to use the new query model, and improved error handling. Added integration tests for ChatLoadController and introduced IUserPresenceService interface. Minor fixes and help text improvements in console client commands.
2025-07-23 13:06:34 +07:00
Artemy 1fc13000b1 RefreshControllerTests 2025-07-21 18:05:30 +07:00
Artemy 10b4e5207f bug fix 2025-07-21 17:20:35 +07:00
Artemy 93004a26b3 Unauthorized changet to Forbid 2025-07-21 17:16:51 +07:00
Artemy c434ca447c Media Controller Tests and other 2025-07-21 16:18:04 +07:00
Artemy c0d02e0fa1 Add access control for media downloads
Introduced IAccesserToDownloadMedia and its implementation to enforce access checks when downloading media files. Updated MediaController to use the new accesser service and improved error handling and validation in upload/download actions. Refactored and moved MediaService to the Medias namespace, registered new services in DI, and added comprehensive tests for access logic. Also fixed GroupMembershipConfiguration to make InvitationId optional and performed minor test and namespace cleanups.
2025-07-21 14:51:57 +07:00
Artemy ff873ae179 Implement refresh token flow and refactor session handling
Added refresh token endpoint and controller, introduced IUserSessionRefresher and UserSessionRefresher for token renewal, and updated session handling to return both access and refresh tokens. Refactored AuthController, tests, and related interfaces to support new token flow. Fixed JwtAccessOption property typo, updated configuration, and extended UserSessionsRepository to support lookup by refresh token.
2025-07-19 17:51:06 +07:00
Artemy ab643c16a4 Implement user session management and JWT refresh tokens
Added user session models, interfaces, repository, and service for managing user sessions and refresh tokens. Refactored authentication flow to return user objects and open sessions with device info, supporting refresh token generation and validation. Updated JWT configuration to separate access and refresh options, and refactored related tests and API contracts. Improved media upload handling and error logging. Migrated dependency references and DI registrations accordingly.
2025-07-18 20:16:36 +07:00
Artemy 6063aafd9e Refactor friend request and media services, remove console commands
Refactored the friend request command service and SignalR hub to return and broadcast FriendshipDto objects, improving real-time updates. Enhanced media upload and download logic to support file storage and retrieval, including database integration. Removed all command classes and related infrastructure from the Govor.Console project, streamlining the console client. Updated dependency injection and interfaces to reflect these changes.
2025-07-13 19:03:01 +07:00
Artemy 97b2ea14b2 Test for friends controllers 2025-07-12 19:51:15 +07:00
Artemy 96587b491d Add AutoMapper and message response models
Introduced AutoMapper to the API project and registered it in the DI container. Added mapping profiles for core models to DTOs and response objects. Refactored controllers to use AutoMapper for mapping entities to response DTOs. Implemented new response models for messages, media attachments, reactions, and views. Updated MessagesLoader to load messages with related data. Added a migration to support ChatGroupId in messages. Updated dependencies and fixed minor issues in related files.
2025-07-12 16:39:06 +07:00
Artemy c7de2318fc using Govor.Core.Models.Users; 2025-07-11 21:52:37 +07:00
Artemy 9d06984e8c rework console client 2025-07-11 15:52:10 +07:00
Artemy e8e2078514 app.MapHub<FriendsHub>("/api/friends"); 2025-07-11 12:19:32 +07:00
Artemy 65a43c09d3 Refactor message service and move tests to Application.Tests
Renamed IMessageService to IMessageCommandService and updated all usages accordingly. Moved and renamed test files from Govor.API.Tests to the new Govor.Application.Tests project, updating namespaces to match. Refactored message-related services and controllers to use the new naming and structure. Added Govor.Application.Tests project to the solution.
2025-07-10 18:05:10 +07:00
Artemy 437bedb117 Refactor friend request services and add SignalR error handling
Split IFriendRequestService into command and query interfaces, refactor related services and tests, and update dependency injection. Add HubResult response model and a SignalR HubExceptionFilter for consistent error handling. Move and update FriendsHub to use new command service and result pattern. Update username validation to allow digits after Cyrillic letters. Add new controllers and configuration for SignalR. Remove obsolete IFriendRequestService and related code.
2025-07-10 15:31:57 +07:00
Artemy b1f3aa0266 rework and starts for new friends system 2025-07-08 22:28:04 +07:00
Artemy 92c1ff6458 IUserGroupsService + tests 2025-07-07 21:06:04 +07:00
Artemy b027b20fc3 ChatGroupValidator 2025-07-07 14:05:11 +07:00
Artemy 2cb6a93060 Add private chat support and group model enhancements
Introduces repositories, validators, and integration tests for private chats. Refactors group-related models to support invitations and memberships, updates group repository interfaces and implementations, and enhances message service logic to handle private chat creation and retrieval. Also registers new services and validators in DI, and updates related tests.
2025-07-07 13:55:29 +07:00
Artemy 66819a015a Refactor media attachments to use MediaFile entity
This commit introduces the MediaFile entity and updates the media attachments model, repositories, and related logic to reference MediaFile instead of storing file metadata directly in MediaAttachments. Controller, service, and SignalR request/response contracts are updated to support the new structure. Database configurations and validators are also adjusted accordingly. This refactor improves media management and normalization in the data model.
2025-07-06 21:09:12 +07:00
Artemy 42348c863f Add admin friendships controller and improve friend request handling
Introduces FriendshipsController for admin operations, including listing and removing friendships. Updates routing for admin controllers, improves error handling in UsersController, and enhances FriendsController and related services to include requester details in friendship DTOs. Refactors friend request acceptance to use query parameters and updates console client for improved user feedback and local development configuration.
2025-07-06 17:43:10 +07:00
Artemy 857751f0ad userId update in ChatHub 2025-07-06 16:02:45 +07:00
Artemy 6062113655 Add unit tests and implement group repository interfaces
Introduces comprehensive unit tests for MessageService covering send, edit, and delete message scenarios. Adds and implements IGroupsRepository, IGroupsReader, and IGroupsWriter interfaces with method stubs in GroupRepository. Updates ChatGroup model with Description and ImageId fields, and registers GroupRepository in DI. Fixes parameter order in SendMessage record.
2025-07-06 15:44:45 +07:00
Artemy 89f14c134f VerifyFriendshipTests 2025-07-06 14:22:50 +07:00