<blockquote>
<p>But this is because while <a href="https://github.com/zerebubuth" class="user-mention">@zerebubuth</a> and I agree on 95% of cgimap/rails discussions, the one thing we slightly disagree on is the final destination.</p>
</blockquote>
<p><a href="https://github.com/gravitystorm" class="user-mention">@gravitystorm</a> is correct: We disagree! <g-emoji alias="wink" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f609.png" ios-version="6.0">😉</g-emoji></p>
<p>In this situation, my preferred solution would not involve the editing API at all, but instead be a completely separate service which could be run and scaled entirely independently. I think that the more we add to the editing API, the more difficult it becomes to run, maintain and modify in the future.</p>
<p>Having said that, I also don't think that my hand-waving opinions should stand in the way of adding useful functionality. I think that adding something like this would be a good idea, and would be useful.</p>
<blockquote>
<p>The "fordisplay" call behaves identical to "full" for visible objects, but for invisible objects will return a previous, visible version of the object, together with either current or previous versions of dependencies.</p>
</blockquote>
<p>Is there any restriction on which previous, visible version of the object will be returned? It would seem sensible that it would return the most recent version that was visible. Are there difficulties guaranteeing that? What would happen if the current version is deleted and the only previous version is redacted?</p>
<p>If it can return either the current or the previous versions of dependencies, is it possible that it returns deleted versions of nodes used in a way? Could the API call be defined to return the versions of dependencies which were visible at the time that the element was deleted?</p>
<p>I'm slightly concerned about putting <code>deleted="true"</code> at the root of the XML document as well, as it would be effectively extending the XML content with style information. That seems like something that could be handled in the client javascript by falling back to <code>/fordisplay</code> (I prefer <a href="https://github.com/Zverik" class="user-mention">@Zverik</a>'s suggestion of <code>/last_visible</code>) if the current <code>/full</code> returns a <code>visible="false"</code> or 404 entry. Or perhaps the <code>/fordisplay</code> call could return the current version always, <em>plus</em> the last visible version if the current version is not visible?</p>
<blockquote>
<p>... implement them both in rails and cgimap or just in one, and if just in one what would be preferred?</p>
<p>Naturally just adding something to cgimap is rather problematic at this point in time.</p>
</blockquote>
<p>Yes, an implementation in both would be very welcome, or just Rails if only one is being done. Unfortunately, we're still stuck halfway without a full replacement for the Rails API in cgimap(-ruby). If anyone would like to help with that, then please take a look at the <a href="https://github.com/zerebubuth/openstreetmap-cgimap/issues">Cgimap issues</a>, which I've tried to mark up with difficulty levels. Please get in touch with me if there's something I can do to help you get started with Cgimap.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/pull/1448#issuecomment-281077410">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABWnLX2SyJceWkXHYzXv9O5rAtKROrx8ks5reZMQgaJpZM4MFd7Q">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABWnLfTLgg_8QK1E2g-k8a2In35LDcLKks5reZMQgaJpZM4MFd7Q.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/openstreetmap/openstreetmap-website/pull/1448#issuecomment-281077410"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/openstreetmap/openstreetmap-website","title":"openstreetmap/openstreetmap-website","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/openstreetmap/openstreetmap-website"}},"updates":{"snippets":[{"icon":"PERSON","message":"@zerebubuth in #1448: \u003e But this is because while @zerebubuth and I agree on 95% of cgimap/rails discussions, the one thing we slightly disagree on is the final destination.\r\n\r\n@gravitystorm is correct: We disagree! :wink:\r\n\r\nIn this situation, my preferred solution would not involve the editing API at all, but instead be a completely separate service which could be run and scaled entirely independently. I think that the more we add to the editing API, the more difficult it becomes to run, maintain and modify in the future.\r\n\r\nHaving said that, I also don't think that my hand-waving opinions should stand in the way of adding useful functionality. I think that adding something like this would be a good idea, and would be useful.\r\n\r\n\u003e The \"fordisplay\" call behaves identical to \"full\" for visible objects, but for invisible objects will return a previous, visible version of the object, together with either current or previous versions of dependencies.\r\n\r\nIs there any restriction on which previous, visible version of the object will be returned? It would seem sensible that it would return the most recent version that was visible. Are there difficulties guaranteeing that? What would happen if the current version is deleted and the only previous version is redacted?\r\n\r\nIf it can return either the current or the previous versions of dependencies, is it possible that it returns deleted versions of nodes used in a way? Could the API call be defined to return the versions of dependencies which were visible at the time that the element was deleted?\r\n\r\nI'm slightly concerned about putting `deleted=\"true\"` at the root of the XML document as well, as it would be effectively extending the XML content with style information. That seems like something that could be handled in the client javascript by falling back to `/fordisplay` (I prefer @Zverik's suggestion of `/last_visible`) if the current `/full` returns a `visible=\"false\"` or 404 entry. Or perhaps the `/fordisplay` call could return the current version always, _plus_ the last visible version if the current version is not visible?\r\n\r\n\u003e ... implement them both in rails and cgimap or just in one, and if just in one what would be preferred?\r\n\u003e\r\n\u003e Naturally just adding something to cgimap is rather problematic at this point in time.\r\n\r\nYes, an implementation in both would be very welcome, or just Rails if only one is being done. Unfortunately, we're still stuck halfway without a full replacement for the Rails API in cgimap(-ruby). If anyone would like to help with that, then please take a look at the [Cgimap issues](https://github.com/zerebubuth/openstreetmap-cgimap/issues), which I've tried to mark up with difficulty levels. Please get in touch with me if there's something I can do to help you get started with Cgimap.\r\n"}],"action":{"name":"View Pull Request","url":"https://github.com/openstreetmap/openstreetmap-website/pull/1448#issuecomment-281077410"}}}</script>