Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add sales-report-service #263

Merged
merged 20 commits into from
Aug 29, 2024
Merged

Conversation

JustSamuel
Copy link
Contributor

@JustSamuel JustSamuel commented Aug 15, 2024

Description

Implements a new Sales Reporting function, as described in #260 and marked as a TODO here #259.

This is SO much faster. It is not even funny, aggregating the whole database is instant. This is because the new service writes queries instead of fetching data and computing the statistics itself. This is how it should always have but the previous reporting function got some scope creep to try and make it more versatile.

This leaves the old reporting untouched, for backwards compatability.

Related issues/external references

Types of changes

  • New feature (non-breaking change which adds functionality)

@JustSamuel JustSamuel force-pushed the feature/sales-report-service branch 2 times, most recently from d3e1876 to b75b5e3 Compare August 20, 2024 16:40
Copy link

github-actions bot commented Aug 20, 2024

SudoSOS Coverage Report

Commit: cf504da
Base: develop@825e45f

Type Base This PR
Total Statements Coverage  86.27%  86.44% (+0.17%)
Total Branches Coverage  84.8%  84.58% (-0.22%)
Total Functions Coverage  87.78%  88.08% (+0.3%)
Total Lines Coverage  86.32%  86.5% (+0.18%)
Details (changed files)
FileStatementsBranchesFunctionsLines
Details (all files)
FileStatementsBranchesFunctionsLines
/src/index.ts 83.43% 50% 33.33% 83.76%
/src/authentication/token-handler.ts 100% 100% 100% 100%
/src/controller/authentication-controller.ts 85.71% 94.73% 96% 86.14%
/src/controller/authentication-secure-controller.ts 88.23% 100% 100% 88.23%
/src/controller/balance-controller.ts 78.04% 50% 100% 78.04%
/src/controller/banner-controller.ts 82.52% 95.45% 100% 82.52%
/src/controller/base-controller.ts 100% 100% 100% 100%
/src/controller/container-controller.ts 85.96% 87.5% 100% 85.45%
/src/controller/debtor-controller.ts 84.17% 69.23% 100% 87.87%
/src/controller/event-controller.ts 82.66% 100% 100% 82.66%
/src/controller/event-shift-controller.ts 75.82% 93.33% 100% 75.82%
/src/controller/invoice-controller.ts 79.78% 84.09% 92.3% 79.55%
/src/controller/payout-request-controller.ts 71.29% 82.14% 84.61% 71.29%
/src/controller/point-of-sale-controller.ts 83.01% 84.37% 100% 83%
/src/controller/product-category-controller.ts 82.45% 100% 100% 82.45%
/src/controller/product-controller.ts 85.6% 90% 100% 86.77%
/src/controller/rbac-controller.ts 87.58% 93.75% 100% 87.32%
/src/controller/root-controller.ts 82.14% 100% 100% 82.14%
/src/controller/simple-file-controller.ts 11.62% 0% 0% 11.62%
/src/controller/stripe-controller.ts 92.59% 100% 100% 92.59%
/src/controller/stripe-webhook-controller.ts 97.14% 100% 87.5% 97.14%
/src/controller/test-controller.ts 33.33% 100% 0% 33.33%
/src/controller/transaction-controller.ts 85.14% 96.96% 100% 84.69%
/src/controller/transfer-controller.ts 84.21% 94.73% 100% 83.63%
/src/controller/user-controller.ts 83.49% 94.33% 100% 83.36%
/src/controller/vat-group-controller.ts 87.8% 100% 100% 87.8%
/src/controller/voucher-group-controller.ts 79.41% 83.33% 100% 79.41%
/src/controller/write-off-controller.ts 85.45% 100% 100% 85.45%
/src/controller/request/file-request.ts 0% 0% 0% 0%
/src/controller/request/validators/container-request-spec.ts 100% 100% 100% 100%
/src/controller/request/validators/general-validators.ts 92.3% 83.33% 88.88% 89.74%
/src/controller/request/validators/invoice-request-spec.ts 90% 72.22% 100% 97.5%
/src/controller/request/validators/point-of-sale-request-spec.ts 95% 75% 100% 94.11%
/src/controller/request/validators/product-request-spec.ts 90.32% 72.72% 100% 90%
/src/controller/request/validators/rbac-request-spec.ts 100% 100% 100% 100%
/src/controller/request/validators/string-spec.ts 100% 100% 100% 100%
/src/controller/request/validators/update-local-request-spec.ts 100% 100% 100% 100%
/src/controller/request/validators/update-nfc-request-spec.ts 100% 100% 100% 100%
/src/controller/request/validators/update-pin-request-spec.ts 100% 100% 100% 100%
/src/controller/request/validators/user-request-spec.ts 86.95% 66.66% 85.71% 88.88%
/src/controller/request/validators/validation-errors.ts 86.84% 100% 60% 100%
/src/controller/response/dinero.ts 0% 0% 0% 0%
/src/database/database.ts 95.23% 62.5% 33.33% 97.56%
/src/database/schema.ts 92% 50% 50% 95.83%
/src/entity/banner.ts 100% 100% 100% 100%
/src/entity/base-entity-without-id.ts 100% 100% 100% 100%
/src/entity/base-entity.ts 100% 100% 100% 100%
/src/entity/server-setting.ts 84.61% 50% 100% 100%
/src/entity/vat-group.ts 100% 100% 100% 100%
/src/entity/authenticator/authentication-method.ts 100% 100% 100% 100%
/src/entity/authenticator/ean-authenticator.ts 100% 100% 100% 100%
/src/entity/authenticator/hash-based-authentication-method.ts 100% 100% 100% 100%
/src/entity/authenticator/key-authenticator.ts 100% 100% 100% 100%
/src/entity/authenticator/ldap-authenticator.ts 100% 100% 100% 100%
/src/entity/authenticator/local-authenticator.ts 100% 100% 100% 100%
/src/entity/authenticator/member-authenticator.ts 100% 100% 100% 100%
/src/entity/authenticator/nfc-authenticator.ts 100% 100% 100% 100%
/src/entity/authenticator/pin-authenticator.ts 100% 100% 100% 100%
/src/entity/authenticator/reset-token.ts 100% 100% 100% 100%
/src/entity/container/container-revision.ts 95.23% 100% 83.33% 92.85%
/src/entity/container/container.ts 100% 100% 100% 100%
/src/entity/event/event-shift-answer.ts 100% 100% 100% 100%
/src/entity/event/event-shift.ts 100% 100% 100% 100%
/src/entity/event/event.ts 100% 100% 100% 100%
/src/entity/file/banner-image.ts 100% 100% 100% 100%
/src/entity/file/base-file.ts 100% 100% 100% 100%
/src/entity/file/invoice-pdf.ts 100% 100% 100% 100%
/src/entity/file/payout-request-pdf.ts 100% 100% 100% 100%
/src/entity/file/pdf-file.ts 100% 100% 100% 100%
/src/entity/file/product-image.ts 100% 100% 100% 100%
/src/entity/fine/fine.ts 100% 100% 100% 100%
/src/entity/fine/fineHandoutEvent.ts 100% 100% 100% 100%
/src/entity/fine/userFineGroup.ts 100% 100% 100% 100%
/src/entity/invoices/invoice-entry.ts 100% 100% 100% 100%
/src/entity/invoices/invoice-status.ts 100% 100% 100% 100%
/src/entity/invoices/invoice.ts 100% 100% 100% 100%
/src/entity/point-of-sale/point-of-sale-revision.ts 94.44% 100% 75% 92.3%
/src/entity/point-of-sale/point-of-sale.ts 100% 100% 100% 100%
/src/entity/point-of-sale/product-ordering.ts 100% 100% 100% 100%
/src/entity/product/product-category.ts 100% 100% 100% 100%
/src/entity/product/product-revision.ts 96.55% 100% 83.33% 95.45%
/src/entity/product/product.ts 100% 100% 100% 100%
/src/entity/rbac/assigned-role.ts 100% 100% 100% 100%
/src/entity/rbac/permission.ts 100% 100% 100% 100%
/src/entity/rbac/role-user-type.ts 100% 100% 100% 100%
/src/entity/rbac/role.ts 100% 100% 100% 100%
/src/entity/stripe/stripe-deposit.ts 100% 100% 100% 100%
/src/entity/stripe/stripe-payment-intent-status.ts 100% 100% 100% 100%
/src/entity/stripe/stripe-payment-intent.ts 100% 100% 100% 100%
/src/entity/transactions/balance.ts 100% 100% 100% 100%
/src/entity/transactions/flagged-transaction.ts 100% 100% 100% 100%
/src/entity/transactions/payout-request-status.ts 100% 100% 100% 100%
/src/entity/transactions/payout-request.ts 100% 100% 100% 100%
/src/entity/transactions/sub-transaction-row.ts 100% 100% 100% 100%
/src/entity/transactions/sub-transaction.ts 100% 100% 100% 100%
/src/entity/transactions/transaction.ts 100% 100% 100% 100%
/src/entity/transactions/transfer.ts 100% 100% 100% 100%
/src/entity/transactions/write-off.ts 100% 100% 100% 100%
/src/entity/transformer/dinero-transformer.ts 100% 100% 100% 100%
/src/entity/user/invoice-user.ts 100% 100% 100% 100%
/src/entity/user/local-user.ts 100% 100% 100% 100%
/src/entity/user/user-voucher-group.ts 100% 100% 100% 100%
/src/entity/user/user.ts 97.77% 75% 100% 100%
/src/entity/user/voucher-group.ts 100% 100% 100% 100%
/src/errors/index.ts 100% 100% 0% 100%
/src/errors/not-implemented-error.ts 20% 0% 0% 20%
/src/files/initialize.ts 100% 50% 100% 100%
/src/files/response.ts 28.57% 100% 0% 28.57%
/src/files/storage/disk-storage.ts 82.14% 83.33% 60% 82.14%
/src/files/storage/file-storage.ts 100% 100% 100% 100%
/src/files/storage/index.ts 100% 100% 50% 100%
/src/files/storage/locations.ts 100% 100% 100% 100%
/src/gewis/gewis.ts 81.25% 44.44% 75% 89.65%
/src/gewis/controller/gewis-authentication-controller.ts 87.5% 75% 100% 87.5%
/src/gewis/database/seed.ts 100% 100% 100% 100%
/src/gewis/entity/gewis-user.ts 100% 100% 100% 100%
/src/gewis/helpers/gewis-helper.ts 100% 90% 100% 100%
/src/gewis/service/gewisdb-service.ts 87.67% 91.3% 80% 89.39%
/src/helpers/ad.ts 90.9% 100% 100% 90.9%
/src/helpers/bindings.ts 100% 100% 100% 100%
/src/helpers/database.ts 100% 100% 100% 100%
/src/helpers/hash.ts 100% 100% 100% 100%
/src/helpers/ordering.ts 90.9% 83.33% 100% 90%
/src/helpers/pagination.ts 100% 85.71% 100% 100%
/src/helpers/pdf.ts 100% 50% 100% 100%
/src/helpers/query-filter.ts 91.66% 90.9% 85.71% 93.75%
/src/helpers/raw-body.ts 100% 100% 100% 100%
/src/helpers/revision-to-response.ts 91.3% 66.66% 88.88% 95.23%
/src/helpers/specification-validation.ts 97.29% 100% 88.88% 96.87%
/src/helpers/timestamps.ts 58.82% 42.85% 66.66% 56.25%
/src/helpers/token-helper.ts 100% 100% 100% 100%
/src/helpers/transaction-mapper.ts 76.71% 100% 64% 77.94%
/src/helpers/validators.ts 93.33% 90.54% 100% 96.34%
/src/mailer/index.ts 100% 100% 100% 100%
/src/mailer/mail-body-generator.ts 91.66% 83.33% 100% 91.66%
/src/mailer/mail-message.ts 100% 100% 100% 100%
/src/mailer/mailer.ts 100% 100% 100% 100%
/src/mailer/transporter.ts 100% 100% 100% 100%
/src/mailer/messages/changed-pin.ts 85.71% 100% 0% 85.71%
/src/mailer/messages/forgot-event-planning.ts 76.92% 100% 57.14% 76.92%
/src/mailer/messages/hello-world.ts 100% 100% 100% 100%
/src/mailer/messages/index.ts 100% 100% 100% 100%
/src/mailer/messages/mail-content-builder.ts 81.81% 56.25% 100% 81.81%
/src/mailer/messages/membership-expiry-notification.ts 86.66% 50% 66.66% 86.66%
/src/mailer/messages/password-reset.ts 33.33% 0% 0% 33.33%
/src/mailer/messages/user-debt-notification.ts 85.71% 50% 60% 85.71%
/src/mailer/messages/user-got-fined.ts 76.92% 100% 57.14% 76.92%
/src/mailer/messages/user-will-get-fined.ts 70.37% 50% 60% 70.37%
/src/mailer/messages/welcome-to-sudosos.ts 85.71% 50% 60% 85.71%
/src/mailer/messages/welcome-with-reset.ts 85.71% 50% 60% 85.71%
/src/middleware/policy-middleware.ts 100% 100% 100% 100%
/src/middleware/request-validator-middleware.ts 92.3% 83.33% 100% 100%
/src/middleware/restriction-middleware.ts 93.75% 92.85% 75% 100%
/src/middleware/token-middleware.ts 100% 100% 100% 100%
/src/migrations/1707251162194-invoice-refactor.ts 5.71% 0% 0% 6.06%
/src/migrations/1720608140757-soft-deletes.ts 25% 100% 0% 25%
/src/migrations/1720610649657-payout-request-pdf.ts 12.5% 100% 0% 14.28%
/src/migrations/1720624912260-database-rbac.ts 13.72% 0% 4.76% 14.43%
/src/migrations/1721916495084-transfers-vat.ts 16.66% 0% 0% 18.18%
/src/migrations/1722004753128-write-offs.ts 23.8% 0% 0% 26.31%
/src/migrations/1722022351000-pos-cashiers.ts 33.33% 100% 0% 33.33%
/src/migrations/1722083254200-server-settings.ts 50% 100% 0% 50%
/src/migrations/1722084520361-pos-users.ts 21.05% 100% 0% 22.22%
/src/migrations/1722118077157-invoice-rework.ts 13.33% 0% 0% 14.28%
/src/migrations/1722517212441-nested-product-categories.ts 15.38% 100% 0% 16.66%
/src/migrations/1722869409448-stripe-payment-intents.ts 11.11% 100% 16.66% 12.12%
/src/migrations/1724506999318-invoice-as-topups.ts 11.39% 0% 0% 12.5%
/src/rbac/default-roles.ts 100% 100% 100% 100%
/src/rbac/role-manager.ts 94% 82.35% 100% 97.61%
/src/server-settings/server-settings-store.ts 97.82% 92.85% 100% 100%
/src/server-settings/setting-defaults.ts 100% 100% 100% 100%
/src/service/ad-service.ts 86.31% 52.94% 90.32% 89.33%
/src/service/authentication-service.ts 92.98% 82.85% 100% 92.66%
/src/service/balance-service.ts 98.23% 90.14% 100% 98.01%
/src/service/banner-service.ts 95.23% 86.95% 100% 95.12%
/src/service/container-service.ts 97.02% 89.74% 100% 100%
/src/service/debtor-service.ts 98.3% 89.65% 100% 100%
/src/service/event-service.ts 100% 99% 100% 100%
/src/service/file-service.ts 96.34% 80.64% 100% 97.43%
/src/service/invoice-pdf-service.ts 100% 100% 100% 100%
/src/service/invoice-service.ts 90.36% 68.75% 92% 94%
/src/service/payout-request-pdf-service.ts 100% 100% 100% 100%
/src/service/payout-request-service.ts 98.03% 96.72% 95% 97.87%
/src/service/point-of-sale-service.ts 97.26% 88.46% 100% 100%
/src/service/product-category-service.ts 96.96% 92% 90.9% 96.77%
/src/service/product-service.ts 94.44% 80% 95.45% 94.87%
/src/service/rbac-service.ts 96.34% 91.66% 100% 100%
/src/service/report-pdf-service.ts 100% 100% 100% 100%
/src/service/report-service.ts 99% 61.11% 100% 100%
/src/service/stripe-service.ts 98.48% 96.96% 100% 98.38%
/src/service/transaction-service.ts 96.99% 87.15% 100% 96.71%
/src/service/transfer-service.ts 100% 97.5% 100% 100%
/src/service/user-service.ts 90.08% 61.9% 84.61% 93.51%
/src/service/vat-group-service.ts 97.33% 76.19% 93.33% 96.92%
/src/service/voucher-group-service.ts 100% 93.1% 100% 100%
/src/service/write-off-service.ts 100% 80% 100% 100%
/src/start/swagger.ts 82.5% 58.82% 66.66% 82.05%
/src/subscriber/index.ts 100% 100% 100% 100%
/src/subscriber/transaction-subscriber.ts 91.17% 80.76% 66.66% 92.85%
/src/subscriber/transfer-subscriber.ts 100% 87.5% 100% 100%

@Yoronex Yoronex mentioned this pull request Aug 22, 2024
@JustSamuel JustSamuel force-pushed the feature/sales-report-service branch 2 times, most recently from ecd1b92 to 6adadc6 Compare August 23, 2024 22:50
src/helpers/validators.ts Outdated Show resolved Hide resolved
src/service/report-service.ts Show resolved Hide resolved
@JustSamuel JustSamuel merged commit 078ed83 into develop Aug 29, 2024
6 checks passed
@JustSamuel JustSamuel deleted the feature/sales-report-service branch August 29, 2024 08:11
Copy link

🎉 This PR is included in version 0.6.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants