continue minIo, rename convertion methods and http methods
This commit is contained in:
@@ -11,12 +11,12 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func ConvertStringUint32(s string) (uint32, error) {
|
||||
func StringToUint32(s string) (uint32, error) {
|
||||
v, err := strconv.ParseUint(s, 10, 32)
|
||||
return uint32(v), err
|
||||
}
|
||||
|
||||
func ConvertStringToRgba(str string) (*types.Rgba, error) {
|
||||
func StringToRgba(str string) (*types.Rgba, error) {
|
||||
parts := strings.SplitN(str, ",", 5)
|
||||
if len(parts) != 4 {
|
||||
return nil, fmt.Errorf("invalid rgba")
|
||||
|
||||
@@ -20,12 +20,12 @@ import (
|
||||
)
|
||||
|
||||
func HandleDm(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
|
||||
ctx := request.Context()
|
||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
||||
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
@@ -51,9 +51,9 @@ func HandleDm(response http.ResponseWriter, request *http.Request) {
|
||||
var target *types.User
|
||||
|
||||
if user.Id == conn.RequestorId {
|
||||
target, err = GetUserById(ctx, conn.RecipientId)
|
||||
target, err = getUserById(ctx, conn.RecipientId)
|
||||
} else if user.Id == conn.RecipientId {
|
||||
target, err = GetUserById(ctx, conn.RequestorId)
|
||||
target, err = getUserById(ctx, conn.RequestorId)
|
||||
} else {
|
||||
http.Error(response, "invalid connectionid", http.StatusBadRequest)
|
||||
return
|
||||
@@ -86,11 +86,11 @@ func HandleDm(response http.ResponseWriter, request *http.Request) {
|
||||
}
|
||||
|
||||
func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
||||
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
@@ -107,7 +107,7 @@ func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http
|
||||
before = time.Now()
|
||||
}
|
||||
|
||||
messagesCap, err := convertions.ConvertStringUint32(request.FormValue("messages"))
|
||||
messagesCap, err := convertions.StringToUint32(request.FormValue("messages"))
|
||||
if err != nil {
|
||||
messagesCap = globals.MaxDirectMsgCache
|
||||
}
|
||||
@@ -162,11 +162,11 @@ func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http
|
||||
}
|
||||
|
||||
func HandleUserNewConnection(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
requestor, err := GetUserByToken(ctx, request.FormValue("token"))
|
||||
requestor, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
@@ -176,7 +176,7 @@ func HandleUserNewConnection(response http.ResponseWriter, request *http.Request
|
||||
http.Error(response, "no such user", http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
recipient, err := GetUserById(ctx, recipientId)
|
||||
recipient, err := getUserById(ctx, recipientId)
|
||||
if err != nil {
|
||||
http.Error(response, "no such user", http.StatusUnauthorized)
|
||||
return
|
||||
@@ -221,12 +221,12 @@ func HandleUserNewConnection(response http.ResponseWriter, request *http.Request
|
||||
}
|
||||
|
||||
func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
|
||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
||||
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
@@ -246,14 +246,14 @@ func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Requ
|
||||
|
||||
var user2 *types.User
|
||||
if conn.RequestorId == user.Id {
|
||||
recipient, err := GetUserById(ctx, conn.RecipientId)
|
||||
recipient, err := getUserById(ctx, conn.RecipientId)
|
||||
if err != nil {
|
||||
http.Error(response, "internal server error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
user2 = recipient
|
||||
} else if conn.RecipientId == user.Id {
|
||||
requestor, err := GetUserById(ctx, conn.RequestorId)
|
||||
requestor, err := getUserById(ctx, conn.RequestorId)
|
||||
if err != nil {
|
||||
http.Error(response, "internal server error", http.StatusInternalServerError)
|
||||
return
|
||||
@@ -280,11 +280,11 @@ func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Requ
|
||||
}
|
||||
|
||||
func HandleUserElevateConnection(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
||||
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
@@ -324,9 +324,9 @@ func HandleUserElevateConnection(response http.ResponseWriter, request *http.Req
|
||||
|
||||
var user2 *types.User
|
||||
if conn.RequestorId == user.Id {
|
||||
user2, err = GetUserById(ctx, conn.RecipientId)
|
||||
user2, err = getUserById(ctx, conn.RecipientId)
|
||||
} else {
|
||||
user2, err = GetUserById(ctx, conn.RequestorId)
|
||||
user2, err = getUserById(ctx, conn.RequestorId)
|
||||
}
|
||||
if err != nil {
|
||||
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) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
||||
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
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"
|
||||
)
|
||||
|
||||
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)
|
||||
if err != nil {
|
||||
user = &types.User{Id: userId}
|
||||
@@ -24,10 +24,10 @@ func GetUserById(ctx context.Context, userId uuid.UUID) (*types.User, error) {
|
||||
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)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return GetUserById(ctx, userId)
|
||||
return getUserById(ctx, userId)
|
||||
}
|
||||
|
||||
@@ -2,15 +2,19 @@ package http
|
||||
|
||||
import (
|
||||
"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 {
|
||||
http.Error(*response, "POST only", http.StatusMethodNotAllowed)
|
||||
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)
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
|
||||
@@ -16,7 +16,7 @@ import (
|
||||
)
|
||||
|
||||
func HandleUserNewToken(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ func HandleUserNewToken(response http.ResponseWriter, request *http.Request) {
|
||||
}
|
||||
|
||||
func HandleUserNew(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ func HandleUserNew(response http.ResponseWriter, request *http.Request) {
|
||||
}
|
||||
|
||||
func HandleUserDelete(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
ctx := request.Context()
|
||||
@@ -139,18 +139,18 @@ func HandleUserDelete(response http.ResponseWriter, request *http.Request) {
|
||||
|
||||
// HandleUserModifyAppearance currently just color
|
||||
func HandleUserModifyAppearance(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
|
||||
ctx := request.Context()
|
||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
||||
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
|
||||
color, err := convertions.ConvertStringToRgba(request.FormValue("color"))
|
||||
color, err := convertions.StringToRgba(request.FormValue("color"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid color", http.StatusBadRequest)
|
||||
return
|
||||
@@ -166,12 +166,12 @@ func HandleUserModifyAppearance(response http.ResponseWriter, request *http.Requ
|
||||
|
||||
// HandleUserModifyAbout currently just pronouns
|
||||
func HandleUserModifyAbout(response http.ResponseWriter, request *http.Request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request) {
|
||||
if !postValidCheckWithResponseOnFail(&response, request, false) {
|
||||
return
|
||||
}
|
||||
|
||||
ctx := request.Context()
|
||||
user, err := GetUserByToken(ctx, request.FormValue("token"))
|
||||
user, err := getUserByToken(ctx, request.FormValue("token"))
|
||||
if err != nil {
|
||||
http.Error(response, "invalid token", http.StatusUnauthorized)
|
||||
return
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
"go-socket/packages/globals"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/minio/minio-go/v7"
|
||||
"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,
|
||||
minio.PutObjectOptions{
|
||||
ContentType: contentType,
|
||||
PartSize: globals.FileProcessingPartSize,
|
||||
NumThreads: globals.FileProcessingThreads,
|
||||
UserMetadata: map[string]string{
|
||||
"uploader": uploader.String(),
|
||||
},
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user