roam/aweber/stripe-poller.svg
2021-10-01 17:48:18 -04:00

29 lines
No EOL
11 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="465px" preserveAspectRatio="none" style="width:772px;height:465px;background:#FFFFFF;" version="1.1" viewBox="0 0 772 465" width="772px" zoomAndPan="magnify"><defs><filter height="300%" id="f1b5p0k2q1lusu" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#f1b5p0k2q1lusu)" height="75.9316" style="stroke:#000000;stroke-width:2.0;" width="519" x="40" y="57.4883"/><rect fill="#FFFFFF" filter="url(#f1b5p0k2q1lusu)" height="257.7949" style="stroke:#000000;stroke-width:2.0;" width="748" x="10" y="147.4199"/><rect fill="#FFFFFF" filter="url(#f1b5p0k2q1lusu)" height="167.8633" style="stroke:#000000;stroke-width:2.0;" width="728" x="20" y="230.3516"/><rect fill="#FFFFFF" filter="url(#f1b5p0k2q1lusu)" height="136.5527" style="stroke:#000000;stroke-width:2.0;" width="708" x="30" y="254.6621"/><rect fill="#FFFFFF" filter="url(#f1b5p0k2q1lusu)" height="46.6211" style="stroke:#000000;stroke-width:2.0;" width="519" x="40" y="337.5938"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="78" x2="78" y1="40.4883" y2="422.2148"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="487" x2="487" y1="40.4883" y2="422.2148"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="609" x2="609" y1="40.4883" y2="422.2148"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="699" x2="699" y1="40.4883" y2="422.2148"/><rect fill="#FEFECE" filter="url(#f1b5p0k2q1lusu)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="53" x="50" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="39" x="57" y="25.5352">Poller</text><rect fill="#FEFECE" filter="url(#f1b5p0k2q1lusu)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="53" x="50" y="421.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="39" x="57" y="441.75">Poller</text><rect fill="#FEFECE" filter="url(#f1b5p0k2q1lusu)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="119" x="426" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="433" y="25.5352">StripePayments</text><rect fill="#FEFECE" filter="url(#f1b5p0k2q1lusu)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="119" x="426" y="421.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="433" y="441.75">StripePayments</text><rect fill="#FEFECE" filter="url(#f1b5p0k2q1lusu)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="97" x="559" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83" x="566" y="25.5352">Integrations</text><rect fill="#FEFECE" filter="url(#f1b5p0k2q1lusu)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="97" x="559" y="421.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83" x="566" y="441.75">Integrations</text><rect fill="#FEFECE" filter="url(#f1b5p0k2q1lusu)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="54" x="670" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="677" y="25.5352">Stripe</text><rect fill="#FEFECE" filter="url(#f1b5p0k2q1lusu)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="54" x="670" y="421.2148"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="677" y="441.75">Stripe</text><path d="M40,57.4883 L114,57.4883 L114,64.4883 L104,74.4883 L40,74.4883 L40,57.4883 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="75.9316" style="stroke:#000000;stroke-width:2.0;" width="519" x="40" y="57.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="29" x="55" y="71.0566">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacing" textLength="146" x="129" y="70.123">[until last page of results]</text><polygon fill="#A80036" points="475.5,92.1094,485.5,96.1094,475.5,100.1094,479.5,96.1094" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="78.5" x2="481.5" y1="96.1094" y2="96.1094"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="385" x="85.5" y="91.3672">GET /stripe/events?since=&lt;timestamp&gt;[&amp;last_id=&lt;last_id&gt;]</text><polygon fill="#A80036" points="89.5,121.4199,79.5,125.4199,89.5,129.4199,85.5,125.4199" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="83.5" x2="486.5" y1="125.4199" y2="125.4199"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="145" x="95.5" y="120.6777">Return list of event IDs</text><path d="M10,147.4199 L84,147.4199 L84,154.4199 L74,164.4199 L10,164.4199 L10,147.4199 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="257.7949" style="stroke:#000000;stroke-width:2.0;" width="748" x="10" y="147.4199"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="29" x="25" y="160.9883">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacing" textLength="146" x="99" y="160.0547">[until last page of results]</text><polygon fill="#A80036" points="597.5,182.041,607.5,186.041,597.5,190.041,601.5,186.041" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="78.5" x2="603.5" y1="186.041" y2="186.041"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="192" x="85.5" y="181.2988">Get list of connected accounts</text><polygon fill="#A80036" points="89.5,211.3516,79.5,215.3516,89.5,219.3516,85.5,215.3516" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="83.5" x2="608.5" y1="215.3516" y2="215.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="201" x="95.5" y="210.6094">Return list of Stripe account IDs</text><path d="M20,230.3516 L94,230.3516 L94,237.3516 L84,247.3516 L20,247.3516 L20,230.3516 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="167.8633" style="stroke:#000000;stroke-width:2.0;" width="728" x="20" y="230.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="29" x="35" y="243.9199">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacing" textLength="101" x="109" y="242.9863">[for each account]</text><path d="M30,254.6621 L104,254.6621 L104,261.6621 L94,271.6621 L30,271.6621 L30,254.6621 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="136.5527" style="stroke:#000000;stroke-width:2.0;" width="708" x="30" y="254.6621"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="29" x="45" y="268.2305">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacing" textLength="146" x="119" y="267.2969">[until last page of results]</text><polygon fill="#A80036" points="687,289.2832,697,293.2832,687,297.2832,691,293.2832" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="78.5" x2="693" y1="293.2832" y2="293.2832"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="541" x="85.5" y="288.541">GET /v1/events?created[gte]=&lt;timestamp&gt;&amp;types[]=&lt;...&gt;[&amp;starting_after=&lt;last_id&gt;]</text><polygon fill="#A80036" points="89.5,318.5938,79.5,322.5938,89.5,326.5938,85.5,322.5938" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="83.5" x2="486.5" y1="322.5938" y2="322.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="145" x="95.5" y="317.8516">Return list of event IDs</text><path d="M40,337.5938 L102,337.5938 L102,344.5938 L92,354.5938 L40,354.5938 L40,337.5938 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="46.6211" style="stroke:#000000;stroke-width:2.0;" width="519" x="40" y="337.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="17" x="55" y="351.1621">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacing" textLength="339" x="117" y="350.2285">[is an AWeber Ecommerce event and event not in processed]</text><polygon fill="#A80036" points="475.5,372.2148,485.5,376.2148,475.5,380.2148,479.5,376.2148" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="78.5" x2="481.5" y1="376.2148" y2="376.2148"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="150" x="85.5" y="371.4727">POST /stripe/webhooks</text><!--MD5=[48df1bf072679854703e5e76fbe0fbf3]
@startuml
loop until last page of results
Poller -> StripePayments : GET /stripe/events?since=<timestamp>[&last_id=<last_id>]
StripePayments - -> Poller : Return list of event IDs
end
loop until last page of results
Poller -> Integrations : Get list of connected accounts
Integrations - -> Poller : Return list of Stripe account IDs
loop for each account
loop until last page of results
Poller -> Stripe : GET /v1/events?created[gte]=<timestamp>&types[]=<...>[&starting_after=<last_id>]
StripePayments - -> Poller : Return list of event IDs
alt is an AWeber Ecommerce event and event not in processed
Poller -> StripePayments : POST /stripe/webhooks
end
end
end
end
@enduml
PlantUML version 1.2021.10(Mon Aug 30 09:43:48 EDT 2021)
(GPL source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>