Commit graph

58 commits

Author SHA1 Message Date
Joas Souza
8c04fe8775
Feature: Copy Pad without history (#4295)
New feature to copy a pad without copying entire history.  This is useful to perform a low CPU intensive operation while still copying current pad state.
2020-09-16 19:24:09 +01:00
Chocobozzz
82b919fc65 api: add getStats() function 2020-04-04 22:03:46 +02:00
Viljami Kuosmanen
ccf406708e openapi: support standard http error codes
API errors are now handled at the end of the request heap by
throwing exceptions from the handler
2020-04-03 01:03:11 +02:00
Viljami Kuosmanen
c2cca39c7d openapi: minor improvements 2020-04-03 01:03:11 +02:00
John McLear
a0579c90db APIHandler: return HTTP/404 when non existing API methods are invoked
Before this change, invoking a non existing API method would return an HTTP/200
response with a JSON payload {"code":3,"message":"no such function"}.

This commit changes the HTTP status code to 404, leaving the payload as-is.

Before:
   curl --verbose "http://localhost:9001/api/1/notExisting?apikey=ABCDEF"
  < HTTP/1.1 200 OK
  < X-Powered-By: Express
  [...]
  {"code":3,"message":"no such function","data":null}

After:
   curl --verbose "http://localhost:9001/api/1/notExisting?apikey=ABCDEF"

   < HTTP/1.1 404 OK
   < X-Powered-By: Express
   [...]
   {"code":3,"message":"no such function","data":null}

Fixes #3546.
2020-03-15 09:26:44 +00:00
Ray Bellis
58d0e6cea4 APIHandler.js: further cleanup
- removed possible issue with failing to sanitize `padName` if `padId` was also
  supplied
- removed unnecessary `try` block
- simplified API and function name matching tests
2019-01-30 10:41:10 +00:00
Ray Bellis
c4f1f83747 APIHandler.js: use promises 2019-01-22 13:30:28 +00:00
muxator
11453d544c prepare to async: stricter checks
This change is in preparation of the future async refactoring by Ray. It tries
to extract as many changes in boolean conditions as possible, in order to make
more evident identifying eventual logic bugs in the future work.

This proved already useful in at least one case.

BEWARE: this commit exposes an incoherency in the DB API, in which, depending
on the driver used, some functions can return null or undefined. This condition
will be externally fixed by the final commit in this series ("db/DB.js: prevent
DB layer from returning undefined"). Until that commit, the code base may have
some bugs.
2019-03-01 09:43:41 +01:00
muxator
9497ee734f prepare to async: trivial reformatting
This change is only cosmetic. Its aim is do make it easier to understand the
async changes that are going to be merged later on. It was extracted from the
original work from Ray Bellis.

To verify that nothing has changed, you can run the following command on each
file touched by this commit:
  npm install uglify-es
  diff --unified <(uglify-js --beautify bracketize <BEFORE.js>) <(uglify-js --beautify bracketize <AFTER.js>)



This is a complete script that does the same automatically (works from a
mercurial clone):

```bash
#!/usr/bin/env bash

set -eu

REVISION=<THIS_REVISION>

PARENT_REV=$(hg identify --rev "${REVISION}" --template '{p1rev}')
FILE_LIST=$(hg status --no-status --change ${REVISION})
UGLIFYJS="node_modules/uglify-es/bin/uglifyjs"

for FILE_NAME in ${FILE_LIST[@]}; do
  echo "Checking ${FILE_NAME}"
  diff --unified \
    <("${UGLIFYJS}" --beautify bracketize <(hg cat --rev "${PARENT_REV}" "${FILE_NAME}")) \
    <("${UGLIFYJS}" --beautify bracketize <(hg cat --rev "${REVISION}"   "${FILE_NAME}"))
done
```
2019-02-08 23:20:57 +01:00
Ray Bellis
c8e5d87268 api: simplify version table
This commit vastly shortens (and simplifies) the version table within
handler/APIHandler.js by building each version's entry incrementally based off
the previous version.

The resulting table has been validated by comparing the "before" and "after"
output of the following loop on both versions of the code (albeit with an
intermediate "sort" step to account for the different insertion order)

  for (let v in version) {
    let m = version[v];
    for (let [k, a] of Object.entries(m)) {
      console.log(v, k, a);
    }
  }

The patch also fixes a few typos, and removes a duplicate definition of
getChatHistory which in each applicable version was defined with two different
parameter lists, but where only the second would be used.
2019-01-22 22:51:22 +01:00
muxator
ce14a99606 settings, APIHandler: use makeAbsolute() for locating APIKEY and SESSIONKEY 2018-08-23 07:02:45 +02:00
muxator
ec5573f88c settings, APIHandler: generate more informative logs 2018-08-21 00:05:15 +02:00
Michael Braun
4cce3bcbed Make APIKEY und SESSIONKEY file customizable
Running multiple instances sometimes requires different api- and session-keys for security reasons.
2017-07-31 15:31:45 +02:00
Ted Mielczarek
a675659dc2 Add an appendText API 2015-10-19 15:27:09 -04:00
John McLear
27ae48686d reintroduce removed api points that were removed by mistake 2015-04-01 13:56:52 +01:00
John McLear
32a09ff461 tests and fix up sloppy code by original author 2015-04-01 13:52:56 +01:00
John McLear
c705a058fb Merge branch 'feature/append-chat-api' of github.com:derosm2/etherpad-lite into append-chat-api 2015-04-01 13:32:07 +01:00
Luc Didry
845788c39d Add a saveRevision API function
Calling saveRevision create an author which name is "API"
2015-02-25 01:04:27 +01:00
Luc Didry
a08c50a77d Fixes #1870
Add two functions to API :
 * getSavedRevisionsCount
 * listSavedRevisions
2015-02-24 23:42:35 +01:00
Mike DeRosa
4c6bd37286 Adding api call for appending a chat message. 2015-02-09 00:18:12 -05:00
John McLear
16f3ebb3ba handle auth fails 2014-11-26 17:34:44 +00:00
Cristo
0253156dbb Update APIHandler.js 2014-11-12 19:55:37 +01:00
Cristo
46bc328896 new api ver 2014-11-08 01:41:23 +01:00
Stephan Jauernick
fc3ce3429e Corrected the API Version number. 2014-06-01 21:21:08 +02:00
Stephan Jauernick
493636ec36 Added a new API method getPadID for reversing the Readonly ID and introduced the API level 1.4.1. Based on: 97402f60b8 2014-05-31 00:39:36 +02:00
Robert Helmer
348d9a838f convert over to server-side crypto 2014-01-15 11:44:57 -08:00
s1341
45e0680484 move copy/move pad into a new api version 2013-11-24 22:34:56 +02:00
s1341
52a99eb9e5 fix bugs, add force option to overwrite destination 2013-11-18 08:25:46 +02:00
s1341
93fcab0461 change parameter names 2013-11-17 21:01:02 +02:00
s1341
29d8bb7716 add pad copy/move API functions 2013-11-17 17:02:44 +00:00
Kenan Sulayman
7ab65d7112 Refactors APIHandler:callAPI
Refactors and optimizes the APIHandler->callAPI.
2013-10-25 12:14:22 +02:00
Bernard `Guyzmo` Pratz
3df3b90bd9 fixed missing API functions declaration in API ; fixed a typo in APIHandler.
Signed-off-by: Bernard `Guyzmo` Pratz <guyzmo+github@m0g.net>
2013-04-04 19:06:51 +02:00
Guyzmo
8f1348b40b Added getAttributePool, getRevisionOfHead and getRevisionChangeset methods to API v1.2.8
Signed-off-by: Bernard `Guyzmo` Pratz <guyzmo+github@m0g.net>
2013-04-01 17:19:48 +02:00
Nelson Silva
1cfc8eda19 Initial work on swagger 2013-03-06 10:10:21 +00:00
Manuel Knitza
8c9ad6ee50 Update src/node/handler/APIHandler.js 2013-02-12 21:50:14 +01:00
John McLear
51eff0d659 change to createDiffHTML 2013-01-28 16:53:29 +00:00
John McLear
3fac18f88a resolve merge conflict 2013-01-27 17:54:26 +00:00
Peter 'Pita' Martischka
f4690dda9d fixed indent 2013-01-27 15:40:05 +00:00
mluto
cb2b93b133 Added getChatHistory and getChatHead (api+code+doc) 2013-01-26 14:35:26 +01:00
John McLear
205d983225 make it crash 2013-01-22 22:48:05 +00:00
John McLear
5d416579ee bring in some padDiff stuff that doesnt suck 2013-01-22 22:33:51 +00:00
Swen
198754222d Added functionality to list pads on this server. 2013-01-08 20:14:01 +01:00
Marcel Klehr
ffc9bcf028 Bump API version for checkToken endpoint 2012-12-27 22:09:22 +01:00
Stephan Jauernick
2163c8be5c Update src/node/handler/APIHandler.js
Added the checkToken function to the function array.
2012-12-07 11:28:03 +01:00
Marcel Klehr
f8f002adc0 Add listAllGroups API endpoint
Adds a database key that lists all groups
2012-09-17 23:03:56 +02:00
Marcel Klehr
ad16c0d0d4 Bump API version to v1.1 2012-09-13 16:13:54 +02:00
Marcel Klehr
ea0f7cb2e9 Add support for multiple api versions 2012-09-09 18:20:16 +02:00
John McLear
7e79bf3462 Update src/node/handler/APIHandler.js 2012-09-04 17:26:08 +02:00
Mark Holmquist
f9469ef256 Add in padUsers HTTP API call
I needed the list of users this time, so I got it. There are docs
and everything.
2012-08-17 13:39:16 -07:00
Mark Holmquist
3d4fb81796 Add in an HTTP API call to send a custom message type.
You cannot currently send any data with your custom message, but
this patch is just begging for a second one that will allow that.
2012-08-08 10:12:11 -07:00