1 line
No EOL
12 KiB
XML
1 line
No EOL
12 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="SEQUENCE" height="571px" preserveAspectRatio="none" style="width:792px;height:571px;background:#FFFFFF;" version="1.1" viewBox="0 0 792 571" width="792px" zoomAndPan="magnify"><title>Listing removal by owner or moderator</title><defs/><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="309.7568" x="240.1731" y="27.9951">Listing removal by owner or moderator</text><g><title>Owner</title><rect fill="#000000" fill-opacity="0.00000" height="371.8594" width="8" x="26.856" y="118.5938"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5,5;" x1="30" x2="30" y1="118.5938" y2="490.4531"/></g><g><title>Next API</title><rect fill="#000000" fill-opacity="0.00000" height="371.8594" width="8" x="283.4023" y="118.5938"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5,5;" x1="286.6729" x2="286.6729" y1="118.5938" y2="490.4531"/></g><g><title>Postgres</title><rect fill="#000000" fill-opacity="0.00000" height="371.8594" width="8" x="594.9639" y="118.5938"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5,5;" x1="598.7935" x2="598.7935" y1="118.5938" y2="490.4531"/></g><g><title>Moderator</title><rect fill="#000000" fill-opacity="0.00000" height="371.8594" width="8" x="677.2793" y="118.5938"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5,5;" x1="681.1343" x2="681.1343" y1="118.5938" y2="490.4531"/></g><g><title>Public</title><rect fill="#000000" fill-opacity="0.00000" height="371.8594" width="8" x="754.2637" y="118.5938"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5,5;" x1="757.4243" x2="757.4243" y1="118.5938" y2="490.4531"/></g><g class="participant participant-head" data-participant="Owner"><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="45.7119" x="5" y="115.292">Owner</text><ellipse cx="30.856" cy="50.7969" fill="#E2E2F0" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M30.856,58.7969 L30.856,85.7969 M17.856,66.7969 L43.856,66.7969 M30.856,85.7969 L17.856,100.7969 M30.856,85.7969 L43.856,100.7969" fill="none" style="stroke:#181818;stroke-width:0.5;"/></g><g class="participant participant-tail" data-participant="Owner"><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="45.7119" x="5" y="502.4482">Owner</text><ellipse cx="30.856" cy="514.25" fill="#E2E2F0" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M30.856,522.25 L30.856,549.25 M17.856,530.25 L43.856,530.25 M30.856,549.25 L17.856,564.25 M30.856,549.25 L43.856,564.25" fill="none" style="stroke:#181818;stroke-width:0.5;"/></g><g class="participant participant-head" data-participant="API"><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="73.459" x="250.6729" y="87.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59.459" x="257.6729" y="107.292">Next API</text></g><g class="participant participant-tail" data-participant="API"><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="73.459" x="250.6729" y="489.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59.459" x="257.6729" y="509.4482">Next API</text></g><g class="participant participant-head" data-participant="DB"><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="60.3408" x="565.7935" y="115.292">Postgres</text><path d="M580.9639,66.2969 C580.9639,56.2969 598.9639,56.2969 598.9639,56.2969 C598.9639,56.2969 616.9639,56.2969 616.9639,66.2969 L616.9639,92.2969 C616.9639,102.2969 598.9639,102.2969 598.9639,102.2969 C598.9639,102.2969 580.9639,102.2969 580.9639,92.2969 L580.9639,66.2969" fill="#E2E2F0" style="stroke:#181818;stroke-width:0.5;"/><path d="M580.9639,66.2969 C580.9639,76.2969 598.9639,76.2969 598.9639,76.2969 C598.9639,76.2969 616.9639,76.2969 616.9639,66.2969" fill="none" style="stroke:#181818;stroke-width:0.5;"/></g><g class="participant participant-tail" data-participant="DB"><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="60.3408" x="565.7935" y="502.4482">Postgres</text><path d="M580.9639,515.75 C580.9639,505.75 598.9639,505.75 598.9639,505.75 C598.9639,505.75 616.9639,505.75 616.9639,515.75 L616.9639,541.75 C616.9639,551.75 598.9639,551.75 598.9639,551.75 C598.9639,551.75 580.9639,551.75 580.9639,541.75 L580.9639,515.75" fill="#E2E2F0" style="stroke:#181818;stroke-width:0.5;"/><path d="M580.9639,515.75 C580.9639,525.75 598.9639,525.75 598.9639,525.75 C598.9639,525.75 616.9639,525.75 616.9639,515.75" fill="none" style="stroke:#181818;stroke-width:0.5;"/></g><g class="participant participant-head" data-participant="Moderator"><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="72.29" x="642.1343" y="115.292">Moderator</text><ellipse cx="681.2793" cy="50.7969" fill="#E2E2F0" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M681.2793,58.7969 L681.2793,85.7969 M668.2793,66.7969 L694.2793,66.7969 M681.2793,85.7969 L668.2793,100.7969 M681.2793,85.7969 L694.2793,100.7969" fill="none" style="stroke:#181818;stroke-width:0.5;"/></g><g class="participant participant-tail" data-participant="Moderator"><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="72.29" x="642.1343" y="502.4482">Moderator</text><ellipse cx="681.2793" cy="514.25" fill="#E2E2F0" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M681.2793,522.25 L681.2793,549.25 M668.2793,530.25 L694.2793,530.25 M681.2793,549.25 L668.2793,564.25 M681.2793,549.25 L694.2793,564.25" fill="none" style="stroke:#181818;stroke-width:0.5;"/></g><g class="participant participant-head" data-participant="Public"><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="55.6787" x="730.4243" y="87.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41.6787" x="737.4243" y="107.292">Public</text></g><g class="participant participant-tail" data-participant="Public"><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="55.6787" x="730.4243" y="489.4531"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41.6787" x="737.4243" y="509.4482">Public</text></g><g class="message" data-participant-1="Owner" data-participant-2="API"><polygon fill="#181818" points="275.4023,145.7266,285.4023,149.7266,275.4023,153.7266,279.4023,149.7266" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="30.856" x2="281.4023" y1="149.7266" y2="149.7266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="232.5464" x="37.856" y="144.6606">POST /api/listings/remove (listingId)</text></g><g class="message" data-participant-1="API" data-participant-2="DB"><polygon fill="#181818" points="586.9639,189.9922,596.9639,193.9922,586.9639,197.9922,590.9639,193.9922" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="287.4023" x2="592.9639" y1="193.9922" y2="193.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="171.355" x="294.4023" y="173.7935">verify owner or moderator</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="76.3877" x="294.4023" y="188.9263">fetch listing</text></g><g class="message" data-participant-1="API" data-participant-2="DB"><polygon fill="#181818" points="586.9639,249.3906,596.9639,253.3906,586.9639,257.3906,590.9639,253.3906" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="287.4023" x2="592.9639" y1="253.3906" y2="253.3906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="140.6514" x="294.4023" y="218.0591">set status=REMOVED</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="105.0474" x="294.4023" y="233.1919">published=false</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="92.2188" x="294.4023" y="248.3247">removedAt/by</text></g><g class="message" data-participant-1="Moderator" data-participant-2="API"><polygon fill="#181818" points="298.4023,293.6563,288.4023,297.6563,298.4023,301.6563,294.4023,297.6563" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="292.4023" x2="680.2793" y1="297.6563" y2="297.6563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="215.9092" x="304.4023" y="277.4575">POST /api/admin/listings/approve</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="110.7031" x="304.4023" y="292.5903">(action=remove)</text></g><g class="message" data-participant-1="API" data-participant-2="DB"><polygon fill="#181818" points="586.9639,322.7891,596.9639,326.7891,586.9639,330.7891,590.9639,326.7891" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="287.4023" x2="592.9639" y1="326.7891" y2="326.7891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="245.7305" x="294.4023" y="321.7231">same status change if via admin path</text></g><g class="message" data-participant-1="Owner" data-participant-2="API"><polygon fill="#181818" points="275.4023,351.9219,285.4023,355.9219,275.4023,359.9219,279.4023,355.9219" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="30.856" x2="281.4023" y1="355.9219" y2="355.9219"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="141.813" x="37.856" y="350.856">GET /api/listings/mine</text></g><g class="message" data-participant-1="API" data-participant-2="DB"><polygon fill="#181818" points="586.9639,381.0547,596.9639,385.0547,586.9639,389.0547,590.9639,385.0547" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="287.4023" x2="592.9639" y1="385.0547" y2="385.0547"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="287.5615" x="294.4023" y="379.9888">fetch listings for owner (includes REMOVED)</text></g><g class="message" data-participant-1="Public" data-participant-2="API"><polygon fill="#181818" points="298.4023,410.1875,288.4023,414.1875,298.4023,418.1875,294.4023,414.1875" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="292.4023" x2="757.2637" y1="414.1875" y2="414.1875"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="122.1099" x="304.4023" y="409.1216">GET /listings/[slug]</text></g><g class="message" data-participant-1="API" data-participant-2="DB"><polygon fill="#181818" points="586.9639,439.3203,596.9639,443.3203,586.9639,447.3203,590.9639,443.3203" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;" x1="287.4023" x2="592.9639" y1="443.3203" y2="443.3203"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="167.8003" x="294.4023" y="438.2544">filter out removed listings</text></g><g class="message" data-participant-1="API" data-participant-2="Public"><polygon fill="#181818" points="746.2637,468.4531,756.2637,472.4531,746.2637,476.4531,750.2637,472.4531" style="stroke:#181818;stroke-width:1;"/><line style="stroke:#181818;stroke-width:1;stroke-dasharray:2,2;" x1="287.4023" x2="752.2637" y1="472.4531" y2="472.4531"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="137.0396" x="294.4023" y="467.3872">not found if removed</text></g><!--SRC=[RP71QiCm44Jl-eebf-HGV0-aa91G0abZsj9BtSFQMji2MJBIEct-lb9it3ZaOe4rytPsn8ermK5vLgO2HuqzeuRy0lR7a0FheB6I7B9r0elmXLEy42qwLeLgqJ3CNkcNOPtkPu0-da8YOuwU8BMUAqS-Ncmt0-4u4iKL1a_FqRM4zFJ-0GcsAj5z89zS4n7CXnzxkH116XtRpHBEv5JvA6jcIkAYXi5sw_74u1cvywkttV7qkTjcfktoeAn9hahKdZBJZvLhJlAB6FC-28goKUO_BhQj2yRCpCEgoffL3vg4zjZGa02A6ar5e4euAuGh35ha-gwObzrzBq58jz39kXxA4BPlPQvCeJiPdc3OTY7Ik6qnXO_WBw-xwdk2LffZlHt3KCiufvS5NOzSWh4SPdT6nfK6zHy0]--></g></svg> |