title: Redmine API updating time entry is not implemented?
body: <p>Updating a time entry:
  <a href="http://www.redmine.org/projects/redmine/wiki/Rest_TimeEntries#Updating-a-time-entry" rel="nofollow noreferrer">http://www.redmine.org/projects/redmine/wiki/Rest_TimeEntries#Updating-a-time-entry</a>
  results always in a 404</p>
  
  <p>I'm using Redmine 3.4.6.stable and was using:
  PUT /time_entries/[id].xml</p>
  
  <p>Other action like:
  Creating a time entry
  is working.</p>
  
  <p>Also, Delete is not working and I tried it with JSON as a replacement for XML, but with the same response.</p>
  
  <p>Then I removed the extension like this:
  /time_entries/[id]
  and I got a 422, but the response gives me a full HTML page with:</p>
  
  Invalid form authenticity token.</p>
  
  <p>I'm not a Ruby/Rails developer, but in routes.rb I can see:</p>
  
  <pre><code>match '/time_entries/:id', :to =&gt; 'timelog#destroy', :via =&gt; :delete, :id =&gt; /\d+/
  </code></pre>
  
  <p>This is the only entry for:
  /time_entries/:id</p>
  
  <p>so this means that the documentation at:
  <a href="http://www.redmine.org/projects/redmine/wiki/Rest_TimeEntries#Updating-a-time-entry" rel="nofollow noreferrer">http://www.redmine.org/projects/redmine/wiki/Rest_TimeEntries#Updating-a-time-entry</a>
  is outdated and there is no end point for updating a time entry.
  Is this correct?</p>
  
  <p>I also filed a ticket in Redmine:
  <a href="http://www.redmine.org/issues/31288" rel="nofollow noreferrer">http://www.redmine.org/issues/31288</a>
  but I think I'll get here much faster an answer/help.</p>
  
  <p>This is the Groovy code I'm using for updating an issue:</p>
  
  <pre><code>def baseUrl = new URL("${Config.host}/time_entries/${timeEntry.key}.xml?key=${Config.redmineKey}")
  new HTTPBuilder(baseUrl).request(Method.PUT, ContentType.XML) {
      body = "&lt;time_entry&gt;&lt;id&gt;9956&lt;/id&gt;&lt;project_id&gt;25&lt;/project_id&gt;&lt;issue_id&gt;${timeEntry.key}&lt;/issue_id&gt;&lt;spent_on&gt;${spentOnDate}&lt;/spent_on&gt;&lt;hours&gt;${new Date(timeEntry.value.toInteger()).format("HH:mm")}&lt;/hours&gt;&lt;activity_id&gt;9&lt;/activity_id&gt;&lt;comments&gt;&lt;/comments&gt;&lt;/time_entry&gt;"
      response.success = { resp, xml -&gt;
          println "Success! ${resp.status}"
      }
      response.failure = { resp -&gt;
          println "Request failed with status ${resp.status}"
          def outputStream = new ByteArrayOutputStream()
          resp.entity.writeTo(outputStream)
          def errorMsg = outputStream.toString('utf8')
          println errorMsg
      }
  }
  </code></pre>