<p dir="auto">First draft to address missing JSON output for a number of different changeset(s) API endpoints.</p>
<p dir="auto">The JSON format probably still needs a bit of tweaking (happy to see to comments). Also, unit tests are still missing at this time.</p>
<p dir="auto">Example for: <a href="http://localhost:3000/api/0.6/changesets.json?user=1" rel="nofollow">http://localhost:3000/api/0.6/changesets.json?user=1</a></p>
<div class="highlight highlight-source-json position-relative overflow-auto" data-snippet-clipboard-copy-content="{
  "version": "0.6",
  "generator": "OpenStreetMap server",
  "copyright": "OpenStreetMap and contributors",
  "attribution": "http://www.openstreetmap.org/copyright",
  "license": "http://opendatacommons.org/licenses/odbl/1-0/",
  "changesets": [
    {
      "id": 1874604,
      "created_at": "2022-02-02T17:35:00Z",
      "open": false,
      "comments_count": 0,
      "changes_count": 0,
      "closed_at": "2022-02-02T18:35:00Z",
      "uid": 1,
      "user": "mmd2",
      "tags": {
        "created_by": "JOSM/1.5 (18364)"
      }
    },
    {
      "id": 1874603,
      "created_at": "2022-01-29T14:41:11Z",
      "open": false,
      "comments_count": 0,
      "changes_count": 0,
      "closed_at": "2022-01-29T15:41:11Z",
      "uid": 1,
      "user": "mmd2",
      "tags": {
        "comment": "test",
        "created_by": "JOSM/1.5 (18364)"
      }
    }
  ]
}"><pre>{
  <span class="pl-ent">"version"</span>: <span class="pl-s"><span class="pl-pds">"</span>0.6<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"generator"</span>: <span class="pl-s"><span class="pl-pds">"</span>OpenStreetMap server<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"copyright"</span>: <span class="pl-s"><span class="pl-pds">"</span>OpenStreetMap and contributors<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"attribution"</span>: <span class="pl-s"><span class="pl-pds">"</span>http://www.openstreetmap.org/copyright<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"license"</span>: <span class="pl-s"><span class="pl-pds">"</span>http://opendatacommons.org/licenses/odbl/1-0/<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"changesets"</span>: [
    {
      <span class="pl-ent">"id"</span>: <span class="pl-c1">1874604</span>,
      <span class="pl-ent">"created_at"</span>: <span class="pl-s"><span class="pl-pds">"</span>2022-02-02T17:35:00Z<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"open"</span>: <span class="pl-c1">false</span>,
      <span class="pl-ent">"comments_count"</span>: <span class="pl-c1">0</span>,
      <span class="pl-ent">"changes_count"</span>: <span class="pl-c1">0</span>,
      <span class="pl-ent">"closed_at"</span>: <span class="pl-s"><span class="pl-pds">"</span>2022-02-02T18:35:00Z<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"uid"</span>: <span class="pl-c1">1</span>,
      <span class="pl-ent">"user"</span>: <span class="pl-s"><span class="pl-pds">"</span>mmd2<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"tags"</span>: {
        <span class="pl-ent">"created_by"</span>: <span class="pl-s"><span class="pl-pds">"</span>JOSM/1.5 (18364)<span class="pl-pds">"</span></span>
      }
    },
    {
      <span class="pl-ent">"id"</span>: <span class="pl-c1">1874603</span>,
      <span class="pl-ent">"created_at"</span>: <span class="pl-s"><span class="pl-pds">"</span>2022-01-29T14:41:11Z<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"open"</span>: <span class="pl-c1">false</span>,
      <span class="pl-ent">"comments_count"</span>: <span class="pl-c1">0</span>,
      <span class="pl-ent">"changes_count"</span>: <span class="pl-c1">0</span>,
      <span class="pl-ent">"closed_at"</span>: <span class="pl-s"><span class="pl-pds">"</span>2022-01-29T15:41:11Z<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"uid"</span>: <span class="pl-c1">1</span>,
      <span class="pl-ent">"user"</span>: <span class="pl-s"><span class="pl-pds">"</span>mmd2<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"tags"</span>: {
        <span class="pl-ent">"comment"</span>: <span class="pl-s"><span class="pl-pds">"</span>test<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"created_by"</span>: <span class="pl-s"><span class="pl-pds">"</span>JOSM/1.5 (18364)<span class="pl-pds">"</span></span>
      }
    }
  ]
}</pre></div>
<p dir="auto">Example for: <a href="http://localhost:3000/api/0.6/changeset/00...000.json" rel="nofollow">http://localhost:3000/api/0.6/changeset/00...000.json</a></p>
<div class="highlight highlight-source-json position-relative overflow-auto" data-snippet-clipboard-copy-content="{
  "version": "0.6",
  "generator": "OpenStreetMap server",
  "copyright": "OpenStreetMap and contributors",
  "attribution": "http://www.openstreetmap.org/copyright",
  "license": "http://opendatacommons.org/licenses/odbl/1-0/",
  "changesets": [
    {
      "id": 1874526,
      "created_at": "2020-07-25T20:47:51Z",
      "open": false,
      "comments_count": 1,
      "changes_count": 4,
      "closed_at": "2020-07-25T20:47:51Z",
      "min_lat": -4.2786786,
      "min_lon": -36.6031079,
      "max_lat": -4.2776831,
      "max_lon": -36.6021764,
      "uid": 1,
      "user": "mmd2",
      "tags": {
        "changesets_count": "1706",
        "comment": "some comment",
        "created_by": "iD 2.17.3",
        "host": "http://localhost:31900/edit",
        "imagery_used": "Bing aerial imagery",
        "locale": "en"
      }
    }
  ]
}"><pre>{
  <span class="pl-ent">"version"</span>: <span class="pl-s"><span class="pl-pds">"</span>0.6<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"generator"</span>: <span class="pl-s"><span class="pl-pds">"</span>OpenStreetMap server<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"copyright"</span>: <span class="pl-s"><span class="pl-pds">"</span>OpenStreetMap and contributors<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"attribution"</span>: <span class="pl-s"><span class="pl-pds">"</span>http://www.openstreetmap.org/copyright<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"license"</span>: <span class="pl-s"><span class="pl-pds">"</span>http://opendatacommons.org/licenses/odbl/1-0/<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"changesets"</span>: [
    {
      <span class="pl-ent">"id"</span>: <span class="pl-c1">1874526</span>,
      <span class="pl-ent">"created_at"</span>: <span class="pl-s"><span class="pl-pds">"</span>2020-07-25T20:47:51Z<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"open"</span>: <span class="pl-c1">false</span>,
      <span class="pl-ent">"comments_count"</span>: <span class="pl-c1">1</span>,
      <span class="pl-ent">"changes_count"</span>: <span class="pl-c1">4</span>,
      <span class="pl-ent">"closed_at"</span>: <span class="pl-s"><span class="pl-pds">"</span>2020-07-25T20:47:51Z<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"min_lat"</span>: <span class="pl-c1">-4.2786786</span>,
      <span class="pl-ent">"min_lon"</span>: <span class="pl-c1">-36.6031079</span>,
      <span class="pl-ent">"max_lat"</span>: <span class="pl-c1">-4.2776831</span>,
      <span class="pl-ent">"max_lon"</span>: <span class="pl-c1">-36.6021764</span>,
      <span class="pl-ent">"uid"</span>: <span class="pl-c1">1</span>,
      <span class="pl-ent">"user"</span>: <span class="pl-s"><span class="pl-pds">"</span>mmd2<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"tags"</span>: {
        <span class="pl-ent">"changesets_count"</span>: <span class="pl-s"><span class="pl-pds">"</span>1706<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"comment"</span>: <span class="pl-s"><span class="pl-pds">"</span>some comment<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"created_by"</span>: <span class="pl-s"><span class="pl-pds">"</span>iD 2.17.3<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"host"</span>: <span class="pl-s"><span class="pl-pds">"</span>http://localhost:31900/edit<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"imagery_used"</span>: <span class="pl-s"><span class="pl-pds">"</span>Bing aerial imagery<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"locale"</span>: <span class="pl-s"><span class="pl-pds">"</span>en<span class="pl-pds">"</span></span>
      }
    }
  ]
}</pre></div>
<p dir="auto">Example for: <a href="http://localhost:3000/api/0.6/changeset/1874526.json?include_discussion=true" rel="nofollow">http://localhost:3000/api/0.6/changeset/1874526.json?include_discussion=true</a></p>
<div class="highlight highlight-source-json position-relative overflow-auto" data-snippet-clipboard-copy-content="{
  "version": "0.6",
  "generator": "OpenStreetMap server",
  "copyright": "OpenStreetMap and contributors",
  "attribution": "http://www.openstreetmap.org/copyright",
  "license": "http://opendatacommons.org/licenses/odbl/1-0/",
  "changesets": [
    {
      "id": 1874526,
      "created_at": "2020-07-25T20:47:51Z",
      "open": false,
      "comments_count": 1,
      "changes_count": 4,
      "closed_at": "2020-07-25T20:47:51Z",
      "min_lat": -4.2786786,
      "min_lon": -36.6031079,
      "max_lat": -4.2776831,
      "max_lon": -36.6021764,
      "uid": 1,
      "user": "mmd2",
      "tags": {
        "changesets_count": "1706",
        "comment": "g",
        "created_by": "iD 2.17.3",
        "host": "http://localhost:31900/edit",
        "imagery_used": "Bing aerial imagery",
        "locale": "en"
      },
      "comments": [
        {
          "date": "2020-08-16T20:15:34Z",
          "uid": 1,
          "user": "mmd2",
          "text": "dfasdfasdfdfasdfasdf"
        }
      ]
    }
  ]
}"><pre>{
  <span class="pl-ent">"version"</span>: <span class="pl-s"><span class="pl-pds">"</span>0.6<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"generator"</span>: <span class="pl-s"><span class="pl-pds">"</span>OpenStreetMap server<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"copyright"</span>: <span class="pl-s"><span class="pl-pds">"</span>OpenStreetMap and contributors<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"attribution"</span>: <span class="pl-s"><span class="pl-pds">"</span>http://www.openstreetmap.org/copyright<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"license"</span>: <span class="pl-s"><span class="pl-pds">"</span>http://opendatacommons.org/licenses/odbl/1-0/<span class="pl-pds">"</span></span>,
  <span class="pl-ent">"changesets"</span>: [
    {
      <span class="pl-ent">"id"</span>: <span class="pl-c1">1874526</span>,
      <span class="pl-ent">"created_at"</span>: <span class="pl-s"><span class="pl-pds">"</span>2020-07-25T20:47:51Z<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"open"</span>: <span class="pl-c1">false</span>,
      <span class="pl-ent">"comments_count"</span>: <span class="pl-c1">1</span>,
      <span class="pl-ent">"changes_count"</span>: <span class="pl-c1">4</span>,
      <span class="pl-ent">"closed_at"</span>: <span class="pl-s"><span class="pl-pds">"</span>2020-07-25T20:47:51Z<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"min_lat"</span>: <span class="pl-c1">-4.2786786</span>,
      <span class="pl-ent">"min_lon"</span>: <span class="pl-c1">-36.6031079</span>,
      <span class="pl-ent">"max_lat"</span>: <span class="pl-c1">-4.2776831</span>,
      <span class="pl-ent">"max_lon"</span>: <span class="pl-c1">-36.6021764</span>,
      <span class="pl-ent">"uid"</span>: <span class="pl-c1">1</span>,
      <span class="pl-ent">"user"</span>: <span class="pl-s"><span class="pl-pds">"</span>mmd2<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"tags"</span>: {
        <span class="pl-ent">"changesets_count"</span>: <span class="pl-s"><span class="pl-pds">"</span>1706<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"comment"</span>: <span class="pl-s"><span class="pl-pds">"</span>g<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"created_by"</span>: <span class="pl-s"><span class="pl-pds">"</span>iD 2.17.3<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"host"</span>: <span class="pl-s"><span class="pl-pds">"</span>http://localhost:31900/edit<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"imagery_used"</span>: <span class="pl-s"><span class="pl-pds">"</span>Bing aerial imagery<span class="pl-pds">"</span></span>,
        <span class="pl-ent">"locale"</span>: <span class="pl-s"><span class="pl-pds">"</span>en<span class="pl-pds">"</span></span>
      },
      <span class="pl-ent">"comments"</span>: [
        {
          <span class="pl-ent">"date"</span>: <span class="pl-s"><span class="pl-pds">"</span>2020-08-16T20:15:34Z<span class="pl-pds">"</span></span>,
          <span class="pl-ent">"uid"</span>: <span class="pl-c1">1</span>,
          <span class="pl-ent">"user"</span>: <span class="pl-s"><span class="pl-pds">"</span>mmd2<span class="pl-pds">"</span></span>,
          <span class="pl-ent">"text"</span>: <span class="pl-s"><span class="pl-pds">"</span>dfasdfasdfdfasdfasdf<span class="pl-pds">"</span></span>
        }
      ]
    }
  ]
}</pre></div>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/openstreetmap/openstreetmap-website/pull/3495'>https://github.com/openstreetmap/openstreetmap-website/pull/3495</a></p>

