83 lines
2.1 KiB
Go
83 lines
2.1 KiB
Go
package voice
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"krakatoa.net/backend/modules/logger"
|
|
"krakatoa.net/backend/modules/mongo"
|
|
"krakatoa.net/backend/modules/util"
|
|
)
|
|
|
|
type Fields struct {
|
|
Uuid string
|
|
}
|
|
|
|
func GetVoiceWebToken(c *fiber.Ctx) error {
|
|
voiceWebCode := c.Params("voiceWebCode")
|
|
|
|
// get uuid from player by voiceWebCode
|
|
|
|
var f Fields
|
|
|
|
err := mongo.PlayersCollection.FindOne(context.TODO(), bson.D{{"voiceWebCode", voiceWebCode}}).Decode(&f)
|
|
|
|
if err != nil {
|
|
logger.Mongo.Println("err", err)
|
|
return c.SendStatus(fiber.StatusUnauthorized)
|
|
}
|
|
|
|
// create token for voice web socket and send as cookie
|
|
voiceSessionToken, err := util.GenerateRandomString(64)
|
|
|
|
if err != nil {
|
|
logger.WebVoice.Println("err", err)
|
|
}
|
|
|
|
c.Cookie(&fiber.Cookie{Name: "token", Value: voiceSessionToken, HTTPOnly: true, Secure: true, Expires: time.Now().Add(time.Hour * 24 * 7)})
|
|
|
|
// set voice web socket token to player in player collection
|
|
|
|
filter := bson.D{{"uuid", f.Uuid}}
|
|
update := bson.M{"$set": bson.M{"voiceSessionToken": voiceSessionToken}, "$unset": bson.M{"voiceWebCode": ""}}
|
|
|
|
_, err = mongo.PlayersCollection.UpdateOne(context.TODO(), filter, update)
|
|
|
|
if err != nil {
|
|
logger.WebVoice.Println("err1", err)
|
|
}
|
|
|
|
// delete web code
|
|
|
|
/*delRes, err := mongo.PlayerRegistrationProcessCollection.DeleteOne(context.TODO(), bson.D{{"voiceWebCode", voiceWebCode}})
|
|
|
|
if err != nil {
|
|
logger.WebVoice.Infoln("del err", err)
|
|
}
|
|
|
|
logger.WebVoice.Infoln("resa", delRes.DeletedCount)
|
|
|
|
// generate mobile code for qrcode and manual code insert
|
|
/*mobileCode, err := util.GenerateRandomNumbers(12)
|
|
|
|
if err != nil {
|
|
logger.WebVoice.Println("err1", err)
|
|
}
|
|
|
|
// update mobile code in collection
|
|
filter = bson.D{{"uuid", f.Uuid}}
|
|
update = bson.D{{"$set", bson.D{{"mobileCode", mobileCode}}}, {"$unset", bson.D{{"voiceWebCode", ""}}}}
|
|
|
|
res, err = mongo.PlayerRegistrationProcessCollection.UpdateOne(context.TODO(), filter, update)
|
|
|
|
if err != nil {
|
|
logger.WebVoice.Infoln("err", err)
|
|
} */
|
|
|
|
// delete player from player registration process collection
|
|
|
|
return c.SendStatus(fiber.StatusOK)
|
|
}
|