store fix + add peer invitationPending Check
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
ycc 2024-02-25 20:15:35 +01:00
parent c4b61e16c5
commit 4b3d7548bd
5 changed files with 21 additions and 4 deletions

View File

@ -78,11 +78,14 @@ func (id *Identity) InvitePeer(MyName string, ContactName string, MessageServerU
// Checks if the received contact card is an answer to an invitation, returns true if it is, and the proposed and received nicknames // Checks if the received contact card is an answer to an invitation, returns true if it is, and the proposed and received nicknames
func (id *Identity) CheckInvitation(ReceivedContact *meowlib.ContactCard) (isAnswer bool, proposedNick string, receivedNick string, invitationMessage string) { func (id *Identity) CheckInvitation(ReceivedContact *meowlib.ContactCard) (isAnswer bool, proposedNick string, receivedNick string, invitationMessage string) {
// invitation Id found, this is an answer to an invitation
for _, p := range id.Peers { for _, p := range id.Peers {
if p.InvitationId == ReceivedContact.InvitationId { if p.InvitationId == ReceivedContact.InvitationId {
return true, p.Name, ReceivedContact.Name, ReceivedContact.InvitationMessage return true, p.Name, ReceivedContact.Name, ReceivedContact.InvitationMessage
} }
} }
// it's an invitation
return false, "", ReceivedContact.Name, ReceivedContact.InvitationMessage return false, "", ReceivedContact.Name, ReceivedContact.InvitationMessage
} }

View File

@ -18,6 +18,8 @@ func StoreMessage(peer *Peer, usermessage *meowlib.UserMessage, password string)
// TODO : if file size > X new db // TODO : if file size > X new db
if len(peer.DbIds) == 0 { if len(peer.DbIds) == 0 {
dbid = uuid.NewString() dbid = uuid.NewString()
peer.DbIds = []string{dbid}
GetConfig().me.Save()
file, err := os.Create(filepath.Join(GetConfig().StoragePath, dbid+GetConfig().DbSuffix)) file, err := os.Create(filepath.Join(GetConfig().StoragePath, dbid+GetConfig().DbSuffix))
if err != nil { if err != nil {
return err return err
@ -30,7 +32,6 @@ func StoreMessage(peer *Peer, usermessage *meowlib.UserMessage, password string)
return err return err
} }
sqliteDatabase.Close() sqliteDatabase.Close()
GetConfig().me.Save()
} else { } else {
dbid = peer.DbIds[len(peer.DbIds)-1] dbid = peer.DbIds[len(peer.DbIds)-1]
} }

View File

@ -85,6 +85,13 @@ func (p *Peer) GetContact() *meowlib.ContactCard {
return &c return &c
} }
func (p *Peer) InvitationPending() bool {
if p.ContactPublicKey == "" {
return true
}
return false
}
// //
// Messages building // Messages building
// //

7
doc/sq_inv.puml Normal file
View File

@ -0,0 +1,7 @@
@startuml Server Invitation Step 01
Bob -> MeowBob: Create invitation for alice
Bob -> Alice: Send invitation
Alice -> MeowAlice: Accept Invitation and create answer
Alice -> Bob: Send answer
Bob -> MeowBob: Review Answer, invitation finalize
@enduml

View File

@ -1,9 +1,8 @@
@startuml Server Invitation Step 03 @startuml Server Invitation Step 03
Bastet -> NativeLib : periodic message check Bastet -> NativeLib : periodic message check
Bastet -> NativeLib : build accept message NativeLib -> Server : get new messages
NativeLib -> Bastet : invitationGetMessage Server -> NativeLib : send invitation message
Bastet -> Server : send accept message
Server -> Redis : store accept message Server -> Redis : store accept message
Server -> Bastet : accept message ok Server -> Bastet : accept message ok
Bastet -> User : msg sent Bastet -> User : msg sent