- package Seeder
-
- import (
- "encoding/base64"
- "io"
- "os"
- "time"
-
- "git.tovijaeschke.xyz/tovi/Envelope/Backend/Database"
- "git.tovijaeschke.xyz/tovi/Envelope/Backend/Models"
- )
-
- func seedFriend(userRequestTo, userRequestFrom Models.User, accepted bool) error {
- var (
- friendRequest Models.FriendRequest
- symKey aesKey
- encPublicKey []byte
- err error
- )
-
- symKey, err = generateAesKey()
- if err != nil {
- return err
- }
-
- encPublicKey, err = symKey.aesEncrypt([]byte(publicKey))
- if err != nil {
- return err
- }
-
- friendRequest = Models.FriendRequest{
- UserID: userRequestTo.ID,
- FriendID: base64.StdEncoding.EncodeToString(
- encryptWithPublicKey(
- []byte(userRequestFrom.ID.String()),
- decodedPublicKey,
- ),
- ),
- FriendUsername: base64.StdEncoding.EncodeToString(
- encryptWithPublicKey(
- []byte(userRequestFrom.Username),
- decodedPublicKey,
- ),
- ),
- FriendPublicAsymmetricKey: base64.StdEncoding.EncodeToString(
- encPublicKey,
- ),
- SymmetricKey: base64.StdEncoding.EncodeToString(
- encryptWithPublicKey(symKey.Key, decodedPublicKey),
- ),
- }
-
- if accepted {
- friendRequest.AcceptedAt.Time = time.Now()
- friendRequest.AcceptedAt.Valid = true
- }
-
- return Database.CreateFriendRequest(&friendRequest)
- }
-
- func copyProfileImage() error {
- var (
- srcFile *os.File
- dstFile *os.File
- err error
- )
-
- srcFile, err = os.Open("./Database/Seeder/profile_image_enc.dat")
- if err != nil {
- return err
- }
-
- dstFile, err = os.Create("./attachments/profile_image")
- if err != nil {
- return err
- }
-
- defer dstFile.Close()
- _, err = io.Copy(dstFile, srcFile)
- return err
- }
-
- // SeedFriends creates dummy friends for testing/development
- func SeedFriends() {
- var (
- primaryUser Models.User
- secondaryUser Models.User
- accepted bool
- i int
- err error
- )
-
- err = copyProfileImage()
- if err != nil {
- panic(err)
- }
-
- primaryUser, err = Database.GetUserByUsername("testUser")
- if err != nil {
- panic(err)
- }
-
- secondaryUser, err = Database.GetUserByUsername("ATestUser2")
- if err != nil {
- panic(err)
- }
-
- err = seedFriend(primaryUser, secondaryUser, true)
- if err != nil {
- panic(err)
- }
-
- err = seedFriend(secondaryUser, primaryUser, true)
- if err != nil {
- panic(err)
- }
-
- accepted = false
-
- for i = 0; i <= 5; i++ {
- secondaryUser, err = Database.GetUserByUsername(userNames[i])
- if err != nil {
- panic(err)
- }
-
- if i > 3 {
- accepted = true
- }
-
- err = seedFriend(primaryUser, secondaryUser, accepted)
- if err != nil {
- panic(err)
- }
-
- if accepted {
- err = seedFriend(secondaryUser, primaryUser, accepted)
- if err != nil {
- panic(err)
- }
- }
- }
- }
|