31 lines
1.0 KiB
Go
31 lines
1.0 KiB
Go
package files
|
|
|
|
import (
|
|
"os"
|
|
|
|
"forge.redroom.link/yves/meowlib/client"
|
|
"forge.redroom.link/yves/meowlib/client/invitation/messages"
|
|
)
|
|
|
|
// Step1Write creates a pending peer and writes the InvitationInitPayload to a file.
|
|
// format: "qr" writes a QR-code PNG; anything else writes a compressed binary .mwiv file.
|
|
func Step1Write(contactName string, myNickname string, invitationMessage string, serverUids []string, format string) (*client.Peer, error) {
|
|
payload, peer, err := messages.Step1InitiatorCreatesInviteeAndTempKey(contactName, myNickname, invitationMessage, serverUids)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
c := client.GetConfig()
|
|
if format == "qr" {
|
|
filename := c.StoragePath + string(os.PathSeparator) + peer.MyName + "-" + peer.Name + ".png"
|
|
if err := payload.WriteQr(filename); err != nil {
|
|
return nil, err
|
|
}
|
|
} else {
|
|
filename := c.StoragePath + string(os.PathSeparator) + peer.MyName + "-" + peer.Name + ".mwiv"
|
|
if err := payload.WriteCompressed(filename); err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return peer, nil
|
|
}
|