100 Commits

Author SHA1 Message Date
61d29a8f7e Add syncHash and syncImageHash fields to listing and variant schemas; implement sync fingerprinting for marketplace integration
This commit introduces new fields `syncHash` and `syncImageHash` to the `listing` and `listingVariant` schemas, enhancing the tracking of synchronization states. Additionally, a new module for sync fingerprinting is added, which includes functions to generate hashes for listings and their variants. The marketplace integration logic is updated to utilize these hashes for determining if updates are necessary, improving efficiency in syncing operations. Tests are also added to ensure the correctness of the new functionality and its integration with existing systems.
2026-08-29 22:34:11 +01:00
e98828bfc7 Update configuration and enhance marketplace integration with new policies
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
This commit modifies the log level in the configuration file from "trace" to "debug" for improved logging clarity. It also introduces new routes for fulfillment, return, and payment policies in the index file, enhancing the marketplace integration capabilities. Additionally, the initialization process is updated to start the marketplace worker, ensuring that the application can handle marketplace operations effectively. Various schemas are updated to include new fields and relationships for policies, improving the overall functionality and flexibility of the marketplace management system.
2026-08-29 00:47:55 +01:00
f5551f4f03 Refactor aggregateRollupsHistory function to improve rollup snapshotting
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit enhances the `aggregateRollupsHistory` function by restructuring the logic for filtering and processing audit logs, improving the accuracy of rollup snapshots over time. New utility functions are introduced to streamline the matching of objects against filters and to handle the existence of objects at specific timestamps. The overall flow is optimized to ensure that rollup calculations reflect the correct state of objects based on historical data, enhancing the reliability of data analysis and reporting.
2026-08-24 23:14:43 +01:00
9435d5c64c Add rollup statistics functionality to sales schemas
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit enhances the `client`, `listing`, and `marketplace` schemas by introducing rollup statistics and history tracking capabilities. New rollup configurations are added to count various states, such as 'active', 'inactive', and others specific to each schema. The `stats` and `history` static methods are implemented to aggregate data using the newly introduced `aggregateRollups` and `aggregateRollupsHistory` functions, improving data analysis and reporting for sales entities.
2026-08-24 23:02:47 +01:00
c57641518e Enhance inventory schemas with additional rollup configurations for stock types
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit adds new rollup configurations to the `filamentstock`, `partstock`, and `productstock` schemas to track the counts of different stock states: 'unconsumed', 'used', and 'consumed'. Additionally, the `stockevent` schema is updated to include rollup statistics for various stock types, improving the overall inventory management capabilities. Tests are also updated to mock new aggregate functions, ensuring comprehensive coverage of the new functionalities.
2026-08-24 22:54:09 +01:00
61ec9deecb Add utility functions for ObjectId handling and enhance expandObjectIds functionality
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit introduces several utility functions in `utils.js` to improve ObjectId handling, including `isByte`, `isTwelveByteBuffer`, and `objectIdToString`. The `expandObjectIds` function is updated to better handle various ObjectId formats, including BSON ObjectIds and serialized 12-byte buffers. Additionally, comprehensive tests are added in `utils.expandObjectIds.test.js` to verify the correct behavior of these enhancements, ensuring robust handling of ObjectId conversions and expansions.
2026-08-24 22:40:07 +01:00
8cd8ee6f94 Add stock quantity calculation to listing variant schema and enhance tests
This commit introduces a new utility function, `toId`, to handle ID conversions in the `listingvarient.schema.js` file. The `recalculate` method is updated to compute and update the stock quantity for listing variants based on product SKU and stock location. Additionally, a new test case is added in `stockQuantity.recalculate.test.js` to verify the correct behavior of stock quantity calculations before rolling up, ensuring comprehensive test coverage for this functionality.
2026-08-24 18:33:10 +01:00
e0f2870af3 Enhance test coverage by adding additional mock implementations for database and schema modules
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit expands the test setup in `stockQuantity.recalculate.test.js` and `shipments.test.js` by introducing new mock functions for various database operations, including `searchObjects`, `getPropertyValues`, and `listObjects`. These enhancements improve the isolation of tests and ensure that the tests can run independently of the actual database implementation. The updates also include mocks for sales order and marketplace schemas, further enriching the test environment and facilitating comprehensive testing of inventory-related functionalities.
2026-08-24 02:58:10 +01:00
5ff93be27c Add audit owner resolution and actor display name functions
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
This commit introduces a new module, `auditOwner.js`, which includes functions for resolving audit owner details and generating display names for actors. The `resolveAuditOwner` function determines the owner type based on the actor's object type, defaulting to 'user' if not specified. The `actorDisplayName` function formats the display name based on the actor's properties, enhancing the clarity of audit logs. Additionally, the `AUDIT_OWNER_TYPES` constant is exported for use in other modules. Updates to existing files incorporate these new functions for improved audit logging and notification handling.
2026-08-24 02:49:38 +01:00
8974d1e9da Add quantity field to document job schema and update related routes and services
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit introduces a new `quantity` field to the document job schema, ensuring it is required with a default value of 1. The routes and services for managing document jobs are updated to include this new field, allowing for its inclusion in both creation and editing processes. Additionally, the allowed filters and sorters are modified to accommodate the new `quantity` field, enhancing the overall functionality and flexibility of document job management.
2026-08-22 20:02:28 +01:00
0470f62e05 Refactor schema type handling and enhance utility functions in utils and database modules
This commit introduces several utility functions to improve schema type handling, including `getEmbeddedSchemaType` and `getObjectIdSchemaTypeFromPath`. The `getFilterFieldKind` function is updated to utilize these new utilities for better clarity and functionality. Additionally, the `getArrayParentPaths` function is renamed to `getArrayUnwindPaths` for improved readability, and the logic for fetching unique IDs is enhanced with a new `flattenRefIds` function. These changes streamline the code and enhance the overall management of schema references and array paths.
2026-08-22 20:02:21 +01:00
b0943f3fa0 Enhance document template schema and service with referenced templates functionality
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit introduces a new field, `referencedTemplates`, to the document template schema, allowing for the association of other document templates. It also adds utility functions for extracting references from template content and converting filter values to ObjectIds. The document template service is updated to recalculate and populate referenced templates when editing a document template. Additionally, route handlers are modified to support the new referenced templates in their population logic, improving the management of document templates.
2026-08-22 16:39:10 +01:00
97c44565a8 Implement EventManager for handling object events and enhance document template management
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
This commit introduces the `EventManager` class, which facilitates tracking and broadcasting object events using NATS and websockets. The `documenttemplate.schema.js` file is updated to change the `testObject` field type to `ObjectId` with a reference path, improving data integrity. Additionally, the document template service is enhanced with new functionalities for asynchronous rendering and progress reporting, utilizing Redis for storing render requests. Corresponding tests are added to ensure the correct functionality of the new event handling and document management features.
2026-08-22 12:56:05 +01:00
ff60d6cf09 Enhance document size and template management with padding options
This commit introduces new padding options for document sizes, allowing for customizable print padding and specific padding values (left, right, top, bottom). The document size schema has been updated to include these new fields, and corresponding route handlers have been modified to handle padding data during document size creation and editing. Additionally, the template manager has been updated to apply padding when rendering templates, ensuring that the layout respects the specified padding values. Tests have been added to verify the correct application of padding in both document sizes and templates, improving the overall document formatting capabilities.
2026-08-21 22:39:13 +01:00
bce5afad7e Implement caching and permission checks for user permissions
This commit introduces a caching mechanism for user permissions using Redis, enhancing performance by reducing database queries. The `permissions.js` file has been updated to include functions for saving and retrieving user permissions from Redis, as well as middleware for checking permissions in various routes. Additionally, tests have been added to ensure the correctness of the permission logic and caching behavior, improving the overall security and efficiency of the application.
2026-08-20 19:35:15 +01:00
1c51766da6 Add user group management functionality and refactor permission settings
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit introduces a new feature for managing user groups within the application, including the creation of a `usergroup.schema.js` file for the Mongoose schema and corresponding route handlers for CRUD operations. Additionally, the permission settings functionality has been refactored to use a singular `permissionSetting` model instead of the previous plural form. Tests have been added to ensure the functionality of both user groups and permission settings services, enhancing the application's capability to manage user roles and permissions effectively.
2026-08-20 15:04:52 +01:00
806a32d306 Add permission settings management functionality
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit introduces a new feature for managing permission settings within the application. It includes the creation of a new `permissions.js` file for handling permission logic, a corresponding Mongoose schema for permission settings, and route handlers for CRUD operations on permission settings. Additionally, tests have been added to ensure the functionality of the new permission settings service. This enhancement improves the application's capability to manage user permissions effectively.
2026-08-20 12:28:04 +01:00
3d4150c6cc Add mock for getModelByName in database tests to enhance test coverage
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-08-10 02:03:38 +01:00
234652f7b0 Enhance database utility functions for improved property value retrieval and reference handling
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
This update introduces several new functions in `database.js` to enhance the handling of Mongoose model references and property values. Key additions include `getObjectRefPathInfo`, `resolveMongooseModel`, and `fetchBasicObjectsByIds`, which improve the efficiency of fetching related objects based on property references. Additionally, the `getPropertyValues` function has been updated to support dynamic references and filtering, ensuring more robust data retrieval. Minor adjustments were also made to the `getJobPropertyValuesRouteHandler` to accommodate the new filtering capabilities.
2026-08-10 00:56:59 +01:00
d3adf00477 Add sortSidebarVisibility field to user settings schema
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This update introduces a new field, `sortSidebarVisibility`, to the user settings schema, allowing for more flexible management of sidebar visibility preferences. The field is defined as a mixed type with a default value of an empty object, enhancing the schema's capabilities for user customization.
2026-08-09 20:54:59 +01:00
6b80aee80a Refactor thumbnail creation logic in createFileThumbnails function to handle GCode file types and improve thumbnail source validation. Cleaned up whitespace and enhanced caching logic for better performance in database.js. 2026-08-01 15:10:59 +01:00
1e807beacf Implement neighbors caching and retrieval for various entities in the inventory and finance modules. Introduced new route handlers for fetching neighbors in invoices, payments, tax records, filament stocks, order items, part stocks, product stocks, purchase orders, shipments, stock audits, stock events, stock locations, and stock transfers. Updated allowed filters for improved query capabilities across these routes. Enhanced database.js with caching logic for neighbors, including cache invalidation on object updates.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-08-01 13:20:01 +01:00
6a9cd2a2ea Refactor Redis integration to use ioredis instead of redis, enhancing performance and compatibility. Updated connection handling and command syntax for improved functionality. Added new dependencies for ioredis and updated mongoose version in package.json.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-08-01 12:42:08 +01:00
e1b6814efd Enhanced gcodeFile schema to populate part information during validation, improving data integrity for parts. Updated service functions to reflect changes in population logic for parts, ensuring accurate data retrieval.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-26 21:21:30 +01:00
5a4fecbae0 Refactored editObject function in database.js to utilize a merged object for updates, improving code clarity and reducing redundancy. Updated printer schema to include a default ID generation method and added alerts handling in editPrinterRouteHandler for enhanced printer management.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-26 21:11:43 +01:00
0b3a911611 Added recalculation logic to printer schema for managing printer states based on activity and online status. Integrated editObject utility for state updates, enhancing printer state management. 2026-07-26 19:40:16 +01:00
5ee8f332e2 Enhanced filament schema and related service functions to include vendor information. Updated route handlers to support vendor population in filament queries and exports, improving data management and retrieval capabilities.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-07-26 19:07:41 +01:00
fa74c464f9 Added history tracking to inventory schemas (filament, part, product stocks) and stock events, enabling better state management and historical data retention. Updated related service functions to incorporate new history logic for stock events and recalculations.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-07-26 18:37:55 +01:00
9a22fd6452 Updated log level in config.json to 'trace' for more detailed logging. Refactored inventory schemas by removing redundant stock event calculation functions and integrating stock event recalculation logic into the stockevent schema, enhancing overall data management and performance. 2026-07-26 16:10:31 +01:00
8423db2858 Implemented a merge utility function for object updates in database.js to handle array merging correctly, enhancing cache update logic for improved data integrity.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-26 15:00:37 +01:00
4231d548cc Added sharp and blurhash dependencies, implemented thumbnail generation and retrieval functionality in the file management system. Updated database schema to include thumbnail metadata and enhanced route handlers for thumbnail access.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-07-26 03:07:23 +01:00
5e71afe246 Updated deleteObject function in database.js to convert ID values to strings before logging deletions and notifications, ensuring consistent data handling across operations.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-25 01:36:20 +01:00
287e74b682 Added new route handlers and service functions to retrieve distinct property values for various entities, including invoices, payments, tax records, filament stocks, and more. Updated corresponding routes to support these new functionalities across multiple management and production modules, enhancing data querying capabilities.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-07-24 23:19:48 +01:00
a42f953e9a Removed console.log statements across various files to clean up the code and improve performance. This includes logging related to audit logs, user notifications, database operations, and session management.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-23 21:44:32 +01:00
82ca27756d Refactored editObject function to flatten object ID references before updating the database, ensuring proper data structure. Added corresponding test case to verify the flattening functionality in update operations.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-20 02:28:13 +01:00
cb16385b33 Added printer and filament profile schemas, routes, and associated logic for managing profiles. Enhanced authentication for slicer uploads and integrated new routes for handling slicer-related operations. Updated database utilities and services to support new features, improving overall functionality and user experience.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-07-20 02:11:44 +01:00
e112ec4386 Implemented job editing functionality by adding an editJobRouteHandler and associated logic to update draft jobs. Enhanced job schema with a recalculate method to manage subjob creation and updates based on job quantity and printer assignments. Updated tests to cover new editing capabilities and ensure proper state checks.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-18 15:19:11 +01:00
5419b3fbd1 Added user settings schema to the database, defining user preferences and default settings. This new model includes fields for view mode, sidebar visibility, and timestamps for creation and updates, enhancing user customization capabilities.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-18 14:48:41 +01:00
9bba139998 Removed paymentDate field from payment schema and updated related route handlers to reflect this change, streamlining payment data management. 2026-07-18 14:00:44 +01:00
e192c04000 Enhanced courier service and listing schemas by adding cost-related fields and integrating courier services into listings. Updated route handlers and service logic to accommodate new fields, improving data management and retrieval capabilities.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-18 13:36:01 +01:00
ce6f396bcb Audit log fixes.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-07-13 22:59:49 +01:00
50eacb3974 Added text indexes to various schemas for improved search capabilities across finance, inventory, and management modules. Updated route handlers to include search functionality for invoices, payments, tax records, and inventory items, enhancing data retrieval efficiency.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-07-04 16:48:50 +01:00
710bfc6de6 Added searchObjects function to database module for enhanced querying capabilities, allowing searches by reference, ID, or text. Improved error handling and result formatting in the search process. 2026-07-04 16:43:50 +01:00
efb3fdbcb9 Refactored filament recalculation logic to utilize filament SKUs instead of order items, improving efficiency. Updated allowed filters in the filament SKUs route to include 'costWithTax' and modified population logic in the service for better data retrieval.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-06-21 23:59:33 +01:00
74a9139002 Removed 'fileName' field from part schema and corresponding route handlers to streamline data management and improve clarity in part creation and editing processes.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-06-21 23:15:35 +01:00
f74b85bb88 Added authorisation and decline functionality for payments, including new route handlers and schema updates to track authorisation and decline timestamps. Updated payment cancellation logic to reflect changes in payment states.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-06-21 22:32:57 +01:00
2996b1670f Refactored tax record management by moving tax record schema and routes to the finance directory, enhancing organization. Implemented CRUD operations for tax records in the new service and added corresponding tests for route handlers. 2026-06-21 22:23:14 +01:00
6e7419da67 Updated invoice schema to support dynamic reference types for 'from' and 'to' fields, and modified related service handlers to accommodate new 'fromType' and 'toType' properties.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
2026-06-21 19:08:20 +01:00
fd636c6c82 Fixed product SKUs.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit
2026-06-20 22:27:21 +01:00
af0934b163 Added product category support, including new routes, database schemas, and service updates. Enhanced existing product functionalities to incorporate product categories in filtering and population. 2026-06-14 23:51:51 +01:00