Files
gsinghpal 41d0908ade changes
2026-04-24 21:04:38 -04:00

14 KiB

Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_poynt (2026-04-22)

Corpus Check

  • 22 files · ~20,386 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 316 nodes · 492 edges · 30 communities detected
  • Extraction: 82% EXTRACTED · 18% INFERRED · 0% AMBIGUOUS · INFERRED: 87 edges (avg confidence: 0.72)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. PoyntController - 29 edges
  2. PaymentTransaction - 24 edges
  3. PoyntPaymentWizard - 20 edges
  4. PaymentProvider - 14 edges
  5. format_poynt_amount() - 13 edges
  6. PoyntRefundWizard - 11 edges
  7. AccountMove - 10 edges
  8. create() - 10 edges
  9. PoyntSettlementBatch - 8 edges
  10. build_order_payload() - 7 edges

Surprising Connections (you probably didn't know these)

  • poynt_process_card() --calls--> format_poynt_amount() [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/controllers/main.py → /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/utils.py
  • Override of payment to return Poynt-specific processing values. For dir --uses--> PoyntController [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/models/payment_transaction.py → /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/controllers/main.py
  • Override of payment to send a payment request to Poynt. --uses--> PoyntController [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/models/payment_transaction.py → /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/controllers/main.py
  • Create a Poynt order without a transaction. Used by the portal payment --uses--> PoyntController [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/models/payment_transaction.py → /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/controllers/main.py
  • Create a Poynt order and authorize the transaction. :return: Dict with --uses--> PoyntController [INFERRED] /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/models/payment_transaction.py → /Users/gurpreet/Github/Odoo-Modules/fusion_poynt/controllers/main.py

Communities

Community 0 - "Community 0"

Cohesion: 0.07 Nodes (33): PoyntController, _detect_card_brand_from_details(), PaymentTransaction, Parse the stored receipt JSON for use in QWeb templates. For refund tra, Return receipt values from the original sale transaction. Used by the r, Create a Poynt order without a transaction. Used by the portal payment, Create a Poynt order and authorize the transaction. :return: Dict with, Detect card brand from the payment_details string on a token. Tokens st (+25 more)

Community 1 - "Community 1"

Cohesion: 0.06 Nodes (32): poynt_return(), poynt_terminal_callback(), Process a transaction-related webhook event. :param str event_type: The, PaymentProvider, Make an authenticated API request to the Poynt REST API. :param str met, Exchange a Poynt Collect nonce for a long-lived payment token JWT. :par, Charge a stored payment token JWT via the tokenize/charge endpoint. :pa, Test the connection to Poynt by authenticating and fetching business info. (+24 more)

Community 2 - "Community 2"

Cohesion: 0.08 Nodes (22): _detect_card_brand(), _onchange_card_number(), _onchange_card_type(), _onchange_provider_id(), PoyntPaymentWizard, Add the surcharge invoice line if surcharge is enabled and not yet applied., Remove the surcharge line from the invoice if it was applied., Dispatch to the appropriate payment method. (+14 more)

Community 3 - "Community 3"

Cohesion: 0.1 Nodes (13): Fetch all transactions from Poynt API for a date range. Paginates throu, _cron_daily_settlement_sync(), PoyntSettlementBatch, PoyntSettlementLine, Open linked payments in a list view., Open linked invoices in a list view., Fetch Poynt transactions for this batch's transaction date., Match this batch to an Elavon bank statement line. (+5 more)

Community 4 - "Community 4"

Cohesion: 0.1 Nodes (14): _detect_card_brand(), poynt_process_card(), poynt_send_to_terminal(), poynt_terminal_status(), poynt_webhook(), Process an order-related webhook event. :param str event_type: The Poyn, Detect the card brand from the card number using BIN prefixes., Verify the webhook notification signature. :param dict event: The webho (+6 more)

Community 5 - "Community 5"

Cohesion: 0.14 Nodes (12): Return a serialized JSON of values needed to render the inline payment form., PoyntRefundWizard, Dispatch to referenced refund or non-referenced credit., Check on Poynt that the transaction and all linked children have not bee, Raise if the given Poynt transaction has been voided or refunded., Send a referenced REFUND using the original transaction's parentId., Send a non-referenced credit via cloud message to the terminal. Require, Process the Poynt API response for a referenced refund. (+4 more)

Community 6 - "Community 6"

Cohesion: 0.1 Nodes (9): AccountMove, Resend the Poynt payment/refund receipt email to the customer., Open the Poynt payment collection wizard for this invoice., Open the Poynt refund wizard for this credit note., Find the Poynt payment transaction from the reversed invoice. For credi, Open payment transactions linked to this invoice/credit note., Open the credit notes linked to this invoice that were refunded via Poynt., Find the Poynt transaction linked to this invoice or credit note. (+1 more)

Community 7 - "Community 7"

Cohesion: 0.17 Nodes (17): _getSelectedCardType(), _hideProcessingOverlay(), _initiatePaymentFlow(), _pollTerminalStatus(), _prefillBillingAddress(), _prepareInlineForm(), _processCardPayment(), _processDirectFlow() (+9 more)

Community 8 - "Community 8"

Cohesion: 0.38 Nodes (1): TerminalPaymentWidget

Community 9 - "Community 9"

Cohesion: 0.43 Nodes (1): PoyntPollAction

Community 10 - "Community 10"

Cohesion: 0.33 Nodes (2): Create an invoice (if needed) and open the Poynt payment wizard. This s, SaleOrder

Community 11 - "Community 11"

Cohesion: 0.33 Nodes (1): ResConfigSettings

Community 12 - "Community 12"

Cohesion: 0.4 Nodes (2): AccountPayment, Open the settlement batch linked to this payment.

Community 13 - "Community 13"

Cohesion: 0.5 Nodes (2): CustomerPortal, PoyntCustomerPortal

Community 14 - "Community 14"

Cohesion: 1.0 Nodes (0):

Community 15 - "Community 15"

Cohesion: 1.0 Nodes (0):

Community 16 - "Community 16"

Cohesion: 1.0 Nodes (0):

Community 17 - "Community 17"

Cohesion: 1.0 Nodes (0):

Community 18 - "Community 18"

Cohesion: 1.0 Nodes (0):

Community 19 - "Community 19"

Cohesion: 1.0 Nodes (0):

Community 20 - "Community 20"

Cohesion: 1.0 Nodes (1): Daily cron: fetch yesterday's transactions, match to today's deposit.

Community 21 - "Community 21"

Cohesion: 1.0 Nodes (1): Auto-inject payment_amount for confirmed orders with outstanding balance.

Community 22 - "Community 22"

Cohesion: 1.0 Nodes (1): Process the return from a Poynt payment flow. The customer is redirecte

Community 23 - "Community 23"

Cohesion: 1.0 Nodes (1): Process webhook notifications from Poynt. Poynt sends cloud hook events

Community 24 - "Community 24"

Cohesion: 1.0 Nodes (1): Handle callback from a Poynt terminal after a payment completes. The te

Community 25 - "Community 25"

Cohesion: 1.0 Nodes (1): Handle the OAuth2 authorization callback from Poynt. After a merchant a

Community 26 - "Community 26"

Cohesion: 1.0 Nodes (1): Return available Poynt terminals for the given provider. :param int pro

Community 27 - "Community 27"

Cohesion: 1.0 Nodes (1): Process a card payment through Poynt Cloud API. The frontend sends card

Community 28 - "Community 28"

Cohesion: 1.0 Nodes (1): Send a payment request to a Poynt terminal device. :return: Dict with s

Community 29 - "Community 29"

Cohesion: 1.0 Nodes (1): Poll the status of a terminal payment. :return: Dict with current payme

Knowledge Gaps

  • 89 isolated node(s): Generate a unique request ID for Poynt API idempotency., Build a full Poynt API URL for the given endpoint. :param str endpoint: The, Build the standard HTTP headers for a Poynt API request. :param str access_, Extract the urn:aid:... portion from a raw application ID string. Poynt dev, Create a self-signed JWT for Poynt OAuth2 token request. The JWT is signed (+84 more) These have ≤1 connection - possible missing edges or undocumented components.
  • Thin community Community 15 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 16 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 17 (1 nodes): __init__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 18 (1 nodes): __manifest__.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 19 (1 nodes): const.py Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 20 (1 nodes): Daily cron: fetch yesterday's transactions, match to today's deposit. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 21 (1 nodes): Auto-inject payment_amount for confirmed orders with outstanding balance. Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 22 (1 nodes): Process the return from a Poynt payment flow. The customer is redirecte Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 23 (1 nodes): Process webhook notifications from Poynt. Poynt sends cloud hook events Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 24 (1 nodes): Handle callback from a Poynt terminal after a payment completes. The te Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 25 (1 nodes): Handle the OAuth2 authorization callback from Poynt. After a merchant a Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 26 (1 nodes): Return available Poynt terminals for the given provider. :param int pro Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 27 (1 nodes): Process a card payment through Poynt Cloud API. The frontend sends card Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 28 (1 nodes): Send a payment request to a Poynt terminal device. :return: Dict with s Too small to be a meaningful cluster - may be noise or needs more connections extracted.
  • Thin community Community 29 (1 nodes): Poll the status of a terminal payment. :return: Dict with current payme Too small to be a meaningful cluster - may be noise or needs more connections extracted.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • Why does create() connect Community 0 to Community 1, Community 2, Community 3, Community 5, Community 6? High betweenness centrality (0.147) - this node is a cross-community bridge.
  • Why does PoyntController connect Community 0 to Community 1, Community 4? High betweenness centrality (0.078) - this node is a cross-community bridge.
  • Are the 24 inferred relationships involving PoyntController (e.g. with PaymentTransaction and Override of payment to return Poynt-specific processing values. For dir) actually correct? PoyntController has 24 INFERRED edges - model-reasoned connections that need verification.
  • Are the 8 inferred relationships involving format_poynt_amount() (e.g. with ._process_referenced_refund() and ._process_non_referenced_credit()) actually correct? format_poynt_amount() has 8 INFERRED edges - model-reasoned connections that need verification.
  • What connects Generate a unique request ID for Poynt API idempotency., Build a full Poynt API URL for the given endpoint. :param str endpoint: The, Build the standard HTTP headers for a Poynt API request. :param str access_ to the rest of the system? 89 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should Community 0 be split into smaller, more focused modules? Cohesion score 0.07 - nodes in this community are weakly interconnected.
  • Should Community 1 be split into smaller, more focused modules? Cohesion score 0.06 - nodes in this community are weakly interconnected.