<h4>Commit Summary</h4>
<ul>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/commits/d93fcf19d6b96201a89eede157b2bead3375fe75" class="commit-link">d93fcf1</a>  JSON output added to changeset(s) endpoints</li>
</ul>

<h4 style="display: inline-block">File Changes </h4> <p style="display: inline-block">(<a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files">8 files</a>)</p>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files#diff-cbcb9ae851f89928d6366b8fbce29b38d3fb6dcc2c7ae61fdf7f3bb40911b976">app/controllers/api/changeset_comments_controller.rb</a>
    (16)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files#diff-6726f8601cd22886963fb41888b55956cae4f8124aa12c701da77c3add44d94c">app/controllers/api/changesets_controller.rb</a>
    (27)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files#diff-2ba800641787947c05afd2b26802d7a5153d503d927b8fd4977ff0f468ef62b6">app/views/api/changesets/_changeset.json.jbuilder</a>
    (34)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files#diff-7ae9e3d5c5b18f66d13ff90c5a170b1fa5d0eb94a99cdd608413bb47048ce791">app/views/api/changesets/_changeset.xml.builder</a>
    (0)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files#diff-be17851894d2210c1f006b422dfb2b18edd986c3c806eb11a70ae7bad1139f8e">app/views/api/changesets/changeset.json.jbuilder</a>
    (5)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files#diff-6553d42d3b8c3ce5006b36f31368245d870f23d83bbb997ab21214e954492fe1">app/views/api/changesets/changeset.xml.builder</a>
    (0)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files#diff-23b295e8eb2b1d4a0db3eb65a9ff1dee18d94793d525bb01eaaed97641f2f1f1">app/views/api/changesets/changesets.json.jbuilder</a>
    (5)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495/files#diff-96fe8bae20efb9ef713c443a125828046f91ed6a7c8c29ca09465de8dea42d61">app/views/api/changesets/changesets.xml.builder</a>
    (0)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/3495.patch'>https://github.com/openstreetmap/openstreetmap-website/pull/3495.patch</a></li>
  <li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/3495.diff'>https://github.com/openstreetmap/openstreetmap-website/pull/3495.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/pull/3495">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLLLUMRRPXQ6JSG3VILU7D47FANCNFSM5QKQVWOA">unsubscribe</a>.<br />Triage notifications on the go with GitHub Mobile for <a href="https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675">iOS</a> or <a href="https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub">Android</a>.
<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAK2OLO7WIMRDCDOTJPVEITU7D47FA5CNFSM5QKQVWOKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4RLGWIBA.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><openstreetmap/openstreetmap-website/pull/3495</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/pull/3495",
"url": "https://github.com/openstreetmap/openstreetmap-website/pull/3495",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>