card-jong-be/controller/session.go

70 lines
1.3 KiB
Go
Raw Normal View History

2024-05-16 22:15:52 +00:00
package controller
import (
2024-05-25 21:17:48 +00:00
"encoding/json"
"fmt"
2024-05-16 22:15:52 +00:00
"net/http"
2024-05-25 21:17:48 +00:00
"net/url"
"github.com/nrednav/cuid2"
2024-05-16 22:15:52 +00:00
)
var Users map[string]string = make(map[string]string)
2024-05-25 21:17:48 +00:00
type PersonInfo struct {
UserId string
Username string
}
2024-05-16 22:15:52 +00:00
func Register(username string) string {
uid := cuid2.Generate()
// Store in the users map
Users[uid] = username
return uid
}
2024-05-25 21:17:48 +00:00
func RegisterUser(writer http.ResponseWriter, request *http.Request) {
requestUrl := request.URL
params, err := url.ParseQuery(requestUrl.RawQuery)
if err != nil {
WriteError(err, "Error parsing URL parameters", &writer)
return
}
usernameArr, ok := params["username"]
if !ok {
WriteError(err, "username not found", &writer)
return
}
username := usernameArr[0]
// The result json
result := PersonInfo{
UserId: Register(username),
Username: username,
}
writer.Header().Set("Content-Type", "application/json")
jsonData, err := json.Marshal(result)
if err != nil {
WriteError(err, "Error serializing JSON", &writer)
return
}
writer.WriteHeader(http.StatusOK)
fmt.Fprintf(writer, "%s", jsonData)
}
2024-05-16 22:15:52 +00:00
func ValidateId(writer http.ResponseWriter, request *http.Request) {
if AuthHeaderIsValid(request.Header.Get("Authorization")) {
writer.WriteHeader(http.StatusOK)
} else {
writer.WriteHeader(http.StatusUnauthorized)
}
}