add connection delevation option
This commit is contained in:
@@ -8,4 +8,5 @@ const (
|
||||
ConnectionCreated
|
||||
ConnectionDeleted
|
||||
ConnectionElevated
|
||||
ConnectionDeElevated
|
||||
)
|
||||
|
||||
@@ -329,6 +329,53 @@ func HandleUserElevateConnection(response http.ResponseWriter, request *http.Req
|
||||
response.Write([]byte("waiting for second user to elevate"))
|
||||
}
|
||||
|
||||
func HandleUserDeElevateConnection(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
return
|
||||
}
|
||||
|
||||
ctx := request.Context()
|
||||
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
|
||||
conn, ok := getConnectionWithResponseOnFail(&response, request, user)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
if conn.State != ConnectionState.Stranger {
|
||||
conn.State = ConnectionState.Stranger
|
||||
err = postgresql.ConnectionUpdateState(ctx, conn)
|
||||
if err != nil {
|
||||
http.Error(response, "internal server error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
var user2 *types.User
|
||||
if conn.RequestorId == user.Id {
|
||||
user2, err = getUserById(ctx, conn.RecipientId)
|
||||
} else {
|
||||
user2, err = getUserById(ctx, conn.RequestorId)
|
||||
}
|
||||
|
||||
wsServer.WsSendMessageCloseIfTimeout(user2, types.WsEventMessage{
|
||||
Type: WsEventType.ConnectionElevated,
|
||||
Event: types.ConnectionElevationData{
|
||||
Id: conn.Id,
|
||||
NewState: conn.State,
|
||||
},
|
||||
})
|
||||
response.Write([]byte("de elevated"))
|
||||
return
|
||||
}
|
||||
|
||||
response.WriteHeader(http.StatusConflict)
|
||||
response.Write([]byte("already lowest possible"))
|
||||
}
|
||||
|
||||
func HandleUserGetConnections(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, postNormal) {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user