continue minIo, rename convertion methods and http methods
This commit is contained in:
@@ -11,12 +11,12 @@ import (
|
|||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ConvertStringUint32(s string) (uint32, error) {
|
func StringToUint32(s string) (uint32, error) {
|
||||||
v, err := strconv.ParseUint(s, 10, 32)
|
v, err := strconv.ParseUint(s, 10, 32)
|
||||||
return uint32(v), err
|
return uint32(v), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func ConvertStringToRgba(str string) (*types.Rgba, error) {
|
func StringToRgba(str string) (*types.Rgba, error) {
|
||||||
parts := strings.SplitN(str, ",", 5)
|
parts := strings.SplitN(str, ",", 5)
|
||||||
if len(parts) != 4 {
|
if len(parts) != 4 {
|
||||||
return nil, fmt.Errorf("invalid rgba")
|
return nil, fmt.Errorf("invalid rgba")
|
||||||
|
|||||||
@@ -20,12 +20,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func HandleDm(response http.ResponseWriter, request *http.Request) {
|
func HandleDm(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
@@ -51,9 +51,9 @@ func HandleDm(response http.ResponseWriter, request *http.Request) {
|
|||||||
var target *types.User
|
var target *types.User
|
||||||
|
|
||||||
if user.Id == conn.RequestorId {
|
if user.Id == conn.RequestorId {
|
||||||
target, err = GetUserById(ctx, conn.RecipientId)
|
target, err = getUserById(ctx, conn.RecipientId)
|
||||||
} else if user.Id == conn.RecipientId {
|
} else if user.Id == conn.RecipientId {
|
||||||
target, err = GetUserById(ctx, conn.RequestorId)
|
target, err = getUserById(ctx, conn.RequestorId)
|
||||||
} else {
|
} else {
|
||||||
http.Error(response, "invalid connectionid", http.StatusBadRequest)
|
http.Error(response, "invalid connectionid", http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
@@ -86,11 +86,11 @@ func HandleDm(response http.ResponseWriter, request *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http.Request) {
|
func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
@@ -107,7 +107,7 @@ func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http
|
|||||||
before = time.Now()
|
before = time.Now()
|
||||||
}
|
}
|
||||||
|
|
||||||
messagesCap, err := convertions.ConvertStringUint32(request.FormValue("messages"))
|
messagesCap, err := convertions.StringToUint32(request.FormValue("messages"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
messagesCap = globals.MaxDirectMsgCache
|
messagesCap = globals.MaxDirectMsgCache
|
||||||
}
|
}
|
||||||
@@ -162,11 +162,11 @@ func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http
|
|||||||
}
|
}
|
||||||
|
|
||||||
func HandleUserNewConnection(response http.ResponseWriter, request *http.Request) {
|
func HandleUserNewConnection(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
requestor, err := GetUserByToken(ctx, request.FormValue("token"))
|
requestor, err := getUserByToken(ctx, request.FormValue("token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
@@ -176,7 +176,7 @@ func HandleUserNewConnection(response http.ResponseWriter, request *http.Request
|
|||||||
http.Error(response, "no such user", http.StatusUnauthorized)
|
http.Error(response, "no such user", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
recipient, err := GetUserById(ctx, recipientId)
|
recipient, err := getUserById(ctx, recipientId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "no such user", http.StatusUnauthorized)
|
http.Error(response, "no such user", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
@@ -221,12 +221,12 @@ func HandleUserNewConnection(response http.ResponseWriter, request *http.Request
|
|||||||
}
|
}
|
||||||
|
|
||||||
func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Request) {
|
func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
|
|
||||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
@@ -246,14 +246,14 @@ func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Requ
|
|||||||
|
|
||||||
var user2 *types.User
|
var user2 *types.User
|
||||||
if conn.RequestorId == user.Id {
|
if conn.RequestorId == user.Id {
|
||||||
recipient, err := GetUserById(ctx, conn.RecipientId)
|
recipient, err := getUserById(ctx, conn.RecipientId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "internal server error", http.StatusInternalServerError)
|
http.Error(response, "internal server error", http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
user2 = recipient
|
user2 = recipient
|
||||||
} else if conn.RecipientId == user.Id {
|
} else if conn.RecipientId == user.Id {
|
||||||
requestor, err := GetUserById(ctx, conn.RequestorId)
|
requestor, err := getUserById(ctx, conn.RequestorId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "internal server error", http.StatusInternalServerError)
|
http.Error(response, "internal server error", http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
@@ -280,11 +280,11 @@ func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Requ
|
|||||||
}
|
}
|
||||||
|
|
||||||
func HandleUserElevateConnection(response http.ResponseWriter, request *http.Request) {
|
func HandleUserElevateConnection(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
@@ -324,9 +324,9 @@ func HandleUserElevateConnection(response http.ResponseWriter, request *http.Req
|
|||||||
|
|
||||||
var user2 *types.User
|
var user2 *types.User
|
||||||
if conn.RequestorId == user.Id {
|
if conn.RequestorId == user.Id {
|
||||||
user2, err = GetUserById(ctx, conn.RecipientId)
|
user2, err = getUserById(ctx, conn.RecipientId)
|
||||||
} else {
|
} else {
|
||||||
user2, err = GetUserById(ctx, conn.RequestorId)
|
user2, err = getUserById(ctx, conn.RequestorId)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "internal server error", http.StatusInternalServerError)
|
http.Error(response, "internal server error", http.StatusInternalServerError)
|
||||||
@@ -349,11 +349,11 @@ func HandleUserElevateConnection(response http.ResponseWriter, request *http.Req
|
|||||||
}
|
}
|
||||||
|
|
||||||
func HandleUserGetConnections(response http.ResponseWriter, request *http.Request) {
|
func HandleUserGetConnections(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package http
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"go-socket/packages/convertions"
|
||||||
|
)
|
||||||
|
|
||||||
|
func HandleFileUpload(response http.ResponseWriter, request *http.Request) {
|
||||||
|
if !postValidCheckWithResponseOnFail(&response, request, true) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx := request.Context()
|
||||||
|
|
||||||
|
user, err := getUserByToken(ctx, request.Header.Get("token"))
|
||||||
|
if err != nil {
|
||||||
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
connectionId, err := convertions.ConvertStringUuid(request.FormValue("connectionid"))
|
||||||
|
if err != nil {
|
||||||
|
http.Error(response, "invalid connectionid", http.StatusBadRequest)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, ok := user.Connections[connectionId]
|
||||||
|
if !ok {
|
||||||
|
http.Error(response, "no such connection", http.StatusUnauthorized)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetUserById(ctx context.Context, userId uuid.UUID) (*types.User, error) {
|
func getUserById(ctx context.Context, userId uuid.UUID) (*types.User, error) {
|
||||||
user, err := cache.CacheGetUserById(userId)
|
user, err := cache.CacheGetUserById(userId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
user = &types.User{Id: userId}
|
user = &types.User{Id: userId}
|
||||||
@@ -24,10 +24,10 @@ func GetUserById(ctx context.Context, userId uuid.UUID) (*types.User, error) {
|
|||||||
return user, nil
|
return user, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserByToken(ctx context.Context, token string) (*types.User, error) {
|
func getUserByToken(ctx context.Context, token string) (*types.User, error) {
|
||||||
userId, err := tokens.TokenValidateGetId(token)
|
userId, err := tokens.TokenValidateGetId(token)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return GetUserById(ctx, userId)
|
return getUserById(ctx, userId)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,15 +2,19 @@ package http
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
"go-socket/packages/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
func postValidCheckWithResponseOnFail(response *http.ResponseWriter, request *http.Request) bool {
|
func postValidCheckWithResponseOnFail(response *http.ResponseWriter, request *http.Request, withFile bool) bool {
|
||||||
if request.Method != http.MethodPost {
|
if request.Method != http.MethodPost {
|
||||||
http.Error(*response, "POST only", http.StatusMethodNotAllowed)
|
http.Error(*response, "POST only", http.StatusMethodNotAllowed)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if request.ContentLength > 8192 {
|
if withFile && request.ContentLength > int64(globals.MaxPostWithFileBytes) ||
|
||||||
|
!withFile && request.ContentLength > int64(globals.MaxPostBytes) {
|
||||||
http.Error(*response, "Request too large", http.StatusRequestEntityTooLarge)
|
http.Error(*response, "Request too large", http.StatusRequestEntityTooLarge)
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func HandleUserNewToken(response http.ResponseWriter, request *http.Request) {
|
func HandleUserNewToken(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ func HandleUserNewToken(response http.ResponseWriter, request *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func HandleUserNew(response http.ResponseWriter, request *http.Request) {
|
func HandleUserNew(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ func HandleUserNew(response http.ResponseWriter, request *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func HandleUserDelete(response http.ResponseWriter, request *http.Request) {
|
func HandleUserDelete(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
@@ -139,18 +139,18 @@ func HandleUserDelete(response http.ResponseWriter, request *http.Request) {
|
|||||||
|
|
||||||
// HandleUserModifyAppearance currently just color
|
// HandleUserModifyAppearance currently just color
|
||||||
func HandleUserModifyAppearance(response http.ResponseWriter, request *http.Request) {
|
func HandleUserModifyAppearance(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
color, err := convertions.ConvertStringToRgba(request.FormValue("color"))
|
color, err := convertions.StringToRgba(request.FormValue("color"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid color", http.StatusBadRequest)
|
http.Error(response, "invalid color", http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
@@ -166,12 +166,12 @@ func HandleUserModifyAppearance(response http.ResponseWriter, request *http.Requ
|
|||||||
|
|
||||||
// HandleUserModifyAbout currently just pronouns
|
// HandleUserModifyAbout currently just pronouns
|
||||||
func HandleUserModifyAbout(response http.ResponseWriter, request *http.Request) {
|
func HandleUserModifyAbout(response http.ResponseWriter, request *http.Request) {
|
||||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx := request.Context()
|
ctx := request.Context()
|
||||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
|
|
||||||
"go-socket/packages/globals"
|
"go-socket/packages/globals"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
"github.com/minio/minio-go/v7"
|
"github.com/minio/minio-go/v7"
|
||||||
"github.com/minio/minio-go/v7/pkg/credentials"
|
"github.com/minio/minio-go/v7/pkg/credentials"
|
||||||
)
|
)
|
||||||
@@ -64,12 +65,15 @@ func MinInit() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func upload(ctx context.Context, key string, body io.Reader, size int64, contentType string) error {
|
func upload(ctx context.Context, key string, body io.Reader, size int64, contentType string, uploader uuid.UUID) error {
|
||||||
_, err := minClient.PutObject(ctx, globals.FileStorageBucketName, key, body, size,
|
_, err := minClient.PutObject(ctx, globals.FileStorageBucketName, key, body, size,
|
||||||
minio.PutObjectOptions{
|
minio.PutObjectOptions{
|
||||||
ContentType: contentType,
|
ContentType: contentType,
|
||||||
PartSize: globals.FileProcessingPartSize,
|
PartSize: globals.FileProcessingPartSize,
|
||||||
NumThreads: globals.FileProcessingThreads,
|
NumThreads: globals.FileProcessingThreads,
|
||||||
|
UserMetadata: map[string]string{
|
||||||
|
"uploader": uploader.String(),
|
||||||
|
},
|
||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user