add connection delevation option
This commit is contained in:
@@ -8,4 +8,5 @@ const (
|
|||||||
ConnectionCreated
|
ConnectionCreated
|
||||||
ConnectionDeleted
|
ConnectionDeleted
|
||||||
ConnectionElevated
|
ConnectionElevated
|
||||||
|
ConnectionDeElevated
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -329,6 +329,53 @@ func HandleUserElevateConnection(response http.ResponseWriter, request *http.Req
|
|||||||
response.Write([]byte("waiting for second user to elevate"))
|
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) {
|
func HandleUserGetConnections(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request, postNormal) {
|
if !postValidCheckWithResponseOnFail(&response, request, postNormal) {
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user