Encrypted messaging app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
1.9 KiB

package Seeder
import (
"encoding/base64"
"time"
"git.tovijaeschke.xyz/tovi/Envelope/Backend/Database"
"git.tovijaeschke.xyz/tovi/Envelope/Backend/Models"
)
func seedFriend(userRequestTo, userRequestFrom Models.User) error {
var (
friendRequest Models.FriendRequest
decodedID []byte
id []byte
decodedSymKey []byte
symKey []byte
err error
)
decodedID, err = base64.StdEncoding.DecodeString(userRequestFrom.FriendID)
if err != nil {
return err
}
id, err = decryptWithPrivateKey(decodedID, decodedPrivateKey)
if err != nil {
return err
}
decodedSymKey, err = base64.StdEncoding.DecodeString(userRequestFrom.FriendSymmetricKey)
if err != nil {
return err
}
symKey, err = decryptWithPrivateKey(decodedSymKey, decodedPrivateKey)
friendRequest = Models.FriendRequest{
UserID: userRequestTo.ID,
AcceptedAt: time.Now(),
FriendID: base64.StdEncoding.EncodeToString(
encryptWithPublicKey(id, decodedPublicKey),
),
SymmetricKey: base64.StdEncoding.EncodeToString(
encryptWithPublicKey(symKey, decodedPublicKey),
),
}
return Database.CreateFriendRequest(&friendRequest)
}
func SeedFriends() {
var (
primaryUser Models.User
secondaryUser Models.User
i int
err error
)
primaryUser, err = Database.GetUserByUsername("testUser")
if err != nil {
panic(err)
}
secondaryUser, err = Database.GetUserByUsername("ATestUser2")
if err != nil {
panic(err)
}
err = seedFriend(primaryUser, secondaryUser)
if err != nil {
panic(err)
}
err = seedFriend(secondaryUser, primaryUser)
if err != nil {
panic(err)
}
for i = 0; i <= 3; i++ {
secondaryUser, err = Database.GetUserByUsername(userNames[i])
if err != nil {
panic(err)
}
err = seedFriend(primaryUser, secondaryUser)
if err != nil {
panic(err)
}
err = seedFriend(secondaryUser, primaryUser)
if err != nil {
panic(err)
}
}
}