Commit Graph
100 Commits
Author SHA1 Message Date
tuankiet2s 3652fda7d3 feat: add grammar check functionality and enhance quiz schema
- Introduced a new 'testCheckGrammar' field in DocumentSchema to facilitate grammar checking for documents, leveraging the document service for processing.
- Updated DocumentService to implement grammar checking logic, including caching results and publishing suggestions.
- Enhanced QuizSchema by adding filter arguments for quiz attempts, allowing for more flexible data retrieval based on user and quiz IDs.
- Cleaned up whitespace and improved error handling in quiz attempt creation to ensure better user feedback.

These changes improve the document editing experience and enhance the quiz feature's data handling capabilities.
2024-12-11 22:36:35 +07:00
tuankiet2s 4168bff1e8 feat: enhance quiz schema with JsonList type and add quiz attempt fields
- Introduced a new 'JsonList' scalar type in the GraphQL schema to handle lists of JSON values, improving data structure flexibility.
- Updated the Quiz schema to replace 'Json' type with 'JsonList' for user input and questions, ensuring consistent data handling.
- Added new fields for retrieving quiz attempts, including individual and multiple attempts, with appropriate authorization checks for user roles.
- Enhanced error handling for quiz attempt retrieval to ensure proper access control and user feedback.

These changes improve the overall functionality and maintainability of the quiz feature, providing a more robust data model and user experience.
2024-12-11 17:26:28 +07:00
tuankiet2s c437022d41 chore: update subproject reference in epess-database to latest commit
- Updated the subproject reference in the epess-database to the latest commit (54cb097) for consistency in project dependencies.
- This change ensures alignment with the most recent updates in the subproject, maintaining the integrity of the overall project structure.
2024-12-11 16:31:32 +07:00
tuankiet2s 871f24edb0 chore: update dependencies and enhance document schema
- Updated package.json and package-lock.json to include the new dependency 'quill-to-pdf' for improved document export functionality.
- Modified DocumentSchema to introduce a new 'DocumentExportObject' type, facilitating document export operations.
- Cleaned up commented-out code in document.service.ts and minio.service.ts for better readability and maintainability.
- Adjusted quiz schema to expose user input and questions as JSON types, enhancing data flexibility.
- Updated workshop subscription logic to maintain accurate participant counts upon new subscriptions.

These changes improve the overall functionality and maintainability of the project, ensuring better document handling and schema consistency.
2024-12-11 16:31:16 +07:00
tuankiet2s 1fcc7b9a5f refactor: enhance DocumentSchema with detailed field descriptions and adjust random sync logic
- Updated DocumentSchema to include detailed descriptions for fields, improving API documentation and usability.
- Adjusted the random sync logic threshold from 0.05 to 0.005 to reduce the frequency of sync requests, optimizing performance.
- Added new fields for collaboration session management, enhancing document interaction capabilities.
2024-12-11 14:43:21 +07:00
tuankiet2s c1d21cb1a8 fix: remove unnecessary whitespace in document.service.ts
- Cleaned up whitespace in document.service.ts to improve code readability and maintainability.
- This change enhances the overall quality of the codebase by ensuring consistent formatting.
2024-12-11 02:16:11 +07:00
tuankiet2s c6482b16f2 chore: update Node.js version and refine launch configuration
- Updated the Node.js version in .nvmrc from 22.6.0 to 24.0.0-nightly for compatibility with the latest features.
- Modified the launch.json configuration to reflect the new Node.js runtime path, ensuring the development environment is aligned with the updated version.
- Cleaned up whitespace in document.service.ts for improved code readability.

These changes ensure the project is using the latest Node.js version and maintain a clean and efficient development setup.
2024-12-11 01:15:02 +07:00
tuankiet2s 9500471faf feat: enhance document processing with AI suggestions and preview image support
- Added AI_SUGGESTION event to DocumentEvent enum for improved document interaction.
- Implemented updateDocumentPreviewImage mutation in DocumentSchema to allow updating of document preview images.
- Integrated grammar checking functionality in DocumentService, utilizing OpenAI for real-time suggestions and caching results in Redis.
- Enhanced MinioService with methods for file upsert and document content retrieval.
- Updated PrismaTypes to include new relations and fields for better data structure alignment.
- Commented out unused RESTful service methods for future cleanup.

