Pages API: Read (get index+show) (#18970)
* Pages API pt 1 (read/get/index+show) * Update spec/requests/api/v1/docs/pages_spec.rb Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com> * Update spec/requests/api/v1/docs/pages_spec.rb Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com> * API Key not required for index & show * API Feature flag has long since been removed * Page schema * Fix spec broken by merge Co-authored-by: Ridhwana <Ridhwana.Khan16@gmail.com>
|
|
@ -1,14 +1,14 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.412 8.604a2.047 2.047 0 0 0-.321-.028 4.007 4.007 0 0 0-3.987 4.416C2.32 18.278 6.662 22.5 12 22.5c5.477 0 9.917-4.44 9.917-9.916 0-.018-.002-.036-.004-.053-.001-.012-.003-.024-.003-.037l.003-.053c.002-.026.004-.053.004-.08a4.007 4.007 0 0 0-4.007-4.006c-.119 0-.257.014-.401.037a11.12 11.12 0 0 0-.347.578c.216-.026.391-.011.513.058.167.094.062.22-.036.335-.115.136-.219.259.15.302.347.04.53-.03.696-.094.166-.064.313-.121.588-.05.7.181.054.808-.357 1.143-.593.404-.903.245-1.262.06-.229-.117-.477-.245-.832-.245-.07 0-.132.006-.19.014l-.002.002c-.263.036-.425.148-.65.304-.188.128-.418.287-.785.457-.335.155-.757-.037-1.149-.215-.26-.119-.505-.23-.703-.23-.255 0-.503.13-.76.266-.42.221-.866.456-1.41.16a4.177 4.177 0 0 1-.405-.266c-.326-.232-.653-.464-1.125-.452a2.499 2.499 0 0 0-1.06.244c-.226.098-.426.185-.766.174v-.002a2.33 2.33 0 0 1-.304-.03c-1.045-.175-1.66-.431-2.021-.676-.364-.324-.325-.604-.137-.745.146-.11.65-.298 1.001.03.236.22.402.132.633.01l.135-.069a12.54 12.54 0 0 0-.512-.85Z" fill="url(#a)"/>
|
||||
<path d="M6.924 9.453c-.047.023-.092.047-.135.07-.23.121-.397.209-.633-.011-.352-.328-.855-.139-1-.03-.189.141-.228.421.136.745.362.245.976.501 2.02.676.116.02.213.027.305.03-.135-.355-.362-.88-.692-1.479ZM16.431 10.492c.059-.008.12-.014.191-.014.355 0 .603.128.832.245.36.185.669.344 1.262-.06.411-.335 1.056-.962.357-1.143-.275-.071-.422-.014-.588.05-.165.064-.349.135-.696.094-.369-.043-.265-.166-.15-.302.098-.116.203-.24.036-.335-.122-.07-.297-.084-.513-.058l-.001.003a13.82 13.82 0 0 0-.73 1.52Z" fill="#F19020"/>
|
||||
<path d="M6.412 8.604a2.047 2.047 0 0 0-.321-.028 4.007 4.007 0 0 0-3.987 4.416C2.32 18.278 6.662 22.5 12 22.5c5.477 0 9.917-4.44 9.917-9.916a.455.455 0 0 0-.004-.053c-.001-.012-.003-.024-.003-.037l.003-.053c.002-.026.004-.053.004-.08a4.007 4.007 0 0 0-4.007-4.006 2.62 2.62 0 0 0-.401.037 11.12 11.12 0 0 0-.347.578c.216-.026.391-.011.513.058.167.094.062.22-.036.335-.115.136-.219.259.15.302.347.04.53-.03.696-.094.166-.064.313-.121.588-.05.7.181.054.808-.357 1.143-.593.404-.903.245-1.262.06-.229-.117-.477-.245-.832-.245-.07 0-.132.006-.19.014l-.002.002c-.263.036-.425.148-.65.304-.188.128-.418.287-.785.457-.335.155-.757-.037-1.149-.215-.26-.119-.505-.23-.703-.23-.255 0-.503.13-.76.266-.42.221-.866.456-1.41.16a4.177 4.177 0 0 1-.405-.266c-.326-.232-.653-.464-1.125-.452a2.499 2.499 0 0 0-1.06.244c-.226.098-.426.185-.766.174v-.002a2.33 2.33 0 0 1-.304-.03c-1.045-.175-1.66-.431-2.021-.676-.364-.324-.325-.604-.137-.745.146-.11.65-.298 1.001.03.236.22.402.132.633.01l.135-.069a12.54 12.54 0 0 0-.512-.85Z" fill="url(#a)"/>
|
||||
<path d="M6.924 9.453a4.185 4.185 0 0 0-.135.07c-.23.121-.397.209-.633-.011-.352-.328-.855-.139-1-.03-.189.141-.228.421.136.745.362.245.976.501 2.02.676.116.02.213.027.305.03-.135-.355-.362-.88-.692-1.479Zm9.507 1.039a1.38 1.38 0 0 1 .191-.014c.355 0 .603.128.832.245.36.185.669.344 1.262-.06.411-.335 1.056-.962.357-1.143-.275-.071-.422-.014-.588.05a1.266 1.266 0 0 1-.696.094c-.369-.043-.265-.166-.15-.302.098-.116.203-.24.036-.335-.122-.07-.297-.084-.513-.058l-.001.003a13.82 13.82 0 0 0-.73 1.52Z" fill="#F19020"/>
|
||||
<path d="M8.5 15.074c.644 0 1.167-.696 1.167-1.555 0-.86-.523-1.556-1.167-1.556-.645 0-1.167.696-1.167 1.556 0 .859.522 1.555 1.167 1.555Z" fill="url(#b)"/>
|
||||
<path d="M15.5 15.074c.645 0 1.167-.696 1.167-1.555s-.522-1.556-1.167-1.556c-.644 0-1.167.697-1.167 1.556 0 .859.522 1.555 1.167 1.555Z" fill="url(#c)"/>
|
||||
<path d="M14.527 18.206c0 1.595-1.131 2.887-2.527 2.887-1.396 0-2.527-1.292-2.527-2.887s1.131-2.888 2.527-2.888c1.396 0 2.527 1.293 2.527 2.888Z" fill="url(#d)"/>
|
||||
<path d="M5.589 7.491c.088-.034.173-.074.255-.12a1.302 1.302 0 0 0 1.03.241 2.815 2.815 0 0 0 2.398 1.344 2.83 2.83 0 0 0 2.376-1.293c.42.514 1.05.85 1.767.85 1.058 0 1.94-.723 2.202-1.699.01 0 .019.002.027.003.01.002.02.003.031.003.165 0 .326-.018.482-.05.381.324.87.527 1.41.527.347 0 .673-.083.963-.228-.465.48-.971 1.239-.971 1.239-.72-.046-1.43-.31-1.43-.31-.911 1.504-2.953 1.813-4.411.938-2.097 1.768-4.872.366-4.872.366S6.16 8.136 5.59 7.492Z" fill="#CE5C1F"/>
|
||||
<path d="M6.925 9.457a12.72 12.72 0 0 0-.262-.453c.114.182.183.3.183.3s2.775 1.403 4.872-.365c1.458.875 3.5.565 4.41-.939 0 0 .71.264 1.43.31-.192.278-.238.378-.397.664-.298.533-.543 1.06-.73 1.522-.264.036-.426.148-.652.303a4.897 4.897 0 0 1-.784.458c-.335.155-.757-.037-1.149-.216-.26-.118-.505-.23-.703-.23-.255 0-.503.13-.76.267-.42.221-.866.456-1.41.159a4.157 4.157 0 0 1-.405-.265c-.326-.232-.653-.465-1.125-.452-.531.014-.811.135-1.06.244-.226.098-.426.185-.766.174-.134-.356-.362-.88-.692-1.481Z" fill="url(#e)"/>
|
||||
<path d="M5.589 7.491c.088-.034.173-.074.255-.12a1.302 1.302 0 0 0 1.03.241 2.815 2.815 0 0 0 2.398 1.344 2.83 2.83 0 0 0 2.376-1.293c.42.514 1.05.85 1.767.85 1.058 0 1.94-.723 2.202-1.699.01 0 .019.002.027.003.01.002.02.003.031.003.165 0 .326-.018.482-.05a2.145 2.145 0 0 0 2.373.299c-.465.48-.971 1.239-.971 1.239a5.773 5.773 0 0 1-1.43-.31c-.911 1.504-2.953 1.813-4.411.938-2.097 1.768-4.872.366-4.872.366S6.16 8.136 5.59 7.492Z" fill="#CE5C1F"/>
|
||||
<path d="M6.925 9.457a12.72 12.72 0 0 0-.262-.453c.114.182.183.3.183.3s2.775 1.403 4.872-.365c1.458.875 3.5.565 4.41-.939 0 0 .71.264 1.43.31-.192.278-.238.378-.397.664a13.67 13.67 0 0 0-.73 1.522c-.264.036-.426.148-.652.303a4.897 4.897 0 0 1-.784.458c-.335.155-.757-.037-1.149-.216-.26-.118-.505-.23-.703-.23-.255 0-.503.13-.76.267-.42.221-.866.456-1.41.159a4.157 4.157 0 0 1-.405-.265c-.326-.232-.653-.465-1.125-.452a2.484 2.484 0 0 0-1.06.244c-.226.098-.426.185-.766.174-.134-.356-.362-.88-.692-1.481Z" fill="url(#e)"/>
|
||||
<path d="M11.834 3.682a1.257 1.257 0 0 1 .184 2.503 1.312 1.312 0 0 1-1.277 1.02 1.3 1.3 0 0 1-.634-.17 1.307 1.307 0 0 1-2.41.37 2.181 2.181 0 0 1-1.603-1.212 1.174 1.174 0 1 1-.146-1.471 2.183 2.183 0 0 1 2.115-1.656c.575 0 1.095.228 1.486.591a.97.97 0 0 1 1.694.179 1.25 1.25 0 0 1 .591-.154Z" fill="url(#f)"/>
|
||||
<path d="M18.951 4.864a1.237 1.237 0 1 1-2.474 0 1.237 1.237 0 0 1 2.474 0Z" fill="url(#g)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.256 3.737c.128-.038.26-.064.4-.064a1.437 1.437 0 0 1 0 2.874c-.14 0-.272-.027-.4-.064-.4.493-1.004.814-1.69.814-.54 0-1.028-.203-1.41-.527-.155.033-.316.05-.481.05a.207.207 0 0 1-.03-.002.232.232 0 0 0-.028-.003 2.283 2.283 0 0 1-2.202 1.698 2.275 2.275 0 0 1-1.767-.85 2.83 2.83 0 0 1-2.376 1.293 2.815 2.815 0 0 1-2.397-1.343 1.267 1.267 0 0 1-1.03-.241c-.28.155-.6.248-.942.248a1.969 1.969 0 1 1 0-3.938c.124 0 .245.015.364.037a2.178 2.178 0 0 1 1.92-1.162c.113 0 .22.017.327.034a2.183 2.183 0 0 1 1.837-1.005c.957 0 1.762.62 2.059 1.477a1.304 1.304 0 0 1 2.23.287 2.328 2.328 0 0 1 2.034-1.205c.696 0 1.315.31 1.743.793l.061-.008c.029-.004.058-.008.088-.008.685 0 1.289.322 1.69.815Zm-6.162 1.206a1.26 1.26 0 0 0-1.26-1.26 1.25 1.25 0 0 0-.59.153.971.971 0 0 0-1.695-.178c-.391-.364-.91-.591-1.486-.591a2.183 2.183 0 0 0-2.115 1.655 1.174 1.174 0 1 0 .146 1.471c.301.631.892 1.093 1.603 1.213a1.307 1.307 0 0 0 2.41-.37 1.3 1.3 0 0 0 .634.17c.624 0 1.145-.437 1.278-1.02a1.257 1.257 0 0 0 1.075-1.243Zm4.62 1.158a1.237 1.237 0 1 0 0-2.474 1.237 1.237 0 0 0 0 2.474Z" fill="url(#h)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.256 3.737c.128-.038.26-.064.4-.064a1.437 1.437 0 0 1 0 2.874 1.43 1.43 0 0 1-.4-.064 2.17 2.17 0 0 1-1.69.814c-.54 0-1.028-.203-1.41-.527-.155.033-.316.05-.481.05a.207.207 0 0 1-.03-.002.232.232 0 0 0-.028-.003 2.283 2.283 0 0 1-2.202 1.698 2.275 2.275 0 0 1-1.767-.85 2.83 2.83 0 0 1-2.376 1.293 2.815 2.815 0 0 1-2.397-1.343 1.267 1.267 0 0 1-1.03-.241c-.28.155-.6.248-.942.248a1.969 1.969 0 1 1 0-3.938c.124 0 .245.015.364.037a2.178 2.178 0 0 1 1.92-1.162c.113 0 .22.017.327.034a2.183 2.183 0 0 1 1.837-1.005c.957 0 1.762.62 2.059 1.477a1.304 1.304 0 0 1 2.23.287 2.328 2.328 0 0 1 2.034-1.205c.696 0 1.315.31 1.743.793l.061-.008c.029-.004.058-.008.088-.008.685 0 1.289.322 1.69.815Zm-6.162 1.206a1.26 1.26 0 0 0-1.26-1.26 1.25 1.25 0 0 0-.59.153.971.971 0 0 0-1.695-.178 2.172 2.172 0 0 0-1.486-.591 2.183 2.183 0 0 0-2.115 1.655 1.174 1.174 0 1 0 .146 1.471 2.18 2.18 0 0 0 1.603 1.213 1.307 1.307 0 0 0 2.41-.37 1.3 1.3 0 0 0 .634.17c.624 0 1.145-.437 1.278-1.02a1.257 1.257 0 0 0 1.075-1.243Zm4.62 1.158a1.237 1.237 0 1 0 0-2.474 1.237 1.237 0 0 0 0 2.474Z" fill="url(#h)"/>
|
||||
<defs>
|
||||
<linearGradient id="a" x1="12" y1="14.155" x2="12" y2="22.499" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFCC49"/>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.3 KiB |
|
|
@ -1,11 +1,11 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1000_2078)">
|
||||
<path d="M19 14V17H22V19H19V22H17V19H14V17H17V14H19ZM20.243 4.75698C22.403 6.92298 22.572 10.314 20.75 12.667C19.926 12.24 18.99 12 18 12C14.686 12 12 14.686 12 18C12 19.009 12.249 19.96 12.689 20.794L11.999 21.485L3.52101 12.993C1.41701 10.637 1.49601 7.01898 3.75701 4.75698C6.02201 2.49298 9.64501 2.41698 12.001 4.52898C14.35 2.41998 17.98 2.48998 20.243 4.75698Z" fill="#EF4444"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.0765 16.9736V13.9736H17.0765V16.9736H14.0765V18.9736H17.0765V21.9736H19.0765V18.9736H22.0765V16.9736H19.0765ZM20.8271 12.6399C20.1623 12.2963 19.4251 12.0735 18.6444 12.0002C19.4244 12.0734 20.1619 12.2962 20.8265 12.6406C20.8267 12.6404 20.8269 12.6401 20.8271 12.6399ZM12.7654 20.7677C12.6672 20.5815 12.5785 20.3894 12.5 20.1922C12.5786 20.3894 12.6673 20.5814 12.7655 20.7676L12.7654 20.7677Z" fill="#404040"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1000_2078">
|
||||
<rect width="24" height="24" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#a)">
|
||||
<path d="M19 14v3h3v2h-3v3h-2v-3h-3v-2h3v-3h2Zm1.243-9.243a6.001 6.001 0 0 1 .507 7.91 6 6 0 0 0-8.061 8.127l-.69.691-8.478-8.492a6 6 0 0 1 8.48-8.464 5.998 5.998 0 0 1 8.242.228Z" fill="#EF4444"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.076 16.974v-3h-2v3h-3v2h3v3h2v-3h3v-2h-3Zm1.751-4.334Zm-8.062 8.128Z" fill="#404040"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="a">
|
||||
<path fill="#fff" d="M0 0h24v24H0z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 613 B |
|
|
@ -1,3 +1,3 @@
|
|||
<svg width="20" height="19" viewBox="0 0 20 19" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17 11V14H20V16H16.999L17 19H15L14.999 16H12V14H15V11H17ZM18.243 1.75698C20.505 4.02498 20.583 7.63698 18.479 9.99198L17.059 8.57398C18.39 7.04998 18.32 4.65998 16.827 3.16998C15.324 1.67098 12.907 1.60698 11.337 3.01698L10.002 4.21498L8.66603 3.01798C7.09103 1.60598 4.67503 1.66798 3.17203 3.17198C1.68203 4.66198 1.60703 7.04698 2.98003 8.62298L11.412 17.069L10 18.485L1.52003 9.99298C-0.583971 7.63698 -0.50497 4.01898 1.75603 1.75698C4.02103 -0.50702 7.64403 -0.58302 10 1.52898C12.349 -0.58002 15.979 -0.51002 18.242 1.75698H18.243Z" fill="#525252"/>
|
||||
<path d="M17 11v3h3v2h-3.001L17 19h-2l-.001-3H12v-2h3v-3h2Zm1.243-9.243a6 6 0 0 1 .236 8.235l-1.42-1.418C18.39 7.05 18.32 4.66 16.827 3.17a4.001 4.001 0 0 0-5.49-.153l-1.335 1.198-1.336-1.197a3.999 3.999 0 0 0-5.494.154 4 4 0 0 0-.192 5.451l8.432 8.446L10 18.485 1.52 9.993A6 6 0 0 1 10 1.529a5.998 5.998 0 0 1 8.242.228h.001Z" fill="#525252"/>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 671 B After Width: | Height: | Size: 452 B |
|
|
@ -2,15 +2,15 @@
|
|||
<path d="M13.178 11.2a1.125 1.125 0 1 1 0-2.25 1.125 1.125 0 0 1 0 2.25Z" fill="url(#a)"/>
|
||||
<path d="M17.518 17.126c-.07.384.106.737.391.788.286.052.574-.216.644-.6.07-.385-.106-.738-.391-.79-.286-.052-.574.217-.644.602Z" fill="url(#b)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="m18.394 14.92-.214-.461c-1.296.094-2.863.67-3.127 1.992-.112.557-.469 1.028-.924 1.413.028.06.053.117.078.174.113.256.218.492.5.788 1.334 1.4 3.325.74 4.093-.619.62-1.098.196-2.003-.406-3.288Zm-.485 2.996c-.285-.052-.46-.405-.39-.789.069-.385.357-.653.643-.602.285.052.46.405.391.79-.07.383-.358.652-.644.6Z" fill="url(#c)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="m14.475 6.186.002.001c-.298.265-.288.796.038 1.213.322.412.825.556 1.155.345l-.005.01.027-.023a.112.112 0 0 1 .01-.006.081.081 0 0 0 .014-.008.022.022 0 0 0 .006-.007.027.027 0 0 1 .005-.007l.316-.256.006-.003c.178.195.335.395.46.598h.002c.648 1.22.82 2.491.98 3.66.12.893.234 1.727.545 2.433.122.277.243.536.358.782-.07-.148-.141-.301-.214-.46-1.296.094-2.863.67-3.127 1.991-.112.558-.469 1.029-.924 1.414-.17-.364-.433-.795-1.25-1.49-1.588-.317-2.563-1.045-2.563-2.552 0 0-.464-.223-1.065 3.505-.156.965-.098 1.93-.036 2.934l.017.294c.063 1.057-.796 1.895-1.855 1.895H3.521a1.969 1.969 0 0 1-1.969-1.969v-7.45 3.902c.464-1.023 1-2.468 1.464-3.714.371-.998.694-1.868.894-2.29 1.643-3.476 4.557-6.5 9.001-5.482a7.492 7.492 0 0 1 1.565.739Zm-1.297 5.012a1.125 1.125 0 1 1 0-2.25 1.125 1.125 0 0 1 0 2.25Z" fill="url(#d)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="m14.475 6.186.002.001c-.298.265-.288.796.038 1.213.322.412.825.556 1.155.345l-.005.01.027-.023a.112.112 0 0 1 .01-.006.081.081 0 0 0 .014-.008.022.022 0 0 0 .006-.007.027.027 0 0 1 .005-.007l.316-.256.006-.003c.178.195.335.395.46.598h.002c.648 1.22.82 2.491.98 3.66.12.893.234 1.727.545 2.433a37.68 37.68 0 0 0 .144.322c-1.296.094-2.863.67-3.127 1.991-.112.558-.469 1.029-.924 1.414-.17-.364-.433-.795-1.25-1.49-1.588-.317-2.563-1.045-2.563-2.552 0 0-.464-.223-1.065 3.505-.156.965-.098 1.93-.036 2.934l.017.294c.063 1.057-.796 1.895-1.855 1.895H3.521a1.969 1.969 0 0 1-1.969-1.969v-7.45 3.902c.464-1.023 1-2.468 1.464-3.714.371-.998.694-1.868.894-2.29 1.643-3.476 4.557-6.5 9.001-5.482a7.492 7.492 0 0 1 1.565.739Zm-1.297 5.012a1.125 1.125 0 1 1 0-2.25 1.125 1.125 0 0 1 0 2.25Z" fill="url(#d)"/>
|
||||
<path d="m16.686 4.673.034-.064.031-.057c.422-.782-.161-.511-.532-.255-.178.124-.855.382-1.522.621.24.148.49.35.75.57.35-.237.775-.516 1.239-.815Z" fill="url(#e)"/>
|
||||
<path d="M13.878 3.958c.292-.127.524-.227.63-.374.678-.928.487.27.415.617a3.887 3.887 0 0 1-.225.717 5.45 5.45 0 0 1-.597 1.05 7.02 7.02 0 0 0-1.19-.522 8.125 8.125 0 0 0-.804-.143c.534-.81 1.249-1.12 1.771-1.345Z" fill="url(#f)"/>
|
||||
<path d="M16.049 7.444c.178.195.335.396.46.599 0 0 1.298.328 1.971-.786.067-.11-.043-.236-.17-.222-.458.052-.9-.097-1.322-.344-.5.406-.852.687-.94.753Z" fill="url(#g)"/>
|
||||
<path d="M15.447 5.487c-.469.316-.805.554-.93.66-.003.003-.006.004-.01.006l-.009.005-.005.007c-.002.003-.003.006-.006.008l-.009.008-.002.003a8.712 8.712 0 0 0-.375-.217 5.44 5.44 0 0 0 .596-1.049c.24.147.49.349.75.57Z" fill="url(#h)"/>
|
||||
<path d="M13.263 4.25a3.192 3.192 0 0 0-1.156 1.053c-3.995-.5-6.655 2.363-8.197 5.625-.2.422-.523 1.292-.894 2.29-.463 1.245-1 2.69-1.463 3.714V9.779c0-1.26.24-2.596 1.032-3.577a5.7 5.7 0 0 1 .96-.933c.117-.09.282.035.244.178-.213.786-.317 1.869-.195 2.64.087-2.288 1.86-3.839 2.552-4.196 1.208-.623 2.4-.58 3.715-.471.113.01.184.142.146.25-.06.171-.11.413-.081.673.28-.51.935-.828 1.36-.741.77.156 1.45.38 1.977.648Z" fill="url(#i)"/>
|
||||
<path d="M13.646 5.738c.152-.238.27-.483.37-.693.118-.247.214-.446.316-.532.202-.168-.068-.17-.068-.17-.44.265-.972.662-1.278 1.129.21.07.432.16.66.266Z" fill="url(#j)"/>
|
||||
<path d="M14.475 6.187h.002c-.298.266-.288.796.038 1.213.322.412.825.556 1.155.346l-.005.01.027-.023a.115.115 0 0 1 .01-.006.081.081 0 0 0 .014-.008.022.022 0 0 0 .006-.007.027.027 0 0 1 .005-.007l.316-.256.006-.004c.11-.084.654-.517 1.38-1.113a2.647 2.647 0 0 1-.634-.613 2.576 2.576 0 0 1-.428-.838l.528-.342c.014.173.1.473.368.831.24.323.479.494.642.57.35-.29.728-.605 1.11-.929a2.775 2.775 0 0 1-.518-.531 2.71 2.71 0 0 1-.385-.707c.17-.106.34-.21.511-.314.044.174.144.408.342.672.18.243.357.397.503.492.36-.309.717-.62 1.05-.92a2.92 2.92 0 0 1-.694-.942l-.005-.014c.176-.101.347-.199.512-.291l.01.027.014.037c.065.141.15.282.25.417.097.131.204.248.316.347l.017.014a.21.21 0 0 1 .015.011c.952-.877 1.619-1.586 1.472-1.733-.417-.416-7.235 4.002-7.909 4.573l-.008.005-.01.006-.005.007-.006.007-.009.008-.003.005Z" fill="url(#k)"/>
|
||||
<path d="m19.824 2.761-.005-.014c.176-.102.347-.2.512-.292.01.022.013.04.024.064.065.142.15.283.25.418.097.13.204.247.316.347l.033.025-.435.394a2.92 2.92 0 0 1-.695-.942ZM18.497 4.48a2.71 2.71 0 0 1-.385-.707l.511-.314c.044.174.144.408.342.672.18.244.358.398.504.493l-.454.388a2.775 2.775 0 0 1-.518-.532Zm-1.702 1.24a2.576 2.576 0 0 1-.428-.838l.528-.342c.014.172.1.472.368.831.24.323.48.494.642.57l-.475.392a2.646 2.646 0 0 1-.635-.613Z" fill="#EF5E3E"/>
|
||||
<path d="M14.475 6.187h.002c-.298.266-.288.796.038 1.213.322.412.825.556 1.155.346l-.005.01.027-.023a.115.115 0 0 1 .01-.006.081.081 0 0 0 .014-.008.022.022 0 0 0 .006-.007.027.027 0 0 1 .005-.007l.316-.256.006-.004c.11-.084.654-.517 1.38-1.113a2.647 2.647 0 0 1-.634-.613 2.576 2.576 0 0 1-.428-.838l.528-.342c.014.173.1.473.368.831.24.323.479.494.642.57.35-.29.728-.605 1.11-.929a2.775 2.775 0 0 1-.518-.531 2.71 2.71 0 0 1-.385-.707c.17-.106.34-.21.511-.314.044.174.144.408.342.672.18.243.357.397.503.492.36-.309.717-.62 1.05-.92a2.92 2.92 0 0 1-.694-.942l-.005-.014c.176-.101.347-.199.512-.291l.01.027.014.037a2.386 2.386 0 0 0 .566.764l.017.014a.21.21 0 0 1 .015.011c.952-.877 1.619-1.586 1.472-1.733-.417-.416-7.235 4.002-7.909 4.573l-.008.005-.01.006-.005.007-.006.007-.009.008-.003.005Z" fill="url(#k)"/>
|
||||
<path d="m19.824 2.761-.005-.014c.176-.102.347-.2.512-.292.01.022.013.04.024.064a2.357 2.357 0 0 0 .566.765l.033.025-.435.394a2.92 2.92 0 0 1-.695-.942ZM18.497 4.48a2.71 2.71 0 0 1-.385-.707l.511-.314c.044.174.144.408.342.672.18.244.358.398.504.493l-.454.388a2.775 2.775 0 0 1-.518-.532Zm-1.702 1.24a2.576 2.576 0 0 1-.428-.838l.528-.342c.014.172.1.472.368.831.24.323.48.494.642.57l-.475.392a2.646 2.646 0 0 1-.635-.613Z" fill="#EF5E3E"/>
|
||||
<defs>
|
||||
<linearGradient id="a" x1="13.178" y1="8.949" x2="13.178" y2="11.199" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#3A6481"/>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.6 KiB |
|
|
@ -1,9 +1,9 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.204 19.032c3 .6 4.8-.6 4.8-.6v2.867a1.5 1.5 0 0 1-1.5 1.5h-1.8a1.5 1.5 0 0 1-1.5-1.5v-2.267Z" fill="url(#a)"/>
|
||||
<path d="M7.804 19.032c-3 .6-4.8-.6-4.8-.6v2.867a1.5 1.5 0 0 0 1.5 1.5h1.8a1.5 1.5 0 0 0 1.5-1.5v-2.267Z" fill="url(#b)"/>
|
||||
<path d="M8.394 12.743v-.382h-.062c-2.17.03-3.617 1.842-3.624 3.662 0 .367.367.37.367.37.006-2.082 1.319-3.502 3.319-3.65ZM15.608 12.361c2.204-.005 3.679 1.826 3.686 3.663 0 .367-.367.37-.367.37-.006-2.083-1.32-3.502-3.32-3.65v-.383Z" fill="#FFAC2B"/>
|
||||
<path d="M8.394 12.743v-.382h-.062c-2.17.03-3.617 1.842-3.624 3.662 0 .367.367.37.367.37.006-2.082 1.319-3.502 3.319-3.65Zm7.214-.382c2.204-.005 3.679 1.826 3.686 3.663 0 .367-.367.37-.367.37-.006-2.083-1.32-3.502-3.32-3.65v-.383Z" fill="#FFAC2B"/>
|
||||
<path d="M1.428 8.3s.002-.735.736-.733c.736.002.733.737.733.737l-.011 3.41c.117-.053.24-.102.368-.144l.015-4.733s.002-.735.736-.733c.734.002.733.737.733.737l-.013 4.452c.12-.01.242-.019.366-.025l.017-5.161s.002-.735.737-.732c.735.002.732.737.732.737l-.017 5.16c.126.008.247.02.368.032l.015-4.824s.003-.735.736-.732c.735.002.732.736.732.736l-.015 5.101-.001.409v.366c-2.205-.005-3.68 1.825-3.687 3.663 0 .367.367.37.367.37.006-2.208 1.48-3.67 3.686-3.663l1.08-2.513s.237-.695.934-.457c.695.235.459.932.459.932l-.536 1.863c-.212.74-.411 1.485-.515 2.246a4.412 4.412 0 0 1-4.38 3.798 4.41 4.41 0 0 1-4.393-4.422c0-.128.008-.25.02-.366l-.019-.002.017-5.509Zm21.146 0s-.001-.735-.736-.733c-.735.002-.734.737-.734.737l.012 3.41a3.386 3.386 0 0 0-.367-.144l-.015-4.733s-.003-.735-.737-.733c-.735.002-.733.737-.733.737l.013 4.452a8.695 8.695 0 0 0-.366-.025l-.016-5.161s-.002-.735-.737-.732c-.735.002-.732.737-.732.737l.017 5.16c-.126.008-.248.02-.369.032L17.06 6.48s-.003-.735-.737-.732c-.734.002-.731.736-.731.736l.014 5.101.002.409v.366c2.205-.005 3.68 1.825 3.687 3.663 0 .367-.367.37-.367.37-.007-2.208-1.48-3.67-3.685-3.663l-1.08-2.513s-.237-.695-.934-.457c-.695.235-.46.932-.46.932l.536 1.863c.213.74.411 1.485.516 2.246a4.412 4.412 0 0 0 4.38 3.798 4.41 4.41 0 0 0 4.392-4.422c0-.128-.008-.25-.02-.366l.02-.002-.018-5.509Z" fill="url(#c)"/>
|
||||
<path d="M3.004 17.582v.849s1.8 1.2 4.8.6v-.906a4.397 4.397 0 0 1-4.8-.543ZM16.204 18.129a4.397 4.397 0 0 0 4.8-.55v.853s-1.8 1.2-4.8.6v-.903Z" fill="#FFAC2B"/>
|
||||
<path d="M3.004 17.582v.849s1.8 1.2 4.8.6v-.906a4.397 4.397 0 0 1-4.8-.543Zm13.2.547a4.397 4.397 0 0 0 4.8-.55v.853s-1.8 1.2-4.8.6v-.903Z" fill="#FFAC2B"/>
|
||||
<path d="M15.329 5.074a.6.6 0 0 1-.474-.967l1.787-2.313a.6.6 0 1 1 .95.734l-1.788 2.313a.597.597 0 0 1-.475.233Zm-6.612 0a.6.6 0 0 1-.475-.233L6.454 2.528a.6.6 0 0 1 .95-.734l1.788 2.313a.6.6 0 0 1-.475.967Zm3.287-.275a.6.6 0 0 1-.6-.6V1.8a.6.6 0 0 1 1.2 0v2.4a.6.6 0 0 1-.6.6Z" fill="url(#d)"/>
|
||||
<defs>
|
||||
<linearGradient id="a" x1="12.004" y1="19.261" x2="12.004" y2="22.8" gradientUnits="userSpaceOnUse">
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
17
app/controllers/api/v1/pages_controller.rb
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
module Api
|
||||
module V1
|
||||
class PagesController < ApiController
|
||||
before_action :authenticate!, except: %i[show index]
|
||||
|
||||
def index
|
||||
@pages = Page.all
|
||||
render json: @pages
|
||||
end
|
||||
|
||||
def show
|
||||
@page = Page.find params[:id]
|
||||
render json: @page
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -57,6 +57,12 @@ class Page < ApplicationRecord
|
|||
"page_#{slug}"
|
||||
end
|
||||
|
||||
def as_json(...)
|
||||
super(...).slice(*%w[id title slug description is_top_level_path landing_page
|
||||
body_html body_json body_markdown processed_html
|
||||
social_image template ])
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def evaluate_markdown
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
</div>
|
||||
<div class="crayons-field">
|
||||
<%= form.label :slug, class: "crayons-field__label" %>
|
||||
<%= form.text_field :slug, class: "crayons-textfield", pattern: "^[0-9a-z\-_]*$", required: true %>
|
||||
<%= form.text_field :slug, class: "crayons-textfield", pattern: "^[0-9a-z-_]*$", required: true %>
|
||||
</div>
|
||||
<div class="crayons-field">
|
||||
<%= form.label :description, class: "crayons-field__label" %>
|
||||
|
|
@ -125,7 +125,7 @@ function showBodyFields() {
|
|||
// hide all optional elements
|
||||
document.querySelectorAll('.optional').forEach(el => el.style.display = 'none');
|
||||
|
||||
document.querySelectorAll("select").forEach(el => {
|
||||
document.querySelectorAll("select").forEach(el => {
|
||||
if (el.options[el.selectedIndex].value == "json") {
|
||||
document.querySelectorAll('.json').forEach(el => el.style.display = 'block');
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -129,9 +129,9 @@
|
|||
</span>
|
||||
<% end %>
|
||||
<span class="aggregate_reactions_counter"><%= t("views.reactions.summary.count_html",
|
||||
count: story.public_reactions_count,
|
||||
start: tag("span", { class: %w[hidden s:inline] }, true),
|
||||
end: "</span>".html_safe) %></span>
|
||||
count: story.public_reactions_count,
|
||||
start: tag("span", { class: %w[hidden s:inline] }, true),
|
||||
end: "</span>".html_safe) %></span>
|
||||
</div>
|
||||
<% else %>
|
||||
<a href="<%= story.path %>" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left" data-reaction-count data-reactable-id="<%= story.id %>" aria-label="<%= t("views.articles.comments.aria_label", title: story.title) %>">
|
||||
|
|
@ -160,7 +160,7 @@
|
|||
</div>
|
||||
<div class="crayons-story__save">
|
||||
<small class="crayons-story__tertiary fs-xs mr-2">
|
||||
<%= t("views.articles.reading_time", count: story.reading_time < 1 ? 1 : story.reading_time) %>
|
||||
<%= t("views.articles.reading_time", count: [story.reading_time, 1].max) %>
|
||||
</small>
|
||||
<button
|
||||
type="button"
|
||||
|
|
|
|||
|
|
@ -64,9 +64,9 @@
|
|||
<% flash.each_with_index do |(type, message), i| %>
|
||||
<div
|
||||
id="notice-container"
|
||||
data-controller="notice"
|
||||
data-notice-target="noticeZone"
|
||||
data-testid="flash-<%= type %>"
|
||||
data-controller="notice"
|
||||
data-notice-target="noticeZone"
|
||||
data-testid="flash-<%= type %>"
|
||||
class="mb-4 crayons-notice crayons-notice--<%= type == "info" || type == "success" ? "success" : "danger" %>">
|
||||
<span id="flash-<%= i %>"><%= message %></span>
|
||||
<button class="crayons-notice--close js-flash-close-btn" data-action="click->notice#closeNotice" aria-label="Dismiss message" aria-describedby="flash-<%= i %>">
|
||||
|
|
|
|||
|
|
@ -55,6 +55,8 @@ Rails.application.routes.draw do
|
|||
put "unpublish", on: :member
|
||||
end
|
||||
|
||||
resources :pages, only: %i[index show]
|
||||
|
||||
draw :api
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ RSpec.describe "Api::V1::DisplayAds" do
|
|||
end
|
||||
|
||||
before do
|
||||
allow(FeatureFlag).to receive(:enabled?).with(:api_v1).and_return(true)
|
||||
@ad1 = create(:display_ad, published: true, approved: true)
|
||||
end
|
||||
|
||||
|
|
|
|||
72
spec/requests/api/v1/docs/pages_spec.rb
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
require "rails_helper"
|
||||
require "swagger_helper"
|
||||
|
||||
# rubocop:disable RSpec/EmptyExampleGroup
|
||||
# rubocop:disable RSpec/VariableName
|
||||
|
||||
RSpec.describe "api/v1/pages" do
|
||||
let(:Accept) { "application/vnd.forem.api-v1+json" }
|
||||
let(:api_secret) { create(:api_secret) }
|
||||
let!(:page) { create(:page) }
|
||||
let(:user) { api_secret.user }
|
||||
|
||||
before do
|
||||
user.add_role(:admin)
|
||||
end
|
||||
|
||||
path "/api/pages" do
|
||||
describe "get to view all pages" do
|
||||
get("show details for all pages") do
|
||||
security []
|
||||
tags "pages"
|
||||
description(<<-DESCRIBE.strip)
|
||||
This endpoint allows the client to retrieve details for all Page objects.
|
||||
DESCRIBE
|
||||
|
||||
produces "application/json"
|
||||
|
||||
response(200, "successful") do
|
||||
schema type: :array,
|
||||
items: { "$ref": "#/components/schemas/Page" }
|
||||
add_examples
|
||||
|
||||
run_test!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
path "/api/pages/{id}" do
|
||||
describe "get to view a page" do
|
||||
get("show details for a page") do
|
||||
security []
|
||||
tags "pages"
|
||||
description(<<-DESCRIBE.strip)
|
||||
This endpoint allows the client to retrieve details for a single Page object, specified by ID.
|
||||
DESCRIBE
|
||||
|
||||
produces "application/json"
|
||||
parameter name: :id, in: :path, required: true,
|
||||
description: "The ID of the page.",
|
||||
schema: {
|
||||
type: :integer,
|
||||
format: :int32,
|
||||
minimum: 1
|
||||
},
|
||||
example: 1
|
||||
|
||||
let(:id) { page.id }
|
||||
|
||||
response(200, "successful") do
|
||||
schema "$ref": "#/components/schemas/Page"
|
||||
add_examples
|
||||
|
||||
run_test!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# rubocop:enable RSpec/VariableName
|
||||
# rubocop:enable RSpec/EmptyExampleGroup
|
||||
|
|
@ -17,7 +17,6 @@ RSpec.describe "api/v1/reactions" do
|
|||
user.add_role(:admin)
|
||||
|
||||
result.category = category
|
||||
allow(FeatureFlag).to receive(:enabled?).with(:api_v1).and_return(true)
|
||||
allow(ReactionHandler).to receive(:toggle).and_return(result)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ RSpec.describe "Api::V1::Docs::Users" do
|
|||
let(:comment) { create(:comment, user: banned_user, article: article) }
|
||||
|
||||
before do
|
||||
allow(FeatureFlag).to receive(:enabled?).with(:api_v1).and_return(true)
|
||||
user.add_role(:admin)
|
||||
end
|
||||
|
||||
|
|
|
|||
41
spec/requests/api/v1/pages_spec.rb
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
require "rails_helper"
|
||||
|
||||
RSpec.describe "Api::V1::Pages" do
|
||||
let!(:v1_headers) { { "content-type" => "application/json", "Accept" => "application/vnd.forem.api-v1+json" } }
|
||||
let!(:page) { create(:page) }
|
||||
|
||||
shared_context "when user is authorized" do
|
||||
let(:api_secret) { create(:api_secret) }
|
||||
let(:user) { api_secret.user }
|
||||
let(:auth_header) { v1_headers.merge({ "api-key" => api_secret.secret }) }
|
||||
before { user.add_role(:admin) }
|
||||
end
|
||||
|
||||
context "when unauthenticated and get a page" do
|
||||
context "when no page with specified ID" do
|
||||
it "returns not found" do
|
||||
get api_page_path(1234), headers: v1_headers
|
||||
expect(response).to have_http_status(:not_found)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it "retrieves all pages and renders the collection as json" do
|
||||
get api_pages_path, headers: v1_headers
|
||||
expect(response).to have_http_status(:success)
|
||||
expect(response.parsed_body.size).to eq(1)
|
||||
expect(response.parsed_body.first.keys).to \
|
||||
contain_exactly(*%w[id title slug description is_top_level_path
|
||||
landing_page body_html body_json body_markdown
|
||||
processed_html social_image template])
|
||||
end
|
||||
|
||||
it "retrieves a page and renders it as json" do
|
||||
get api_page_path(page.id), headers: v1_headers
|
||||
expect(response).to have_http_status(:success)
|
||||
expect(response.parsed_body.keys).to \
|
||||
contain_exactly(*%w[id title slug description is_top_level_path
|
||||
landing_page body_html body_json body_markdown
|
||||
processed_html social_image template])
|
||||
end
|
||||
end
|
||||
|
|
@ -10,8 +10,6 @@ RSpec.describe "Api::V1::Reactions" do
|
|||
}
|
||||
end
|
||||
|
||||
before { allow(FeatureFlag).to receive(:enabled?).with(:api_v1).and_return(true) }
|
||||
|
||||
shared_context "when user is authorized" do
|
||||
let(:api_secret) { create(:api_secret) }
|
||||
let(:user) { api_secret.user }
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ RSpec.describe "Api::V1::Tags" do
|
|||
describe "GET /api/tags" do
|
||||
let(:headers) { { "Accept" => "application/vnd.forem.api-v1+json" } }
|
||||
|
||||
before { allow(FeatureFlag).to receive(:enabled?).with(:api_v1).and_return(true) }
|
||||
|
||||
it "returns tags" do
|
||||
create(:tag, taggings_count: 10)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
require "rails_helper"
|
||||
|
||||
# rubocop:disable Layout/LineLength
|
||||
|
||||
RSpec.configure do |config|
|
||||
# Specify a root folder where Swagger JSON files are generated
|
||||
# NOTE: If you"re using the rswag-api to serve API descriptions, you"ll need
|
||||
|
|
@ -234,6 +236,26 @@ The default maximum value can be overridden by \"API_PER_PAGE_MAX\" environment
|
|||
},
|
||||
required: %w[id name points]
|
||||
},
|
||||
Page: {
|
||||
description: "Representation of a page object",
|
||||
type: :object,
|
||||
properties: {
|
||||
title: { type: :string, description: "Title of the page" },
|
||||
slug: { type: :string, description: "Used to link to this page in URLs, must be unique and URL-safe" },
|
||||
description: { type: :string, description: "For internal use, helps similar pages from one another" },
|
||||
body_markdown: { type: :string, description: "The text (in markdown) of the ad (required)",
|
||||
nullable: true },
|
||||
body_json: { type: :string, description: "For JSON pages, the JSON body", nullable: true },
|
||||
is_top_level_path: { type: :boolean,
|
||||
description: "If true, the page is available at '/{slug}' instead of '/page/{slug}', use with caution" },
|
||||
social_image: { type: :object, nullable: true },
|
||||
template: {
|
||||
type: :string, enum: Page::TEMPLATE_OPTIONS, default: "contained",
|
||||
description: "Controls what kind of layout the page is rendered in"
|
||||
}
|
||||
},
|
||||
required: %w[title slug description template]
|
||||
},
|
||||
PodcastEpisodeIndex: {
|
||||
description: "Representation of a podcast episode returned in a list",
|
||||
type: :object,
|
||||
|
|
@ -324,3 +346,5 @@ module Rswag
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
# rubocop:enable Layout/LineLength
|
||||
|
|
|
|||
|
|
@ -20,40 +20,40 @@
|
|||
"application/json": {
|
||||
"example": {
|
||||
"type_of": "article",
|
||||
"id": 764,
|
||||
"id": 6337,
|
||||
"title": "New article",
|
||||
"description": "New post example",
|
||||
"readable_publish_date": "Jan 23",
|
||||
"slug": "new-article-2fbd",
|
||||
"path": "/username383/new-article-2fbd",
|
||||
"url": "http://localhost:3000/username383/new-article-2fbd",
|
||||
"readable_publish_date": "Jan 25",
|
||||
"slug": "new-article-47pm",
|
||||
"path": "/username383/new-article-47pm",
|
||||
"url": "http://localhost:3000/username383/new-article-47pm",
|
||||
"comments_count": 0,
|
||||
"public_reactions_count": 0,
|
||||
"collection_id": 33,
|
||||
"published_timestamp": "2023-01-23T19:32:22Z",
|
||||
"collection_id": 172,
|
||||
"published_timestamp": "2023-01-25T12:55:55Z",
|
||||
"positive_reactions_count": 0,
|
||||
"cover_image": "https://thepracticaldev.s3.amazonaws.com/i/5wfo25724gzgk5e5j50g.jpg",
|
||||
"social_image": "https://thepracticaldev.s3.amazonaws.com/i/5wfo25724gzgk5e5j50g.jpg",
|
||||
"canonical_url": "https://dev.to/fdocr/headless-chrome-dual-mode-tests-for-ruby-on-rails-4p6g",
|
||||
"created_at": "2023-01-23T19:32:22Z",
|
||||
"created_at": "2023-01-25T12:55:55Z",
|
||||
"edited_at": null,
|
||||
"crossposted_at": null,
|
||||
"published_at": "2023-01-23T19:32:22Z",
|
||||
"last_comment_at": "2023-01-23T19:32:22Z",
|
||||
"published_at": "2023-01-25T12:55:55Z",
|
||||
"last_comment_at": "2023-01-25T12:55:55Z",
|
||||
"reading_time_minutes": 1,
|
||||
"tag_list": "",
|
||||
"tags": [],
|
||||
"body_html": "<p><strong>New</strong> body for the article</p>\n\n",
|
||||
"body_markdown": "**New** body for the article",
|
||||
"user": {
|
||||
"name": "Marc \"Walter\" \\:/ Sanford",
|
||||
"name": "Agustin \"Sharonda\" \\:/ Raynor",
|
||||
"username": "username383",
|
||||
"twitter_username": "twitter383",
|
||||
"github_username": "github383",
|
||||
"user_id": 1714,
|
||||
"user_id": 14167,
|
||||
"website_url": null,
|
||||
"profile_image": "/uploads/user/profile_image/1714/322b36f4-23b8-42e0-b361-4e9645887afb.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1714/322b36f4-23b8-42e0-b361-4e9645887afb.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14167/877bdeb5-3053-4e37-9f67-f969a30f7952.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14167/877bdeb5-3053-4e37-9f67-f969a30f7952.jpeg"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -188,45 +188,45 @@
|
|||
"example": [
|
||||
{
|
||||
"type_of": "article",
|
||||
"id": 767,
|
||||
"title": "Precious Bane175",
|
||||
"description": "Kombucha everyday etsy craft beer pour-over put a bird on it thundercats. Leggings venmo you probably...",
|
||||
"readable_publish_date": "Jan 23",
|
||||
"slug": "precious-bane175-5h5o",
|
||||
"path": "/username387/precious-bane175-5h5o",
|
||||
"url": "http://localhost:3000/username387/precious-bane175-5h5o",
|
||||
"id": 6340,
|
||||
"title": "Brandy of the Damned175",
|
||||
"description": "Meh sustainable iphone fingerstache. Vice seitan waistcoat etsy slow-carb art party. Health banh mi...",
|
||||
"readable_publish_date": "Jan 25",
|
||||
"slug": "brandy-of-the-damned175-2lpf",
|
||||
"path": "/username387/brandy-of-the-damned175-2lpf",
|
||||
"url": "http://localhost:3000/username387/brandy-of-the-damned175-2lpf",
|
||||
"comments_count": 0,
|
||||
"public_reactions_count": 0,
|
||||
"collection_id": null,
|
||||
"published_timestamp": "2023-01-23T19:32:22Z",
|
||||
"published_timestamp": "2023-01-25T12:55:55Z",
|
||||
"positive_reactions_count": 0,
|
||||
"cover_image": "http://localhost:3000/assets/33-dc66b0d3c291181013c8bc7a6eb3b26755d85e90b63c9c589cb6c161624cc410.png",
|
||||
"social_image": "http://localhost:3000/assets/33-dc66b0d3c291181013c8bc7a6eb3b26755d85e90b63c9c589cb6c161624cc410.png",
|
||||
"canonical_url": "http://localhost:3000/username387/precious-bane175-5h5o",
|
||||
"created_at": "2023-01-23T19:32:22Z",
|
||||
"cover_image": "http://localhost:3000/assets/23-33ea5a2b5af3dc15b9ed90de0b850f67e2390eaec3361d6687d3b9750c699f84.png",
|
||||
"social_image": "http://localhost:3000/assets/23-33ea5a2b5af3dc15b9ed90de0b850f67e2390eaec3361d6687d3b9750c699f84.png",
|
||||
"canonical_url": "http://localhost:3000/username387/brandy-of-the-damned175-2lpf",
|
||||
"created_at": "2023-01-25T12:55:55Z",
|
||||
"edited_at": null,
|
||||
"crossposted_at": null,
|
||||
"published_at": "2023-01-23T19:32:22Z",
|
||||
"last_comment_at": "2023-01-23T19:32:22Z",
|
||||
"published_at": "2023-01-25T12:55:55Z",
|
||||
"last_comment_at": "2023-01-25T12:55:55Z",
|
||||
"reading_time_minutes": 1,
|
||||
"tag_list": ["discuss"],
|
||||
"tags": "discuss",
|
||||
"user": {
|
||||
"name": "Esmeralda \"Buck\" \\:/ Crist",
|
||||
"name": "Claude \"Vicki\" \\:/ McDermott",
|
||||
"username": "username387",
|
||||
"twitter_username": "twitter387",
|
||||
"github_username": "github387",
|
||||
"user_id": 1718,
|
||||
"user_id": 14171,
|
||||
"website_url": null,
|
||||
"profile_image": "/uploads/user/profile_image/1718/e2e6f08c-e476-498e-96b0-a9e6d34453a3.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1718/e2e6f08c-e476-498e-96b0-a9e6d34453a3.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14171/382979c4-c048-4e4a-82a6-a5c99974a316.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14171/382979c4-c048-4e4a-82a6-a5c99974a316.jpeg"
|
||||
},
|
||||
"organization": {
|
||||
"name": "Bogan, Emmerich and Von",
|
||||
"name": "Heller, Stiedemann and Marquardt",
|
||||
"username": "org70",
|
||||
"slug": "org70",
|
||||
"profile_image": "/uploads/organization/profile_image/314/7dd777a0-cddb-4116-b9d2-e0b963ef81f7.png",
|
||||
"profile_image_90": "/uploads/organization/profile_image/314/7dd777a0-cddb-4116-b9d2-e0b963ef81f7.png"
|
||||
"profile_image": "/uploads/organization/profile_image/2320/6e778d6e-80a3-47d0-b8f3-a8f999652ac5.png",
|
||||
"profile_image_90": "/uploads/organization/profile_image/2320/6e778d6e-80a3-47d0-b8f3-a8f999652ac5.png"
|
||||
},
|
||||
"flare_tag": {
|
||||
"name": "discuss",
|
||||
|
|
@ -270,38 +270,38 @@
|
|||
"example": [
|
||||
{
|
||||
"type_of": "article",
|
||||
"id": 770,
|
||||
"title": "Surprised by Joy178",
|
||||
"description": "Pabst retro try-hard vice chillwave paleo poutine skateboard. Mixtape biodiesel food truck cronut...",
|
||||
"readable_publish_date": "Jan 23",
|
||||
"slug": "surprised-by-joy178-4c9i",
|
||||
"path": "/username390/surprised-by-joy178-4c9i",
|
||||
"url": "http://localhost:3000/username390/surprised-by-joy178-4c9i",
|
||||
"id": 6343,
|
||||
"title": "Dance Dance Dance178",
|
||||
"description": "Flannel wayfarers aesthetic normcore forage taxidermy everyday selvage. Muggle magic distillery...",
|
||||
"readable_publish_date": "Jan 25",
|
||||
"slug": "dance-dance-dance178-4m7i",
|
||||
"path": "/username390/dance-dance-dance178-4m7i",
|
||||
"url": "http://localhost:3000/username390/dance-dance-dance178-4m7i",
|
||||
"comments_count": 0,
|
||||
"public_reactions_count": 0,
|
||||
"collection_id": null,
|
||||
"published_timestamp": "2023-01-23T19:32:22Z",
|
||||
"published_timestamp": "2023-01-25T12:55:55Z",
|
||||
"positive_reactions_count": 0,
|
||||
"cover_image": "http://localhost:3000/assets/38-3b0c46cc0d5367229799d282c99b2c42f33501201cac1ceb5c643f9ee11f06c6.png",
|
||||
"social_image": "http://localhost:3000/assets/38-3b0c46cc0d5367229799d282c99b2c42f33501201cac1ceb5c643f9ee11f06c6.png",
|
||||
"canonical_url": "http://localhost:3000/username390/surprised-by-joy178-4c9i",
|
||||
"created_at": "2023-01-23T19:32:22Z",
|
||||
"cover_image": "http://localhost:3000/assets/21-8c16e6ef44da175a1e51f1ba9d0cb55af8a920db6aacbf1e4b7a055afc1b3d30.png",
|
||||
"social_image": "http://localhost:3000/assets/21-8c16e6ef44da175a1e51f1ba9d0cb55af8a920db6aacbf1e4b7a055afc1b3d30.png",
|
||||
"canonical_url": "http://localhost:3000/username390/dance-dance-dance178-4m7i",
|
||||
"created_at": "2023-01-25T12:55:55Z",
|
||||
"edited_at": null,
|
||||
"crossposted_at": null,
|
||||
"published_at": "2023-01-23T19:32:22Z",
|
||||
"last_comment_at": "2023-01-23T19:32:22Z",
|
||||
"published_at": "2023-01-25T12:55:55Z",
|
||||
"last_comment_at": "2023-01-25T12:55:55Z",
|
||||
"reading_time_minutes": 1,
|
||||
"tag_list": ["javascript", "html", "discuss"],
|
||||
"tags": "javascript, html, discuss",
|
||||
"user": {
|
||||
"name": "Devin \"Riley\" \\:/ Corkery",
|
||||
"name": "Carlos \"Laurence\" \\:/ Waelchi",
|
||||
"username": "username390",
|
||||
"twitter_username": "twitter390",
|
||||
"github_username": "github390",
|
||||
"user_id": 1721,
|
||||
"user_id": 14174,
|
||||
"website_url": null,
|
||||
"profile_image": "/uploads/user/profile_image/1721/5946cb4e-6872-4393-bb59-f04c0e6ebdf2.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1721/5946cb4e-6872-4393-bb59-f04c0e6ebdf2.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14174/5e84bae2-6991-4b8c-bf6b-a9cc7b2c8d92.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14174/5e84bae2-6991-4b8c-bf6b-a9cc7b2c8d92.jpeg"
|
||||
},
|
||||
"flare_tag": {
|
||||
"name": "discuss",
|
||||
|
|
@ -311,38 +311,38 @@
|
|||
},
|
||||
{
|
||||
"type_of": "article",
|
||||
"id": 769,
|
||||
"title": "O Pioneers!177",
|
||||
"description": "Wayfarers cardigan roof yuccie scenester loko hashtag. Mumblecore cliche sriracha +1. Tilde readymade...",
|
||||
"readable_publish_date": "Jan 23",
|
||||
"slug": "o-pioneers177-23ob",
|
||||
"path": "/username389/o-pioneers177-23ob",
|
||||
"url": "http://localhost:3000/username389/o-pioneers177-23ob",
|
||||
"id": 6342,
|
||||
"title": "Time To Murder And Create177",
|
||||
"description": "Cornhole art party lumbersexual literally cred flexitarian marfa. Deep v salvia asymmetrical. Selvage...",
|
||||
"readable_publish_date": "Jan 25",
|
||||
"slug": "time-to-murder-and-create177-3de5",
|
||||
"path": "/username389/time-to-murder-and-create177-3de5",
|
||||
"url": "http://localhost:3000/username389/time-to-murder-and-create177-3de5",
|
||||
"comments_count": 0,
|
||||
"public_reactions_count": 0,
|
||||
"collection_id": null,
|
||||
"published_timestamp": "2023-01-23T19:32:22Z",
|
||||
"published_timestamp": "2023-01-25T12:55:55Z",
|
||||
"positive_reactions_count": 0,
|
||||
"cover_image": "http://localhost:3000/assets/15-680d1f40ea6901cfc18b12fab21c19e432463aa63a44853f8ad84e469adb2e54.png",
|
||||
"social_image": "http://localhost:3000/assets/15-680d1f40ea6901cfc18b12fab21c19e432463aa63a44853f8ad84e469adb2e54.png",
|
||||
"canonical_url": "http://localhost:3000/username389/o-pioneers177-23ob",
|
||||
"created_at": "2023-01-23T19:32:22Z",
|
||||
"cover_image": "http://localhost:3000/assets/6-52ee7e994a1369d112d656dfffbf324d1f209a7372a761776f77aeea47b0e4a8.png",
|
||||
"social_image": "http://localhost:3000/assets/6-52ee7e994a1369d112d656dfffbf324d1f209a7372a761776f77aeea47b0e4a8.png",
|
||||
"canonical_url": "http://localhost:3000/username389/time-to-murder-and-create177-3de5",
|
||||
"created_at": "2023-01-25T12:55:55Z",
|
||||
"edited_at": null,
|
||||
"crossposted_at": null,
|
||||
"published_at": "2023-01-23T19:32:22Z",
|
||||
"last_comment_at": "2023-01-23T19:32:22Z",
|
||||
"published_at": "2023-01-25T12:55:55Z",
|
||||
"last_comment_at": "2023-01-25T12:55:55Z",
|
||||
"reading_time_minutes": 1,
|
||||
"tag_list": ["javascript", "html", "discuss"],
|
||||
"tags": "javascript, html, discuss",
|
||||
"user": {
|
||||
"name": "Mollie \"Karl\" \\:/ Bosco",
|
||||
"name": "Adolph \"Hugh\" \\:/ Schuppe",
|
||||
"username": "username389",
|
||||
"twitter_username": "twitter389",
|
||||
"github_username": "github389",
|
||||
"user_id": 1720,
|
||||
"user_id": 14173,
|
||||
"website_url": null,
|
||||
"profile_image": "/uploads/user/profile_image/1720/3237bed0-747d-4a2a-9712-02939f2a452b.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1720/3237bed0-747d-4a2a-9712-02939f2a452b.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14173/fbce19a4-f55a-4903-be74-1c123559a73c.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14173/fbce19a4-f55a-4903-be74-1c123559a73c.jpeg"
|
||||
},
|
||||
"flare_tag": {
|
||||
"name": "discuss",
|
||||
|
|
@ -352,38 +352,38 @@
|
|||
},
|
||||
{
|
||||
"type_of": "article",
|
||||
"id": 768,
|
||||
"title": "The Grapes of Wrath176",
|
||||
"description": "Everyday migas yr yuccie dreamcatcher. Actually plaid hammock poutine pitchfork. Vinegar normcore...",
|
||||
"readable_publish_date": "Jan 23",
|
||||
"slug": "the-grapes-of-wrath176-4baf",
|
||||
"path": "/username388/the-grapes-of-wrath176-4baf",
|
||||
"url": "http://localhost:3000/username388/the-grapes-of-wrath176-4baf",
|
||||
"id": 6341,
|
||||
"title": "I Know Why the Caged Bird Sings176",
|
||||
"description": "Cold-pressed vhs vinegar mumblecore kale chips muggle magic. Next level ethical post-ironic truffaut...",
|
||||
"readable_publish_date": "Jan 25",
|
||||
"slug": "i-know-why-the-caged-bird-sings176-15fg",
|
||||
"path": "/username388/i-know-why-the-caged-bird-sings176-15fg",
|
||||
"url": "http://localhost:3000/username388/i-know-why-the-caged-bird-sings176-15fg",
|
||||
"comments_count": 0,
|
||||
"public_reactions_count": 0,
|
||||
"collection_id": null,
|
||||
"published_timestamp": "2023-01-23T19:32:22Z",
|
||||
"published_timestamp": "2023-01-25T12:55:55Z",
|
||||
"positive_reactions_count": 0,
|
||||
"cover_image": "http://localhost:3000/assets/12-f9d673ae4ff98002f782ab82c641f2f26673be728e8f5409bea83f2d1de15323.png",
|
||||
"social_image": "http://localhost:3000/assets/12-f9d673ae4ff98002f782ab82c641f2f26673be728e8f5409bea83f2d1de15323.png",
|
||||
"canonical_url": "http://localhost:3000/username388/the-grapes-of-wrath176-4baf",
|
||||
"created_at": "2023-01-23T19:32:22Z",
|
||||
"cover_image": "http://localhost:3000/assets/6-52ee7e994a1369d112d656dfffbf324d1f209a7372a761776f77aeea47b0e4a8.png",
|
||||
"social_image": "http://localhost:3000/assets/6-52ee7e994a1369d112d656dfffbf324d1f209a7372a761776f77aeea47b0e4a8.png",
|
||||
"canonical_url": "http://localhost:3000/username388/i-know-why-the-caged-bird-sings176-15fg",
|
||||
"created_at": "2023-01-25T12:55:55Z",
|
||||
"edited_at": null,
|
||||
"crossposted_at": null,
|
||||
"published_at": "2023-01-23T19:32:22Z",
|
||||
"last_comment_at": "2023-01-23T19:32:22Z",
|
||||
"published_at": "2023-01-25T12:55:55Z",
|
||||
"last_comment_at": "2023-01-25T12:55:55Z",
|
||||
"reading_time_minutes": 1,
|
||||
"tag_list": ["javascript", "html", "discuss"],
|
||||
"tags": "javascript, html, discuss",
|
||||
"user": {
|
||||
"name": "Mohamed \"Mei\" \\:/ Walker",
|
||||
"name": "Erasmo \"Maudie\" \\:/ Sipes",
|
||||
"username": "username388",
|
||||
"twitter_username": "twitter388",
|
||||
"github_username": "github388",
|
||||
"user_id": 1719,
|
||||
"user_id": 14172,
|
||||
"website_url": null,
|
||||
"profile_image": "/uploads/user/profile_image/1719/64e0ddf4-c33c-459a-b8d1-306866dd311f.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1719/64e0ddf4-c33c-459a-b8d1-306866dd311f.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14172/3e3db19f-a926-4de3-8f0f-855758865895.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14172/3e3db19f-a926-4de3-8f0f-855758865895.jpeg"
|
||||
},
|
||||
"flare_tag": {
|
||||
"name": "discuss",
|
||||
|
|
@ -428,40 +428,40 @@
|
|||
"application/json": {
|
||||
"example": {
|
||||
"type_of": "article",
|
||||
"id": 771,
|
||||
"title": "The Road Less Traveled179",
|
||||
"description": "Beard tofu pitchfork truffaut asymmetrical chambray skateboard sartorial. Flannel pour-over next...",
|
||||
"readable_publish_date": "Jan 23",
|
||||
"slug": "the-road-less-traveled179-3d3k",
|
||||
"path": "/username391/the-road-less-traveled179-3d3k",
|
||||
"url": "http://localhost:3000/username391/the-road-less-traveled179-3d3k",
|
||||
"id": 6344,
|
||||
"title": "A Monstrous Regiment of Women179",
|
||||
"description": "Everyday mixtape etsy slow-carb distillery. Flannel organic muggle magic pour-over...",
|
||||
"readable_publish_date": "Jan 25",
|
||||
"slug": "a-monstrous-regiment-of-women179-2i54",
|
||||
"path": "/username391/a-monstrous-regiment-of-women179-2i54",
|
||||
"url": "http://localhost:3000/username391/a-monstrous-regiment-of-women179-2i54",
|
||||
"comments_count": 0,
|
||||
"public_reactions_count": 0,
|
||||
"collection_id": null,
|
||||
"published_timestamp": "2023-01-23T19:32:22Z",
|
||||
"published_timestamp": "2023-01-25T12:55:55Z",
|
||||
"positive_reactions_count": 0,
|
||||
"cover_image": "http://localhost:3000/assets/32-543e7c7f0a939e829c37aab48d705350b855c887dc16dfab30fd9a0825c09291.png",
|
||||
"social_image": "http://localhost:3000/assets/32-543e7c7f0a939e829c37aab48d705350b855c887dc16dfab30fd9a0825c09291.png",
|
||||
"canonical_url": "http://localhost:3000/username391/the-road-less-traveled179-3d3k",
|
||||
"created_at": "2023-01-23T19:32:22Z",
|
||||
"cover_image": "http://localhost:3000/assets/20-92231c1d2ddb3b707b8c1b5cb711ef17632ff2a64495970a58518ce33c3a4f76.png",
|
||||
"social_image": "http://localhost:3000/assets/20-92231c1d2ddb3b707b8c1b5cb711ef17632ff2a64495970a58518ce33c3a4f76.png",
|
||||
"canonical_url": "http://localhost:3000/username391/a-monstrous-regiment-of-women179-2i54",
|
||||
"created_at": "2023-01-25T12:55:55Z",
|
||||
"edited_at": null,
|
||||
"crossposted_at": null,
|
||||
"published_at": "2023-01-23T19:32:22Z",
|
||||
"last_comment_at": "2023-01-23T19:32:22Z",
|
||||
"published_at": "2023-01-25T12:55:55Z",
|
||||
"last_comment_at": "2023-01-25T12:55:55Z",
|
||||
"reading_time_minutes": 1,
|
||||
"tag_list": "discuss",
|
||||
"tags": ["discuss"],
|
||||
"body_html": "<p>Beard tofu pitchfork truffaut asymmetrical chambray skateboard sartorial. Flannel pour-over next level keffiyeh.</p>\n\n<p>Cornhole blue bottle ennui tousled sustainable swag hella asymmetrical.</p>\n\n",
|
||||
"body_markdown": "---\ntitle: The Road Less Traveled179\npublished: true\ntags: discuss\ndate: \nseries: \ncanonical_url: \n\n---\n\nBeard tofu pitchfork truffaut asymmetrical chambray skateboard sartorial. Flannel pour-over next level keffiyeh.\n\n\nCornhole blue bottle ennui tousled sustainable swag hella asymmetrical.\n\n",
|
||||
"body_html": "<p>Everyday mixtape etsy slow-carb distillery. Flannel organic muggle magic pour-over skateboard.</p>\n\n<p>Meditation taxidermy shabby chic pabst listicle leggings artisan cleanse. Artisan austin bespoke. Helvetica swag twee organic cray forage pitchfork.</p>\n\n",
|
||||
"body_markdown": "---\ntitle: A Monstrous Regiment of Women179\npublished: true\ntags: discuss\ndate: \nseries: \ncanonical_url: \n\n---\n\nEveryday mixtape etsy slow-carb distillery. Flannel organic muggle magic pour-over skateboard.\n\n\nMeditation taxidermy shabby chic pabst listicle leggings artisan cleanse. Artisan austin bespoke. Helvetica swag twee organic cray forage pitchfork.\n\n",
|
||||
"user": {
|
||||
"name": "Roman \"Lea\" \\:/ Fay",
|
||||
"name": "Steve \"Michelle\" \\:/ Ziemann",
|
||||
"username": "username391",
|
||||
"twitter_username": "twitter391",
|
||||
"github_username": "github391",
|
||||
"user_id": 1722,
|
||||
"user_id": 14175,
|
||||
"website_url": null,
|
||||
"profile_image": "/uploads/user/profile_image/1722/ecf4394a-abe5-47f1-aa17-d26f0205e7fe.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1722/ecf4394a-abe5-47f1-aa17-d26f0205e7fe.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14175/3fc2a914-26a3-4c7e-a4e2-573f70f96d7e.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14175/3fc2a914-26a3-4c7e-a4e2-573f70f96d7e.jpeg"
|
||||
},
|
||||
"flare_tag": {
|
||||
"name": "discuss",
|
||||
|
|
@ -517,40 +517,40 @@
|
|||
"application/json": {
|
||||
"example": {
|
||||
"type_of": "article",
|
||||
"id": 772,
|
||||
"title": "The Soldier's Art180",
|
||||
"description": "Typewriter authentic try-hard knausgaard. Fixie pitchfork everyday letterpress slow-carb cold-pressed...",
|
||||
"readable_publish_date": "Jan 23",
|
||||
"slug": "the-soldiers-art180-3gme",
|
||||
"path": "/username392/the-soldiers-art180-3gme",
|
||||
"url": "http://localhost:3000/username392/the-soldiers-art180-3gme",
|
||||
"id": 6345,
|
||||
"title": "Specimen Days180",
|
||||
"description": "Cliche farm-to-table venmo hashtag. Pop-up kitsch thundercats jean shorts sriracha keytar goth. Art...",
|
||||
"readable_publish_date": "Jan 25",
|
||||
"slug": "specimen-days180-3mi4",
|
||||
"path": "/username392/specimen-days180-3mi4",
|
||||
"url": "http://localhost:3000/username392/specimen-days180-3mi4",
|
||||
"comments_count": 0,
|
||||
"public_reactions_count": 0,
|
||||
"collection_id": null,
|
||||
"published_timestamp": "2023-01-23T19:32:23Z",
|
||||
"published_timestamp": "2023-01-25T12:55:55Z",
|
||||
"positive_reactions_count": 0,
|
||||
"cover_image": "http://localhost:3000/assets/34-d27f3a4a9f6f1f373003c74b31749764691f510b2a18b55039478583864a067e.png",
|
||||
"social_image": "http://localhost:3000/assets/34-d27f3a4a9f6f1f373003c74b31749764691f510b2a18b55039478583864a067e.png",
|
||||
"canonical_url": "http://localhost:3000/username392/the-soldiers-art180-3gme",
|
||||
"created_at": "2023-01-23T19:32:23Z",
|
||||
"edited_at": "2023-01-23T19:32:23Z",
|
||||
"cover_image": "http://localhost:3000/assets/3-93b6b57b5a6115cffe5d63d29a22825eb9e65f647bfef57a88244bc2b98186f0.png",
|
||||
"social_image": "http://localhost:3000/assets/3-93b6b57b5a6115cffe5d63d29a22825eb9e65f647bfef57a88244bc2b98186f0.png",
|
||||
"canonical_url": "http://localhost:3000/username392/specimen-days180-3mi4",
|
||||
"created_at": "2023-01-25T12:55:55Z",
|
||||
"edited_at": "2023-01-25T12:55:55Z",
|
||||
"crossposted_at": null,
|
||||
"published_at": "2023-01-23T19:32:23Z",
|
||||
"last_comment_at": "2023-01-23T19:32:23Z",
|
||||
"published_at": "2023-01-25T12:55:55Z",
|
||||
"last_comment_at": "2023-01-25T12:55:55Z",
|
||||
"reading_time_minutes": 1,
|
||||
"tag_list": "",
|
||||
"tags": [],
|
||||
"body_html": "<p><strong>New</strong> body for the article</p>\n\n",
|
||||
"body_markdown": "**New** body for the article",
|
||||
"user": {
|
||||
"name": "Kyle \"Dexter\" \\:/ Rosenbaum",
|
||||
"name": "Louis \"Morris\" \\:/ Bernier",
|
||||
"username": "username392",
|
||||
"twitter_username": "twitter392",
|
||||
"github_username": "github392",
|
||||
"user_id": 1723,
|
||||
"user_id": 14176,
|
||||
"website_url": null,
|
||||
"profile_image": "/uploads/user/profile_image/1723/ff6c2ab4-a8da-4881-bb8c-49d1dddd6c22.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1723/ff6c2ab4-a8da-4881-bb8c-49d1dddd6c22.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14176/035a89ea-ed51-4fca-b3b2-51d9de7529cb.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14176/035a89ea-ed51-4fca-b3b2-51d9de7529cb.jpeg"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -633,40 +633,40 @@
|
|||
"application/json": {
|
||||
"example": {
|
||||
"type_of": "article",
|
||||
"id": 775,
|
||||
"title": "Terrible Swift Sword183",
|
||||
"description": "Pop-up celiac humblebrag vinegar. Mlkshk plaid bushwick brunch. Austin banh mi synth. Etsy shoreditch...",
|
||||
"readable_publish_date": "Jan 23",
|
||||
"slug": "terrible-swift-sword183-53a9",
|
||||
"path": "/username396/terrible-swift-sword183-53a9",
|
||||
"url": "http://localhost:3000/username396/terrible-swift-sword183-53a9",
|
||||
"id": 6348,
|
||||
"title": "Waiting for the Barbarians183",
|
||||
"description": "Occupy synth semiotics forage banjo fanny pack. Lomo crucifix letterpress. Sustainable you probably...",
|
||||
"readable_publish_date": "Jan 25",
|
||||
"slug": "waiting-for-the-barbarians183-573k",
|
||||
"path": "/username396/waiting-for-the-barbarians183-573k",
|
||||
"url": "http://localhost:3000/username396/waiting-for-the-barbarians183-573k",
|
||||
"comments_count": 0,
|
||||
"public_reactions_count": 0,
|
||||
"collection_id": null,
|
||||
"published_timestamp": "2023-01-23T19:32:23Z",
|
||||
"published_timestamp": "2023-01-25T12:55:56Z",
|
||||
"positive_reactions_count": 0,
|
||||
"cover_image": "http://localhost:3000/assets/11-f4a704eef06d25d2d2fa2026ef08f1089754beaf5b6ee01160115d3c36ed3d34.png",
|
||||
"social_image": "http://localhost:3000/assets/11-f4a704eef06d25d2d2fa2026ef08f1089754beaf5b6ee01160115d3c36ed3d34.png",
|
||||
"canonical_url": "http://localhost:3000/username396/terrible-swift-sword183-53a9",
|
||||
"created_at": "2023-01-23T19:32:23Z",
|
||||
"cover_image": "http://localhost:3000/assets/28-45c03a7ee6bce4cd3ddd541bd942a0c7995fa77e4b680563681529e9dd14a676.png",
|
||||
"social_image": "http://localhost:3000/assets/28-45c03a7ee6bce4cd3ddd541bd942a0c7995fa77e4b680563681529e9dd14a676.png",
|
||||
"canonical_url": "http://localhost:3000/username396/waiting-for-the-barbarians183-573k",
|
||||
"created_at": "2023-01-25T12:55:56Z",
|
||||
"edited_at": null,
|
||||
"crossposted_at": null,
|
||||
"published_at": "2023-01-23T19:32:23Z",
|
||||
"last_comment_at": "2023-01-23T19:32:23Z",
|
||||
"published_at": "2023-01-25T12:55:56Z",
|
||||
"last_comment_at": "2023-01-25T12:55:56Z",
|
||||
"reading_time_minutes": 1,
|
||||
"tag_list": "discuss",
|
||||
"tags": ["discuss"],
|
||||
"body_html": "<p>Pop-up celiac humblebrag vinegar. Mlkshk plaid bushwick brunch. Austin banh mi synth. Etsy shoreditch photo booth farm-to-table yr godard forage.</p>\n\n<p>Direct trade blog ethical mlkshk. Occupy shabby chic chambray pbr&b synth deep v jean shorts yr.</p>\n\n",
|
||||
"body_markdown": "---\ntitle: Terrible Swift Sword183\npublished: true\ntags: discuss\ndate: \nseries: \ncanonical_url: \n\n---\n\nPop-up celiac humblebrag vinegar. Mlkshk plaid bushwick brunch. Austin banh mi synth. Etsy shoreditch photo booth farm-to-table yr godard forage.\n\n\nDirect trade blog ethical mlkshk. Occupy shabby chic chambray pbr&b synth deep v jean shorts yr.\n\n",
|
||||
"body_html": "<p>Occupy synth semiotics forage banjo fanny pack. Lomo crucifix letterpress. Sustainable you probably haven't heard of them pabst humblebrag pork belly.</p>\n\n<p>Migas flexitarian try-hard deep v letterpress forage neutra gentrify. Asymmetrical yr butcher shoreditch pitchfork chicharrones health.</p>\n\n",
|
||||
"body_markdown": "---\ntitle: Waiting for the Barbarians183\npublished: true\ntags: discuss\ndate: \nseries: \ncanonical_url: \n\n---\n\nOccupy synth semiotics forage banjo fanny pack. Lomo crucifix letterpress. Sustainable you probably haven't heard of them pabst humblebrag pork belly.\n\n\nMigas flexitarian try-hard deep v letterpress forage neutra gentrify. Asymmetrical yr butcher shoreditch pitchfork chicharrones health.\n\n",
|
||||
"user": {
|
||||
"name": "Otha \"Marva\" \\:/ Hane",
|
||||
"name": "Sue \"Cristopher\" \\:/ Smith",
|
||||
"username": "username396",
|
||||
"twitter_username": "twitter396",
|
||||
"github_username": "github396",
|
||||
"user_id": 1727,
|
||||
"user_id": 14180,
|
||||
"website_url": null,
|
||||
"profile_image": "/uploads/user/profile_image/1727/d0761480-b5f8-4007-b8a7-49c014b6fc45.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1727/d0761480-b5f8-4007-b8a7-49c014b6fc45.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14180/3fe8a239-205e-4c96-bbe2-1af496c6f8f0.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14180/3fe8a239-205e-4c96-bbe2-1af496c6f8f0.jpeg"
|
||||
},
|
||||
"flare_tag": {
|
||||
"name": "discuss",
|
||||
|
|
@ -966,12 +966,12 @@
|
|||
"content": {
|
||||
"application/json": {
|
||||
"example": {
|
||||
"id": 42,
|
||||
"id": 608,
|
||||
"approved": true,
|
||||
"body_markdown": "# Hi, this is ad\nYep, it's an ad",
|
||||
"cached_tag_list": "",
|
||||
"clicks_count": 0,
|
||||
"created_at": "2023-01-23T14:32:24.347-05:00",
|
||||
"created_at": "2023-01-25T09:55:57.181-03:00",
|
||||
"display_to": "all",
|
||||
"impressions_count": 0,
|
||||
"name": "Example Ad",
|
||||
|
|
@ -981,7 +981,7 @@
|
|||
"published": true,
|
||||
"success_rate": 0.0,
|
||||
"type_of": "in_house",
|
||||
"updated_at": "2023-01-23T14:32:24.347-05:00",
|
||||
"updated_at": "2023-01-25T09:55:57.181-03:00",
|
||||
"tag_list": ""
|
||||
}
|
||||
}
|
||||
|
|
@ -1105,22 +1105,22 @@
|
|||
"content": {
|
||||
"application/json": {
|
||||
"example": {
|
||||
"id": 43,
|
||||
"id": 609,
|
||||
"approved": false,
|
||||
"body_markdown": "Hello _hey_ Hey hey 9",
|
||||
"cached_tag_list": "",
|
||||
"clicks_count": 0,
|
||||
"created_at": "2023-01-23T14:32:24.466-05:00",
|
||||
"created_at": "2023-01-25T09:55:57.330-03:00",
|
||||
"display_to": "all",
|
||||
"impressions_count": 0,
|
||||
"name": "Display Ad 43",
|
||||
"organization_id": 315,
|
||||
"name": "Display Ad 609",
|
||||
"organization_id": 2321,
|
||||
"placement_area": "sidebar_left",
|
||||
"processed_html": "<p>Hello <em>hey</em> Hey hey 9</p>",
|
||||
"published": false,
|
||||
"success_rate": 0.0,
|
||||
"type_of": "in_house",
|
||||
"updated_at": "2023-01-23T14:32:24.469-05:00",
|
||||
"updated_at": "2023-01-25T09:55:57.333-03:00",
|
||||
"tag_list": ""
|
||||
}
|
||||
}
|
||||
|
|
@ -1177,19 +1177,19 @@
|
|||
"approved": false,
|
||||
"body_markdown": "Hello _hey_ Hey hey 10",
|
||||
"display_to": "all",
|
||||
"name": "Display Ad 44",
|
||||
"organization_id": 316,
|
||||
"name": "Display Ad 610",
|
||||
"organization_id": 2322,
|
||||
"placement_area": "sidebar_left",
|
||||
"published": false,
|
||||
"processed_html": "<p>Hello <em>hey</em> Hey hey 10</p>",
|
||||
"cached_tag_list": "",
|
||||
"id": 44,
|
||||
"id": 610,
|
||||
"clicks_count": 0,
|
||||
"created_at": "2023-01-23T14:32:24.619-05:00",
|
||||
"created_at": "2023-01-25T09:55:57.493-03:00",
|
||||
"impressions_count": 0,
|
||||
"success_rate": 0.0,
|
||||
"type_of": "in_house",
|
||||
"updated_at": "2023-01-23T14:32:24.622-05:00",
|
||||
"updated_at": "2023-01-25T09:55:57.495-03:00",
|
||||
"tag_list": ""
|
||||
}
|
||||
}
|
||||
|
|
@ -1345,12 +1345,12 @@
|
|||
"application/json": {
|
||||
"example": [
|
||||
{
|
||||
"id": 1440,
|
||||
"id": 13670,
|
||||
"name": "tag3",
|
||||
"points": 1.0
|
||||
},
|
||||
{
|
||||
"id": 1441,
|
||||
"id": 13671,
|
||||
"name": "tag4",
|
||||
"points": 1.0
|
||||
}
|
||||
|
|
@ -1399,23 +1399,23 @@
|
|||
"example": [
|
||||
{
|
||||
"type_of": "user_follower",
|
||||
"id": 40,
|
||||
"created_at": "2023-01-23T19:32:25Z",
|
||||
"user_id": 1758,
|
||||
"name": "Hugo \"Dion\" \\:/ Langworth",
|
||||
"id": 399,
|
||||
"created_at": "2023-01-25T12:55:58Z",
|
||||
"user_id": 14211,
|
||||
"name": "Jonah \"Theola\" \\:/ Mosciski",
|
||||
"path": "/username427",
|
||||
"username": "username427",
|
||||
"profile_image": "/uploads/user/profile_image/1758/2136cccc-b2dd-4d44-9cc1-5df45abbac45.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14211/6d4b8204-8710-4afe-bfe3-6cb8479e7c17.jpeg"
|
||||
},
|
||||
{
|
||||
"type_of": "user_follower",
|
||||
"id": 39,
|
||||
"created_at": "2023-01-23T19:32:25Z",
|
||||
"user_id": 1756,
|
||||
"name": "Tracey \"Tosha\" \\:/ Corkery",
|
||||
"id": 398,
|
||||
"created_at": "2023-01-25T12:55:57Z",
|
||||
"user_id": 14209,
|
||||
"name": "Merlyn \"Cortez\" \\:/ Lowe",
|
||||
"path": "/username425",
|
||||
"username": "username425",
|
||||
"profile_image": "/uploads/user/profile_image/1756/3d424c08-e636-4b20-8b60-3d73442f3dac.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14209/35c0bd07-5aaa-4cb1-86dd-2be4d28892be.jpeg"
|
||||
}
|
||||
],
|
||||
"schema": {
|
||||
|
|
@ -1469,6 +1469,97 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"/api/pages": {
|
||||
"get": {
|
||||
"summary": "show details for all pages",
|
||||
"security": [],
|
||||
"tags": ["pages"],
|
||||
"description": "This endpoint allows the client to retrieve details for all Page objects.",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "successful",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"example": [
|
||||
{
|
||||
"id": 226,
|
||||
"title": "Mr Standfast",
|
||||
"slug": "patience_plain",
|
||||
"description": "Ut temporibus odio illum.",
|
||||
"is_top_level_path": false,
|
||||
"landing_page": false,
|
||||
"body_html": null,
|
||||
"body_json": null,
|
||||
"body_markdown": "Reiciendis autem fuga et.",
|
||||
"processed_html": "<p>Reiciendis autem fuga et.</p>\n\n",
|
||||
"social_image": {
|
||||
"url": null
|
||||
},
|
||||
"template": "contained"
|
||||
}
|
||||
],
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/Page"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/pages/{id}": {
|
||||
"get": {
|
||||
"summary": "show details for a page",
|
||||
"security": [],
|
||||
"tags": ["pages"],
|
||||
"description": "This endpoint allows the client to retrieve details for a single Page object, specified by ID.",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true,
|
||||
"description": "The ID of the page.",
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"format": "int32",
|
||||
"minimum": 1
|
||||
},
|
||||
"example": 1
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "successful",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"example": {
|
||||
"id": 227,
|
||||
"title": "Tirra Lirra by the River",
|
||||
"slug": "appointment-stuff",
|
||||
"description": "Ducimus omnis est ullam.",
|
||||
"is_top_level_path": false,
|
||||
"landing_page": false,
|
||||
"body_html": null,
|
||||
"body_json": null,
|
||||
"body_markdown": "Id dolores distinctio aliquam.",
|
||||
"processed_html": "<p>Id dolores distinctio aliquam.</p>\n\n",
|
||||
"social_image": {
|
||||
"url": null
|
||||
},
|
||||
"template": "contained"
|
||||
},
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Page"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/podcast_episodes": {
|
||||
"get": {
|
||||
"summary": "Podcast Episodes",
|
||||
|
|
@ -1503,14 +1594,14 @@
|
|||
{
|
||||
"type_of": "podcast_episodes",
|
||||
"class_name": "PodcastEpisode",
|
||||
"id": 48,
|
||||
"id": 338,
|
||||
"path": "/codenewbie/slug-4",
|
||||
"title": "6",
|
||||
"image_url": "/uploads/podcast/image/38/453c6471-d092-4f05-ab00-01e34453d2ef.jpeg",
|
||||
"title": "17",
|
||||
"image_url": "/uploads/podcast/image/335/a0c30fbb-ff1e-4f1c-bba1-2cd735070ba4.jpeg",
|
||||
"podcast": {
|
||||
"title": "Delirium Tremens",
|
||||
"title": "Yeti Imperial Stout",
|
||||
"slug": "codenewbie",
|
||||
"image_url": "/uploads/podcast/image/38/453c6471-d092-4f05-ab00-01e34453d2ef.jpeg"
|
||||
"image_url": "/uploads/podcast/image/335/a0c30fbb-ff1e-4f1c-bba1-2cd735070ba4.jpeg"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
|
@ -1563,8 +1654,8 @@
|
|||
"example": {
|
||||
"type_of": "profile_image",
|
||||
"image_of": "user",
|
||||
"profile_image": "/uploads/user/profile_image/1762/e3faa941-2cd5-4fcd-8787-34fec02c6194.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/1762/e3faa941-2cd5-4fcd-8787-34fec02c6194.jpeg"
|
||||
"profile_image": "/uploads/user/profile_image/14217/58250f43-4319-4884-82b4-1029e5a026c2.jpeg",
|
||||
"profile_image_90": "/uploads/user/profile_image/14217/58250f43-4319-4884-82b4-1029e5a026c2.jpeg"
|
||||
},
|
||||
"schema": {
|
||||
"type": "object",
|
||||
|
|
@ -1637,8 +1728,8 @@
|
|||
"example": {
|
||||
"result": "create",
|
||||
"category": "like",
|
||||
"id": 29,
|
||||
"reactable_id": 779,
|
||||
"id": 1028,
|
||||
"reactable_id": 6352,
|
||||
"reactable_type": "Article"
|
||||
}
|
||||
}
|
||||
|
|
@ -1706,8 +1797,8 @@
|
|||
"example": {
|
||||
"result": "none",
|
||||
"category": "like",
|
||||
"id": 31,
|
||||
"reactable_id": 781,
|
||||
"id": 1030,
|
||||
"reactable_id": 6354,
|
||||
"reactable_type": "Article"
|
||||
}
|
||||
}
|
||||
|
|
@ -2210,6 +2301,54 @@
|
|||
},
|
||||
"required": ["id", "name", "points"]
|
||||
},
|
||||
"Page": {
|
||||
"description": "Representation of a page object",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Title of the page"
|
||||
},
|
||||
"slug": {
|
||||
"type": "string",
|
||||
"description": "Used to link to this page in URLs, must be unique and URL-safe"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "For internal use, helps similar pages from one another"
|
||||
},
|
||||
"body_markdown": {
|
||||
"type": "string",
|
||||
"description": "The text (in markdown) of the ad (required)",
|
||||
"nullable": true
|
||||
},
|
||||
"body_json": {
|
||||
"type": "string",
|
||||
"description": "For JSON pages, the JSON body",
|
||||
"nullable": true
|
||||
},
|
||||
"is_top_level_path": {
|
||||
"type": "boolean",
|
||||
"description": "If true, the page is available at '/{slug}' instead of '/page/{slug}', use with caution"
|
||||
},
|
||||
"social_image": {
|
||||
"type": "object",
|
||||
"nullable": true
|
||||
},
|
||||
"template": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"contained",
|
||||
"full_within_layout",
|
||||
"nav_bar_included",
|
||||
"json"
|
||||
],
|
||||
"default": "contained",
|
||||
"description": "Controls what kind of layout the page is rendered in"
|
||||
}
|
||||
},
|
||||
"required": ["title", "slug", "description", "template"]
|
||||
},
|
||||
"PodcastEpisodeIndex": {
|
||||
"description": "Representation of a podcast episode returned in a list",
|
||||
"type": "object",
|
||||
|
|
|
|||