mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-13 09:53:10 -06:00
make ParseTSParam() return error instead of JSONResponse
This commit is contained in:
parent
335ecb1d26
commit
88c6c32b20
|
|
@ -17,15 +17,12 @@ import (
|
|||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/matrix-org/dendrite/clientapi/jsonerror"
|
||||
"github.com/matrix-org/util"
|
||||
)
|
||||
|
||||
// ParseTSParam takes a req (typically from an application service) and parses a Time object
|
||||
// from the req if it exists in the query parameters. If it doesn't exist, the
|
||||
// current time is returned.
|
||||
func ParseTSParam(req *http.Request) (time.Time, *util.JSONResponse) {
|
||||
func ParseTSParam(req *http.Request) (time.Time, error) {
|
||||
// Use the ts parameter's value for event time if present
|
||||
tsStr := req.URL.Query().Get("ts")
|
||||
if tsStr == "" {
|
||||
|
|
@ -35,12 +32,7 @@ func ParseTSParam(req *http.Request) (time.Time, *util.JSONResponse) {
|
|||
// The parameter exists, parse into a Time object
|
||||
ts, err := strconv.ParseInt(tsStr, 10, 64)
|
||||
if err != nil {
|
||||
return time.Time{}, &util.JSONResponse{
|
||||
Code: http.StatusBadRequest,
|
||||
JSON: jsonerror.InvalidArgumentValue(
|
||||
fmt.Sprintf("Param 'ts' is no valid int (%s)", err.Error()),
|
||||
),
|
||||
}
|
||||
return time.Time{}, fmt.Errorf("Param 'ts' is no valid int (%s)", err.Error())
|
||||
}
|
||||
|
||||
return time.Unix(ts/1000, 0), nil
|
||||
|
|
|
|||
|
|
@ -147,9 +147,12 @@ func createRoom(
|
|||
return *resErr
|
||||
}
|
||||
|
||||
evTime, resErr := httputil.ParseTSParam(req)
|
||||
if resErr != nil {
|
||||
return *resErr
|
||||
evTime, err := httputil.ParseTSParam(req)
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
Code: http.StatusBadRequest,
|
||||
JSON: jsonerror.InvalidArgumentValue(err.Error()),
|
||||
}
|
||||
}
|
||||
// TODO: visibility/presets/raw initial state/creation content
|
||||
// TODO: Create room alias association
|
||||
|
|
|
|||
|
|
@ -52,9 +52,12 @@ func JoinRoomByIDOrAlias(
|
|||
return *resErr
|
||||
}
|
||||
|
||||
evTime, resErr := httputil.ParseTSParam(req)
|
||||
if resErr != nil {
|
||||
return *resErr
|
||||
evTime, err := httputil.ParseTSParam(req)
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
Code: http.StatusBadRequest,
|
||||
JSON: jsonerror.InvalidArgumentValue(err.Error()),
|
||||
}
|
||||
}
|
||||
|
||||
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
|
||||
|
|
|
|||
|
|
@ -50,9 +50,12 @@ func SendMembership(
|
|||
return *reqErr
|
||||
}
|
||||
|
||||
evTime, resErr := httputil.ParseTSParam(req)
|
||||
if resErr != nil {
|
||||
return *resErr
|
||||
evTime, err := httputil.ParseTSParam(req)
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
Code: http.StatusBadRequest,
|
||||
JSON: jsonerror.InvalidArgumentValue(err.Error()),
|
||||
}
|
||||
}
|
||||
|
||||
inviteStored, err := threepid.CheckAndProcessInvite(
|
||||
|
|
|
|||
|
|
@ -107,9 +107,12 @@ func SetAvatarURL(
|
|||
return httputil.LogThenError(req, err)
|
||||
}
|
||||
|
||||
evTime, resErr := httputil.ParseTSParam(req)
|
||||
if resErr != nil {
|
||||
return *resErr
|
||||
evTime, err := httputil.ParseTSParam(req)
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
Code: http.StatusBadRequest,
|
||||
JSON: jsonerror.InvalidArgumentValue(err.Error()),
|
||||
}
|
||||
}
|
||||
|
||||
oldProfile, err := accountDB.GetProfileByLocalpart(req.Context(), localpart)
|
||||
|
|
@ -201,9 +204,12 @@ func SetDisplayName(
|
|||
return httputil.LogThenError(req, err)
|
||||
}
|
||||
|
||||
evTime, resErr := httputil.ParseTSParam(req)
|
||||
if resErr != nil {
|
||||
return *resErr
|
||||
evTime, err := httputil.ParseTSParam(req)
|
||||
if err != nil {
|
||||
return util.JSONResponse{
|
||||
Code: http.StatusBadRequest,
|
||||
JSON: jsonerror.InvalidArgumentValue(err.Error()),
|
||||
}
|
||||
}
|
||||
|
||||
oldProfile, err := accountDB.GetProfileByLocalpart(req.Context(), localpart)
|
||||
|
|
|
|||
|
|
@ -104,9 +104,12 @@ func generateSendEvent(
|
|||
return nil, resErr
|
||||
}
|
||||
|
||||
evTime, resErr := httputil.ParseTSParam(req)
|
||||
if resErr != nil {
|
||||
return nil, resErr
|
||||
evTime, err := httputil.ParseTSParam(req)
|
||||
if err != nil {
|
||||
return nil, &util.JSONResponse{
|
||||
Code: http.StatusBadRequest,
|
||||
JSON: jsonerror.InvalidArgumentValue(err.Error()),
|
||||
}
|
||||
}
|
||||
|
||||
// create the new event and set all the fields we can
|
||||
|
|
@ -116,7 +119,7 @@ func generateSendEvent(
|
|||
Type: eventType,
|
||||
StateKey: stateKey,
|
||||
}
|
||||
err := builder.SetContent(r)
|
||||
err = builder.SetContent(r)
|
||||
if err != nil {
|
||||
resErr := httputil.LogThenError(req, err)
|
||||
return nil, &resErr
|
||||
|
|
|
|||
Loading…
Reference in a new issue