These changes improve the document editing experience by leveraging AI capabilities and enhancing the schema for better data management.
2024-12-10 23:27:05 +07:00
tuankiet2s e1cfd55502 chore: update user schema and database reference
- Removed the 'packageValue' field from the User schema to streamline user data representation.
- Updated the subproject reference in the epess-database to the latest commit for consistency in project dependencies.
- These changes enhance the clarity of the user schema and ensure alignment with the latest database structure.
2024-12-10 17:23:07 +07:00
tuankiet2s c8f4abd670 refactor: enhance message creation logic by adding context
- Updated the message creation logic to include a default context of 'CHAT' in the data being saved, ensuring that all messages have a defined context.
- This change improves the consistency of message data and enhances the overall functionality of the messaging system.
2024-12-10 17:17:35 +07:00
tuankiet2s 45c7b6d5b9 chore: update .gitignore to remove pothos generated types declaration
- Removed 'pothos.generated.ts' from .gitignore as it is no longer relevant to the project.
- This change helps maintain a cleaner project structure by ensuring only necessary files are ignored.
2024-12-10 17:13:03 +07:00
tuankiet2s b46da5fbad refactor: enhance quiz retrieval and schema consistency
- Improved quiz retrieval logic by ensuring a valid random index is calculated, preventing errors when no quizzes are available.
- Updated the Quiz schema to streamline field names and enhance clarity, replacing existing fields with more descriptive alternatives.
- Reformatted code for better readability and consistency, adhering to style guidelines for improved maintainability.
2024-12-10 17:06:30 +07:00
tuankiet2s 2dbe5c589b refactor: simplify quiz retrieval logic by removing unnecessary schedule validation
- Removed the requirement for 'scheduleId' in the quiz retrieval process, streamlining the logic and improving code clarity.
- Consolidated the quiz retrieval query to enhance maintainability while ensuring it still functions correctly with the existing data structure.
- Updated the .gitignore to clarify the purpose of the 'pothos.generated.ts' file, improving project documentation.
2024-12-10 16:57:04 +07:00
tuankiet2s 0d39f053bb chore: update .gitignore to include pothos generated file
- Added 'pothos.generated.ts' to .gitignore to prevent tracking of generated files, improving project cleanliness and reducing unnecessary clutter in version control.
2024-12-10 16:48:50 +07:00
tuankiet2s 313dc8d32f refactor: remove unused PrismaTypes interface and related file
- Deleted the `pothos.generated.ts` file, which contained the PrismaTypes interface and related type definitions, as it was no longer needed in the project.
- This cleanup improves project maintainability by removing obsolete code and reducing clutter in the codebase.
2024-12-10 16:48:40 +07:00
tuankiet2s 14a69aba10 refactor: update Quiz schema and Prisma types for enhanced data structure
- Replaced existing score and answers fields in the Quiz schema with more descriptive fields: numberOfCorrectAnswers, numberOfIncorrectAnswers, numberOfQuestions, correctPoints, totalPoints, and userInput.
- Updated the PrismaTypes interface to remove the questions relation and streamline the data model, ensuring better clarity and maintainability.
- Updated the subproject reference in the epess-database to the latest commit for consistency in project dependencies.
2024-12-10 16:46:46 +07:00
tuankiet2s 431e478f21 refactor: streamline quiz schema formatting and improve readability
- Reformatted the quiz schema for consistent indentation and spacing, enhancing overall code clarity.
- Consolidated the random index calculation into a single line for improved readability.
- Maintained existing functionality while ensuring the code adheres to style guidelines for better maintainability.
2024-12-10 16:37:53 +07:00
tuankiet2s d18258f81a refactor: improve quiz retrieval logic with schedule validation
- Added validation to ensure 'scheduleId' is provided when retrieving quizzes, enhancing error handling.
- Implemented a check for the existence of the schedule before proceeding with quiz retrieval, improving robustness.
- Reformatted code for better readability and consistency in the Quiz schema.
2024-12-10 16:37:36 +07:00
tuankiet2s 4435bc0804 refactor: standardize code formatting and improve readability in User schema
- Reformatted import statements and method calls to use consistent line endings and spacing, enhancing code clarity.
- Updated error handling messages to maintain uniformity across the schema.
- Improved overall readability by ensuring consistent use of semicolons and line breaks, making the code easier to navigate and maintain.
2024-12-10 16:37:10 +07:00
tuankiet2s f1f5918a65 refactor: improve quiz retrieval logic in Quiz schema
- Enhanced the quiz retrieval logic to ensure a valid random index is calculated based on the number of available quizzes, preventing potential errors when no quizzes are present.
- Updated the logic to use 'nrOfQuestions' from the quiz object for slicing the quizzes array, ensuring consistent behavior in quiz selection.
- Improved code clarity by refining comments related to the quiz selection process.
2024-12-09 20:37:04 +07:00
tuankiet2s ed50f33322 feat: enhance Quiz schema with schedule-based quiz retrieval and error handling
- Added logic to require 'scheduleId' for customers when retrieving quizzes, ensuring proper association with schedules.
- Implemented error handling for missing 'scheduleId' and non-existent schedules, improving robustness and user feedback.
- Refactored quiz retrieval logic for customers and center mentors to utilize the correct center mentor ID from the schedule, enhancing data integrity.
- Updated comments for clarity regarding the quiz selection process based on user roles.
2024-12-09 20:19:10 +07:00
tuankiet2s aa9ce7a235 refactor: remove 'amount' argument from Quiz schema and update quiz retrieval logic
- Removed the 'amount' argument from the quiz retrieval query to streamline the schema.
- Updated the quiz retrieval logic to use 'nrOfQuestions' from the quiz object instead of the removed 'amount' argument, ensuring consistent behavior in quiz selection.
- Improved code clarity by refining comments related to quiz selection logic.
2024-12-09 20:08:17 +07:00
tuankiet2s 30f56747f7 feat: enhance Quiz schema with random quiz retrieval and amount argument
- Added a new 'amount' argument to the quiz retrieval query, allowing users to specify the number of quizzes to return.
- Implemented a seeded randomization mechanism to select quizzes based on the user's ID, improving the randomness of quiz selection.
- Refactored the quiz retrieval logic to utilize the new randomization and amount features, enhancing user experience and engagement.
2024-12-09 20:07:22 +07:00
tuankiet2s 4151bb6afe chore: update subproject commit and modify datamodel retrieval function
- Updated the subproject reference in the epess-database to the latest commit.
- Refactored the getDatamodel function in pothos.generated.ts to ensure it returns the latest datamodel structure, enhancing data retrieval consistency.
2024-12-09 19:50:51 +07:00
tuankiet2s 13e525e92f feat: enhance workshop notification system for customers
- Updated WorkshopSchema to notify customers when a workshop is scheduled, improving engagement and communication.
- Added logic to fetch active services and include center information in the notification process.
- Implemented message creation for customers with the role of CUSTOMER, ensuring they receive timely updates about workshops.
- Utilized PubSub for real-time notifications, enhancing user experience and interaction with the platform.
2024-12-09 19:45:49 +07:00
tuankiet2s f5ee243dc7 feat: enhance resume submission notifications for moderators
- Updated ResumeSchema to notify moderators when a new resume is submitted, improving communication and response times.
- Refactored notification logic to streamline the process of sending messages to all relevant moderators, ensuring timely updates.
- Removed redundant checks for center owner notifications, simplifying the code while maintaining functionality.
2024-12-09 19:40:54 +07:00
tuankiet2s 092a15753b feat: enhance notification system and role-based access across schemas
- Updated MessageSchema to include context-aware filtering for notifications, allowing retrieval based on recipientId for NOTIFICATION and SYSTEM contexts.
- Enhanced RefundTicketSchema to notify moderators upon refund requests, improving communication and response times.
- Modified ResumeSchema to send notifications to mentors and center owners when a new resume is submitted, ensuring timely updates.
- Improved ServiceSchema to notify center owners and mentors about service approvals, enhancing user engagement and awareness.
- Implemented role-based access control checks across schemas to ensure only authorized users can perform specific actions, enhancing security and user experience.
2024-12-09 19:38:36 +07:00
tuankiet2s 9732d7b904 feat: enhance message retrieval logic with context-based filtering
- Updated the MessageSchema to include context-aware filtering for notifications, allowing retrieval of messages based on recipientId when the context is NOTIFICATION.
- Improved the resolve function to handle subscription checks, ensuring that unauthorized access is properly managed.
- Added error handling for cases where the context is not allowed, enhancing overall robustness of the message retrieval process.
2024-12-09 19:08:25 +07:00
tuankiet2s 4ba3077a9b refactor: enhance refund ticket logic and role-based access control
- Updated the RefundTicket schema to allow both customers and center mentors to request refunds, improving flexibility in refund processing.
- Refined bank detail checks to differentiate between customers and center mentors, ensuring appropriate handling of bank information.
- Implemented special handling for center mentors to always allow full refunds, enhancing user experience.
- Improved error messages and validation checks throughout the refund process for better clarity and user guidance.
2024-12-09 18:43:03 +07:00
tuankiet2s e3a06f1ba9 feat: add scheduled quiz notification task and enhance Quiz schema with scheduleId
- Introduced a new cron job in CronService to check for schedules with status WAITING_QUIZ and notify customers to complete their quizzes.
- Enhanced the Quiz schema by adding an optional 'scheduleId' argument to facilitate quiz retrieval based on specific schedules, improving user experience and data association.
- Updated role-based access control logic to ensure proper handling of quiz queries for customers and center mentors.
2024-12-09 18:35:01 +07:00
tuankiet2s 5ab89d5cfa fix: update centerMentorId reference in Quiz schema query
- Changed the centerMentorId reference in the Quiz schema to use centerMentor.mentorId instead of the current user's ID.
- This adjustment ensures that the correct mentor association is maintained in the query logic, enhancing data integrity and access control.
2024-12-09 17:55:09 +07:00
tuankiet2s 269563555f fix: extend role-based access control in Quiz schema
- Updated authorization logic to allow both CENTER_MENTOR and CENTER_OWNER roles access to Quiz queries and mutations.
- Enhanced security by refining user role checks to ensure proper access control.
2024-12-09 17:54:17 +07:00
tuankiet2s 2edd7c18e5 refactor: enhance Quiz schema with role-based access control and service ID requirement
- Added role-based access control to restrict access to Quiz queries and mutations for users with the CENTER_MENTOR role.
- Updated error messages for unauthorized access to improve clarity.
- Introduced a required 'serviceId' argument in the quizzes query to ensure proper filtering and association with the center mentor.
- Refactored existing authentication checks to maintain consistent error handling across the Quiz schema.
2024-12-09 17:53:47 +07:00
tuankiet2s 342fea041f feat: add service field to Quiz creation and enforce service ID requirement
- Introduced 'service' field in the Quiz creation input to enhance data structure.
- Added validation to ensure 'service ID' is provided during Quiz creation, improving data integrity.
- Updated centerMentor association logic to connect the current user as the center mentor for the Quiz.
2024-12-09 17:45:52 +07:00
tuankiet2s b8d7c52d63 chore: update subproject commit reference and enhance Prisma types
- Updated the subproject commit reference in epess-database to the latest version.
- Modified Prisma types in pothos.generated.ts to include 'Quiz' in relation names and list relations.
- Removed the 'TempOrder' type definition from PrismaTypes for improved clarity and maintainability.
2024-12-09 17:30:02 +07:00
tuankiet2s abcda1ae58 refactor: improve DateTime handling in GraphQL builder
- Streamlined DateTime serialization and parsing logic in the GraphQL builder for enhanced clarity and maintainability.
- Removed commented-out code to reduce clutter and improve code readability.
- Ensured consistent error handling for invalid DateTime values.
2024-12-09 17:24:00 +07:00
tuankiet2s 087bf3a3ad chore: update subproject commit reference and modify date handling in Cron service
- Updated the subproject commit reference in epess-database to the latest version.
- Changed the date handling in CronService to allow scheduling up to one day in advance instead of thirty minutes.
- Removed commented-out code in DocumentSchema for improved clarity and maintainability.
2024-12-09 17:20:30 +07:00
tuankiet2s 56762e98eb refactor: streamline collaborator check in Document schema
- Simplified the collaborator check logic in the DocumentSchema by condensing the condition into a single line for improved readability.
- Maintained existing functionality while enhancing code clarity and maintainability.
2024-12-09 17:11:18 +07:00
tuankiet2s 8d0b80f09c chore: update subproject commit reference and enhance error handling in schema files
- Updated the subproject commit reference in epess-database to the latest version.
- Changed error messages in CollaborationSession and Document schemas for improved clarity and security.
- Refactored error handling logic to ensure consistent user authentication checks across multiple schema files.
- Enhanced GraphQL module configuration with new options for better performance and error response handling.
2024-12-09 17:06:23 +07:00
tuankiet2s 951511228a chore: clean up GraphQL module request logging
- Removed unnecessary logging of session ID in the GraphQL module to streamline request handling.
- Maintained existing functionality while improving code clarity and reducing potential noise in logs.
2024-12-08 21:56:57 +07:00
tuankiet2s ba32ee8dc1 chore: refactor pub/sub iterator usage across schema files
- Updated pub/sub iterator methods from `asyncIterableIterator` to `asyncIterator` in multiple schema files for improved compatibility with the latest GraphQL subscriptions.
- Refactored subscription logic in CollaborationSession, Document, Message, User, and other schema files to enhance readability and maintainability.
- Adjusted imports in GraphQL builder to utilize RedisPubSub for better performance in subscription handling.
2024-12-08 21:54:23 +07:00
tuankiet2s 8b36e7d05a chore: update GraphQL module configuration and enhance server plugins
- Added ApolloServerPluginLandingPageLocalDefault for improved GraphQL playground experience.
- Disabled playground in production by setting it to false for better security.
- Updated logger configuration for clearer debugging and error handling in the GraphQL module.
2024-12-08 21:25:42 +07:00
tuankiet2s 45dca51990 chore: update biome configuration and enhance error handling in schema files
- Enabled useIgnoreFile in biome.json for better file management.
- Updated various correctness and style rules in biome.json to enforce stricter coding standards.
- Added new biome lint command in package.json for improved code quality checks.
- Refactored error handling in multiple schema files to use consistent error throwing patterns, enhancing readability and maintainability.
- Improved user authentication checks across various schemas to ensure proper access control.
2024-12-08 21:01:26 +07:00
tuankiet2s 10e20092ab chore: update configuration and improve schema imports
- Updated biome.json to include "graphql.d.ts" in the ignored files list.
- Updated subproject commit reference in epess-database to the latest version.
- Removed unused script from package.json and streamlined module file extensions in tsconfig.json.
- Consolidated exclude patterns in tsconfig.build.json for clarity.
- Refactored imports across multiple schema files for consistency and improved readability.
- Enhanced various schema files by ensuring proper import order and removing redundant code.
- Improved error handling and data integrity checks in several service and schema files.
2024-12-08 20:49:52 +07:00
tuankiet2s 9e6d62e4be chore: update package dependencies and improve pub/sub iterator usage
- Updated various package dependencies in package-lock.json and package.json for enhanced stability and performance.
- Changed pub/sub iterator methods from `asyncIterator` to `asyncIterableIterator` in multiple schema files for better compatibility with the latest GraphQL subscriptions.
- Added `moduleResolution` option in tsconfig.json to support Node.js-style module resolution.
2024-12-08 20:38:09 +07:00
tuankiet2s 16f6f8a629 chore: update package dependencies and adjust GraphQL upload imports
- Updated various package dependencies in package-lock.json and package.json for improved stability and performance.
- Changed import paths for graphql-upload to use .mjs extensions, ensuring compatibility with ES modules.
- Added @types/graphql-upload to package.json for better TypeScript support.
- Adjusted Jest configuration for improved readability and maintainability.
2024-12-07 19:54:37 +07:00
tuankiet2s 14a91a1885 chore: update subproject commit reference and enhance Quiz schema
- Updated the subproject commit reference in epess-database to the latest version.
- Enhanced QuizSchema by adding quizAttempt relation and submitQuiz mutation for improved quiz attempt handling.
- Updated Prisma types to include QuizAttempt, ensuring consistency across the application.
2024-12-07 19:39:16 +07:00
tuankiet2s 636be21a4c chore: update subproject commit reference in epess-database to latest version 2024-12-07 19:05:35 +07:00
tuankiet2s 7a0a404081 chore: update subproject commit and enhance PersonalMilestone schema
- Updated the subproject commit reference in epess-database to the latest version.
- Added milestoneOrder field to PersonalMilestoneSchema for improved milestone ordering.
- Ensured consistency in Prisma types with the latest schema changes.
2024-12-07 18:47:43 +07:00
tuankiet2s ae537d40f6 feat: integrate PersonalMilestoneModule into GraphQL module and update its configuration
- Added PersonalMilestoneModule to the GraphQL module imports, enhancing the overall functionality and data management.
- Updated PersonalMilestoneModule to use providers and exports for PersonalMilestoneSchema, improving module encapsulation and reusability.
2024-12-07 18:21:02 +07:00
tuankiet2s bb88d6ed00 feat: enhance QuizSchema and related schemas with new fields and relations
- Updated QuizSchema to expose correctAnswer as a field with a resolver, improving data retrieval for quizzes.
- Introduced new object types for correctAnswer, allowing for flexible data structures (StringType and StringListType).
- Modified createQuiz mutation to automatically associate the current user as centerMentorId, enhancing data integrity.
- Added personalMilestone relation to ScheduleSchema, linking schedules to personal milestones for better tracking.
- Included quiz relation in ServiceSchema, establishing a connection between services and their associated quizzes.
- Updated Prisma types to reflect the new relationships and fields, ensuring consistency across the application.
2024-12-07 18:18:33 +07:00
tuankiet2s d59df7d2ab feat: update collaboration session handling and schedule date status
- Removed redundant code for adding current user ID to collaborators in collaboration sessions.
- Implemented updates to schedule date status based on collaboration session conditions, enhancing the workflow for both customers and mentors.
- Improved error handling to ensure only authorized users can access collaboration sessions, maintaining data integrity and user experience.
2024-12-07 16:28:44 +07:00
tuankiet2s 77e3526564 feat: add scheduleDates field to ScheduleSchema for retrieving schedule dates
- Introduced a new `scheduleDates` field in the ScheduleSchema to allow users to fetch a list of schedule dates.
- Implemented argument handling for pagination and filtering, ensuring efficient data retrieval.
- Added error handling to prevent access during subscriptions and ensure user authentication before data access.
- Enhanced the overall functionality of the ScheduleSchema, improving user experience and data management.
2024-12-07 16:05:12 +07:00
tuankiet2s d72c647acd feat: add QuizModule to GraphQL module imports
- Integrated QuizModule into the GraphQL module to enhance quiz-related functionalities.
- Updated module imports to ensure proper dependency management and maintainability of the codebase.
2024-12-07 15:56:19 +07:00
tuankiet2s 429c6f9073 chore: remove Milestone module and update related schemas
- Deleted the MilestoneModule and its associated schema to streamline the codebase.
- Updated QuizSchema to replace scheduleId with serviceId, enhancing the relationship structure.
- Removed references to Milestone in ServiceSchema, improving clarity and focus on relevant entities.
- Updated Prisma types to reflect the removal of Milestone, ensuring data integrity across the application.
2024-12-07 15:33:28 +07:00
tuankiet2s 4af2e848b8 feat: implement Quiz and Question schemas with GraphQL integration
- Introduced QuizSchema and QuestionSchema extending PothosSchema for enhanced GraphQL capabilities.
- Added methods to expose Quiz and Question fields, including relations and various attributes.
- Implemented query and mutation fields for creating, updating, and retrieving quizzes, ensuring proper authentication and error handling.
- Enhanced the overall structure of the schema to improve data integrity and access control.
2024-12-06 21:52:11 +07:00
tuankiet2s 5e68b1e11a feat: add PersonalMilestone and Quiz relations to Prisma types
- Introduced PersonalMilestone entity to the Prisma types, enhancing the schema with new relationships.
- Updated existing relations in various schemas to include PersonalMilestone and Quiz, improving data structure and integrity.
- Modified relation names and lists to accommodate the new entities, ensuring comprehensive coverage of the data model.
2024-12-06 21:26:51 +07:00
tuankiet2s 6cbaf44c7f chore: update subproject commit and enhance ServiceFeedback schema
- Updated the subproject commit reference in epess-database to the latest version.
- Added Logger to the ServiceFeedback schema for improved logging of arguments during feedback submission.
- Modified the Prisma types to include new Quiz and Question entities, enhancing the schema's capabilities and data structure.
2024-12-06 21:25:25 +07:00
tuankiet2s 59b221a6ee chore: update subproject commit and modify prisma studio command
- Updated the subproject commit reference in epess-database to the latest version.
- Modified the prisma studio command in package.json to use dotenv for environment variable management, enhancing configuration flexibility.
2024-12-06 19:06:27 +07:00
tuankiet2s 46074c89b0 feat: enhance WorkshopMeetingRoomSchema with join info and LiveKit integration
- Added a new method `workshopMeetingRoomJoinInfo` to provide details for joining a workshop meeting room, including ID, token, and server URL.
- Integrated LiveKitService to generate tokens and retrieve server URLs, improving the functionality of the workshop meeting room.
- Updated the `init` method to include the new join info field, ensuring proper resolution and access control for users.
- Enhanced error handling to ensure unauthorized access is properly managed during the join process.
2024-12-06 17:03:45 +07:00
tuankiet2s 4931f382b3 feat: implement createServiceFeedback mutation in ServiceFeedbackSchema
- Added a new mutation field `createServiceFeedback` to allow users to submit feedback for services.
- Implemented validation checks to ensure only authorized users (CUSTOMER role) can submit feedback for completed orders.
- Included error handling for invalid ratings and comment length, enhancing data integrity and user experience.
- Improved the overall structure and clarity of the ServiceFeedbackSchema by integrating the new mutation.
2024-12-06 16:57:04 +07:00
tuankiet2s db2b3e9dd4 fix: enhance collaborator access check in DocumentSchema
- Updated the collaborator access check in the DocumentSchema to ensure that a user must have both writable and readable permissions to access a document.
- Improved error handling by providing a more precise condition for user access, enhancing security and clarity in document collaboration.
2024-12-06 16:34:49 +07:00
tuankiet2s 6d28d74351 refactor: unify logging messages in CronService for consistency
- Updated log messages in the CronService to use a consistent logger context ('CronService') across all scheduled tasks.
- Improved traceability and readability of log outputs by standardizing the log context, enhancing debugging capabilities.
2024-12-05 22:56:22 +07:00
tuankiet2s eb05610b23 refactor: streamline import statements in GraphQL service and ServiceSchema
- Consolidated import paths in graphql.service.ts and service.schema.ts to use relative paths for improved organization and consistency.
- Enhanced code readability by reducing unnecessary line breaks in import statements.
2024-12-05 22:51:48 +07:00
tuankiet2s bbec8aba03 refactor: update import paths in GraphQL module for consistency
- Changed import paths in graphql.module.ts to use relative paths for better organization and consistency.
- Enhanced logging in the GraphQL module by adding the module name to log messages, improving traceability during debugging.
2024-12-05 22:49:53 +07:00
tuankiet2s 6eafc6d5ef fix: improve error handling in GraphQL connection parameters
- Replaced error throws with logging for missing connection parameters in the GraphQL module.
- Enhanced the logging mechanism to provide better insights during connection failures, improving overall debugging and monitoring capabilities.
2024-12-05 22:47:26 +07:00
tuankiet2s de46499288 feat: add notification messaging for service approval and rejection in ServiceSchema
- Implemented user notification system by creating messages in the database when a service is approved or rejected.
- Utilized the new Message and PubSubEvent classes to handle notifications effectively.
- Enhanced user experience by informing users of service status changes through direct messages.
2024-12-05 22:41:25 +07:00
tuankiet2s 37b0086b4d feat: update file output paths and add feedback tracking to service schema
- Modified file output paths in LiveKitRoomService to utilize the BUCKET_NAME environment variable for dynamic S3 storage.
- Introduced a new `feedbacked` field in ServiceSchema to track whether a user has provided feedback for a service, enhancing user interaction capabilities.
- Cleaned up the ServiceFeedback schema by refining the resolve function for better clarity and consistency.
2024-12-05 22:11:40 +07:00
tuankiet2s 1b7329bb44 feat: add completedOrders field to Order schema and enhance workshop subscription error handling
- Introduced a new `completedOrders` field in the Order schema to retrieve a list of completed orders for the authenticated user, filtering by order status and schedule dates.
- Enhanced error handling in the WorkshopSubscription schema to prevent retrieval in subscription context, improving the robustness of the API.
- Updated imports in order.schema.ts to include additional status types from Prisma for better functionality.
2024-12-05 21:31:38 +07:00
tuankiet2s 0d973a6544 refactor: update getRoomRecordUrl method in MinioService for improved promise handling
- Changed the implementation of the `getRoomRecordUrl` method to use `await` with the Promise constructor for better readability and consistency.
- This adjustment enhances the asynchronous handling of the method, ensuring a more straightforward promise resolution process.
2024-12-05 21:14:00 +07:00
tuankiet2s 10df93d534 feat: add record URL retrieval to MeetingRoom schema and enhance MinioService
- Introduced a new field `recordUrl` in the MeetingRoom schema to fetch the presigned URL for meeting room recordings.
- Implemented `getRoomRecordUrl` method in MinioService to retrieve the recording URL from Minio, enhancing the service's functionality.
- Updated imports in MeetingRoom schema to include MinioService for the new functionality.
2024-12-05 21:10:45 +07:00
tuankiet2s 62662b0256 chore: clean up workshop subscription schema and add subscribed workshops field
- Removed unnecessary line breaks in the workshop subscription schema for improved readability.
- Consolidated import statements for better organization.
- Added a new field `subscribedWorkshops` to retrieve a list of workshops the current user is subscribed to, enhancing the schema's functionality.
- Streamlined error handling in the subscription logic for clarity.
2024-12-05 19:56:20 +07:00
tuankiet2s 9d64a199e2 refactor: update LiveKit egress service and module structure
- Removed the `livekit.egress.ts` file and replaced it with `livekit.egress.service.ts` for better clarity and consistency in naming.
- Updated `livekit.module.ts` to reflect the new import path for the `LiveKitEgressService`.
- Enhanced `livekit.room.service.ts` to utilize the new egress service structure, including improved egress configuration for recording sessions with dynamic file output settings.
- Removed the `rootDir` property from `tsconfig.json` to streamline the TypeScript configuration.
2024-12-05 19:35:17 +07:00
tuankiet2s 7699a07d1d chore: remove redundant Docker Compose down command in CI workflow
- Eliminated the `docker compose down` command from the CI workflow to streamline the build and deployment process. This change simplifies the CI configuration and enhances efficiency by reducing unnecessary steps.
2024-12-05 18:47:31 +07:00
tuankiet2s 253dbc783b chore: simplify Docker Compose commands in CI workflow
- Updated the CI workflow to streamline Docker Compose commands by replacing separate build and up commands with a single `docker compose up --build -d` command. This change enhances the efficiency of the CI process by reducing the number of steps required to start the services.
2024-12-05 18:46:28 +07:00
tuankiet2s 14edf629bd chore: update Dockerfile to include .nvmrc and .npmrc files
- Added .nvmrc and .npmrc files to the Docker image for consistent Node.js versioning and npm configuration.
- Removed the direct copy of the prisma directory to streamline the build process.
2024-12-05 18:42:16 +07:00
tuankiet2s 2033d0ec26 feat: enhance Docker configuration and update environment variables
- Updated .dockerignore to include additional files and directories for better Docker build context management.
- Modified compose.yaml to add BASE_URL and change BUCKET_NAME to improve environment configuration.
- Refactored Dockerfile to implement a multi-stage build for optimized image size and performance.
- Updated package.json to include a new script for production Prisma generation.
- Adjusted tsconfig files to refine project structure and exclude unnecessary directories.
- Removed delta.mdx.txt file from OpenAI instructions to streamline the service.
- Updated package-lock.json and package.json to upgrade Prisma and related dependencies for improved functionality.
2024-12-05 18:37:34 +07:00
tuankiet2s ac2014079f feat: add listRecords method to MinioService and update start:dev script in package.json
- Introduced a new method `listRecords` in MinioService for listing objects in a specified room's records.
- Updated the `start:dev` script in package.json to remove debugging options for a cleaner development experience.
2024-12-05 17:13:11 +07:00
tuankiet2s 74656dd4d9 chore: update subproject commit reference for epess-database 2024-12-05 16:51:53 +07:00
tuankiet2s 0b3f4d6728 feat: update LiveKit configuration and enhance collaboration session handling
- Updated the `livekit-server-sdk` version to 2.9.2 for improved functionality.
- Refactored `LiveKitEgressService` to include validation for required environment variables and added a method to stop recording.
- Enhanced `LiveKitRoomService` to validate environment variables and dynamically set egress configurations for recording sessions.
- Modified `CollaborationSessionSchema` to correct the relation name for `chatRoom` and updated the schema to reflect the new structure.
- Improved error logging for better traceability during collaboration session creation.
2024-12-05 16:51:19 +07:00
tuankiet2s 7248ea257f feat: update collaborator assignment in CollaborationSessionSchema
- Changed the logic for assigning collaborators in the CollaborationSessionSchema to use participant IDs from the scheduleDate instead of the current user's ID.
- This update enhances the collaboration functionality by ensuring that all relevant participants are included in the session.
2024-12-04 14:00:07 +07:00
tuankiet2s 3d670ad0fc feat: add recording bucket configuration and update LiveKit credentials in compose.yaml
- Introduced RECORDING_BUCKET_NAME environment variable for managing recordings.
- Updated LiveKit API key and secret for enhanced security and access control.
2024-12-04 13:58:05 +07:00
tuankiet2s afebc411af feat: enhance session management and improve webhook handling in ClerkService
- Made webhook and dispatchEvent methods asynchronous for better event processing.
- Integrated Redis for session invalidation, ensuring sessions are deleted upon specific Clerk events.
- Improved overall responsiveness and reliability of session management in ClerkService.
2024-12-04 13:54:55 +07:00
tuankiet2s a516dce800 chore: update Node version and enhance debugging capabilities
- Removed .nvmrc file to eliminate version locking.
- Updated Dockerfile to use Node 22.6.0-alpine for improved performance and security.
- Modified package.json to enhance the 'start:dev' script with debugging options.
- Added new launch configuration in VSCode for attaching to Node processes by PID.
- Cleaned up settings.json by removing unused configurations.
- Refactored main.ts to simplify the bootstrap process.
- Enhanced logging in OrderSchema and ScheduleSchema for better traceability of operations.
2024-12-03 22:46:23 +07:00
tuankiet2s 951d61f3ac feat: improve schedule querying with flexible filtering and pagination
- Updated ScheduleSchema to enhance the querying logic for schedules by allowing dynamic filtering, ordering, and pagination.
- Replaced static customerId filtering with flexible arguments for filtering, ordering, skipping, and taking results.
- This change increases the versatility of schedule retrieval based on user-defined criteria.
2024-12-03 21:10:14 +07:00
tuankiet2s 6f5db20324 feat: enhance schedule querying logic based on user roles in ScheduleSchema
- Updated ScheduleSchema to implement role-based querying for schedules.
- Added logic to handle different user roles: CUSTOMER, CENTER_MENTOR, and CENTER_OWNER.
- Improved error handling for cases where the center is not found for mentors and owners.
- This change enhances the flexibility and usability of the schedule querying functionality.
2024-12-03 21:06:22 +07:00
tuankiet2s 84a9f7dd4f feat: enhance order description handling with lodash utility
- Added lodash to the OrderSchema for improved string manipulation.
- Updated the payment creation logic to use lodash for generating a cleaner description from the service name, limiting it to the first 10 words and removing diacritics.
- This change enhances the readability and consistency of order descriptions in payment processing.
2024-12-03 20:43:19 +07:00
tuankiet2s 367fc09c6c feat: enhance user validation and center owner checks in CenterMentorSchema
- Updated the CenterMentorSchema to include user validation by fetching user information based on email.
- Implemented error handling to throw an error if the user is not found.
- Modified the logic to block center owners from being invited as mentors by checking against the user's ID instead of the email.
- Improved overall error messaging for better clarity when invitation conditions are not met.
2024-12-03 19:53:59 +07:00
tuankiet2s aaffb0c26b feat: make webhook and dispatchEvent methods asynchronous in ClerkService
- Updated the webhook method to be asynchronous, allowing for better handling of asynchronous operations.
- Changed the dispatchEvent method to be asynchronous to improve event processing and ensure proper handling of event data.
- These changes enhance the responsiveness and reliability of the ClerkService when processing webhooks and dispatching events.
2024-12-03 19:35:58 +07:00
tuankiet2s 9f9f595fee feat: integrate Redis for session invalidation in ClerkService
- Added RedisService to ClerkService for managing session invalidation.
- Updated event handlers (eventSessionRevoked, eventSessionRemoved, eventSessionEnded, eventEmailCreated) to asynchronously delete sessions from Redis upon specific events.
- Enhanced session management by ensuring sessions are properly invalidated in response to Clerk events.
2024-12-03 19:35:12 +07:00
tuankiet2s 029f21645b chore: remove Realtime module and related files
- Deleted RealtimeModule, RealtimeService, and RealtimeSchema to streamline the codebase and remove unused functionality.
- This cleanup helps improve maintainability and reduces complexity in the project.
2024-12-03 19:18:30 +07:00
tuankiet2s b0317b0660 refactor: update configuration constants and clean up package scripts
- Modified time configuration constants in appconfig.constant.ts to reflect new operational hours.
- Removed linting and prettier scripts from package.json to streamline the build process.
2024-12-03 18:19:08 +07:00
tuankiet2s 81e6192974 feat: add room egress functionality to LiveKitRoomService
- Introduced RoomEgress to enable recording of meeting rooms with S3 storage configuration.
- Updated createServiceMeetingRoom method to include egress settings for room recording.
- Enhanced integration with LiveKit by allowing dynamic file path generation for recordings.
2024-12-03 17:42:18 +07:00
tuankiet2s a6c511a2de feat: enhance collaboration session and LiveKit integration
- Added LiveKitRoomService to manage meeting room creation and recording functionalities.
- Updated CollaborationSessionSchema to create a LiveKit room upon new collaboration session creation.
- Introduced meetingRoomJoinInfo field in MeetingRoomSchema to provide join tokens and server URLs for meeting rooms.
- Improved LiveKitService to include user metadata in token generation and added a method to retrieve the server URL.
- Enhanced error handling and authorization checks across schemas to ensure proper access control for collaboration sessions and meeting rooms.
2024-12-03 17:37:47 +07:00
tuankiet2s 2b92f3bf5f feat: add validation to prevent center owners and mentors from being invited to their own centers
- Implemented checks in CenterMentorSchema to block center owners from being invited as mentors.
- Added validation to prevent mentors from being invited to their own centers or centers they already mentor.
- Enhanced error handling to provide clear feedback when invitation conditions are not met.
2024-12-03 16:18:26 +07:00
tuankiet2s 7021aa7f20 refactor: update README and document schema for improved clarity and functionality
- Revised README.md to provide a clearer project overview, installation instructions, and service descriptions, enhancing onboarding for new developers.
- Removed unnecessary comments in document.schema.ts to streamline the code and improve readability.
- Updated the LiveKit service descriptions in the README to reflect the integration of new functionalities and services.
2024-12-02 22:52:41 +07:00
tuankiet2s c94f47f28c feat: add removeCollaborator mutation to DocumentSchema
- Introduced a new mutation to allow document owners to remove collaborators from a document.
- Implemented authorization checks to ensure only the document owner can perform this action.
- Enhanced error handling for cases where the document is not found or the user is not the owner.
2024-12-02 22:46:46 +07:00
tuankiet2s e937330398 refactor: improve document access validation in DocumentSchema
- Enhanced authorization checks in DocumentSchema to ensure users must either be the document owner or a writable collaborator.
- Consolidated validation logic for better readability and maintainability, improving error handling for unauthorized access.
2024-12-02 21:36:08 +07:00
tuankiet2s 02bc5fe691 refactor: enhance authorization checks and update meeting room collaboration logic
- Updated error messages in DocumentSchema to use 'Unauthorized' for better clarity on access issues.
- Removed the deprecated testUpdateDocument field from DocumentSchema to streamline the schema.
- Introduced a new updateMeetingRoomCollaborators field in MeetingRoomSchema to manage collaborator additions and removals, ensuring proper authorization checks are in place.
- Improved overall error handling for unauthorized access in both DocumentSchema and MeetingRoomSchema.
2024-12-02 21:25:07 +07:00
tuankiet2s 542312b7d8 fix: improve error handling in DocumentSchema for document page retrieval
- Updated the document page retrieval logic to handle errors gracefully by using a try-catch block, preventing the application from throwing an error if the document page is not found.
- Simplified the validation check for document ownership and collaboration access by consolidating conditions into a single line for better readability.
2024-12-02 17:32:49 +07:00