@@ -2,7 +2,6 @@ package db_controller
22
33import (
44 "fmt"
5- "math/big"
65 "os"
76 "path/filepath"
87
@@ -44,6 +43,7 @@ import (
4443// Token represents the schema for the tokens table
4544type Token struct {
4645 UserDid string `gorm:"type:string;primaryKey;not null"`
46+ UserPDS string `gorm:"type:string;not null"`
4747 TokenUUID string `gorm:"type:string;primaryKey;not null"`
4848 EncryptedAccessToken string `gorm:"type:string;not null"`
4949 EncryptedRefreshToken string `gorm:"type:string;not null"`
@@ -94,26 +94,16 @@ func InitDB() {
9494// Returns:
9595// - The UUID of the stored token.
9696// - An error if the operation fails.
97- func StoreToken (did string , accessToken string , refreshToken string , encryptionKey string , accessExpiry float64 , refreshExpiry float64 ) (* string , error ) {
98- // Check if token exists for this DID
99- var existingToken Token
100- result := db .Where ("user_did = ?" , did ).First (& existingToken )
101-
102- var tokenUUID string
103- if result .Error == nil {
104- // Token exists, use existing UUID
105- tokenUUID = existingToken .TokenUUID
106- } else {
107- // Generate new UUID for new token
108- uuid , err := uuid .NewRandom ()
109- if err != nil {
110- return nil , err
111- }
112- tokenUUID = uuid .String ()
97+ func StoreToken (did string , pds string , accessToken string , refreshToken string , encryptionKey string , accessExpiry float64 , refreshExpiry float64 ) (* string , error ) {
98+ // Check if token exists for this DID.
99+ // Generate new UUID for new token
100+ uuid , err := uuid .NewRandom ()
101+ if err != nil {
102+ return nil , err
113103 }
114104
115105 // Update or create token
116- finalUUID , err := UpdateToken (tokenUUID , did , accessToken , refreshToken , encryptionKey , accessExpiry , refreshExpiry )
106+ finalUUID , err := UpdateToken (uuid . String () , did , accessToken , refreshToken , encryptionKey , accessExpiry , refreshExpiry )
117107 if err != nil {
118108 return nil , err
119109 }
@@ -156,83 +146,24 @@ func UpdateToken(uuid string, did string, accessToken string, refreshToken strin
156146 return & token .TokenUUID , nil
157147}
158148
159- func GetToken (did string , tokenUUID string , encryptionKey string ) (* string , * string , * float64 , * float64 , error ) {
149+ // GetToken retrieves account data from the database
150+ // @results: accessToken, refreshToken, accessExpiry, refreshExpiry, pds, error
151+
152+ func GetToken (did string , tokenUUID string , encryptionKey string ) (* string , * string , * float64 , * float64 , * string , error ) {
160153 var token Token
161154 if err := db .Where ("user_did = ? AND token_uuid = ?" , did , tokenUUID ).First (& token ).Error ; err != nil {
162- return nil , nil , nil , nil , err
155+ return nil , nil , nil , nil , nil , err
163156 }
164157
165158 accessToken , err := bridge .Decrypt (token .EncryptedAccessToken , encryptionKey )
166159 if err != nil {
167- return nil , nil , nil , nil , err
160+ return nil , nil , nil , nil , nil , err
168161 }
169162
170163 refreshToken , err := bridge .Decrypt (token .EncryptedRefreshToken , encryptionKey )
171164 if err != nil {
172- return nil , nil , nil , nil , err
173- }
174-
175- return & accessToken , & refreshToken , & token .AccessExpiry , & token .RefreshExpiry , nil
176- }
177-
178- // SetTimelineContext stores or updates the message context in the database.
179- // Parameters:
180- // - did: The decentralized identifier of the user.
181- // - tokenUUID: The UUID of the token.
182- // - lastMessageId: The ID of the last message.
183- // - timelineContext: The context of the timeline.
184- // - encryptionKey: The key used to encrypt the context.
185- func SetTimelineContext (did string , tokenUUID string , lastMessageId big.Int , timelineContext string , encryptionKey string ) error {
186- fmt .Println ("Last Message ID: " + lastMessageId .String ())
187- fmt .Println ("Decoded ID: " + bridge .TwitterIDToBlueSky (lastMessageId ))
188- encryptedLastMessageId , err := bridge .Encrypt (lastMessageId .String (), encryptionKey )
189- if err != nil {
190- return err
191- }
192-
193- encryptedTimelineContext , err := bridge .Encrypt (timelineContext , encryptionKey )
194- if err != nil {
195- return err
196- }
197-
198- messageContext := MessageContext {
199- UserDid : did ,
200- TokenUUID : tokenUUID ,
201- LastMessageId : encryptedLastMessageId ,
202- TimelineContext : encryptedTimelineContext ,
203- }
204-
205- if err := db .Where ("user_did = ? AND token_uuid = ?" , did , tokenUUID ).Assign (& messageContext ).FirstOrCreate (& messageContext ).Error ; err != nil {
206- return err
207- }
208-
209- return nil
210- }
211-
212- // GetMessageContext retrieves the message context from the database.
213- // Parameters:
214- // - did: The decentralized identifier of the user.
215- // - tokenUUID: The UUID of the token.
216- // - message_id: The ID of the last message.
217- // - encryptionKey: The key used to decrypt the context.
218- // Returns:
219- // - The timeline context.
220- // - An error if the operation fails.
221- func GetTimelineContext (did string , tokenUUID string , message_id big.Int , encryptionKey string ) (* string , error ) {
222- encryptedLastMessageId , err := bridge .Encrypt (message_id .String (), encryptionKey )
223- if err != nil {
224- return nil , err
225- }
226-
227- var messageContext MessageContext
228- if err := db .Where ("user_did = ? AND token_uuid = ? AND message_id = ?" , did , tokenUUID , encryptedLastMessageId ).First (& messageContext ).Error ; err != nil {
229- return nil , err
230- }
231-
232- timelineContext , err := bridge .Decrypt (messageContext .TimelineContext , encryptionKey )
233- if err != nil {
234- return nil , err
165+ return nil , nil , nil , nil , nil , err
235166 }
236167
237- return & timelineContext , nil
168+ return & accessToken , & refreshToken , & token . AccessExpiry , & token . RefreshExpiry , & token . UserPDS , nil
238169}
0 commit comments