From d971843fee4a18cc2c39525841b540e97a0a2bc3 Mon Sep 17 00:00:00 2001 From: Kristian _server Date: Fri, 6 Oct 2023 23:02:05 +0200 Subject: [PATCH] save servers to pocketbase by user id --- bot/bot.go | 13 +++++++++++++ pb/pb.go | 34 ++++++++++++++++++++++++++++++++++ pb_data/data.db | Bin 110592 -> 118784 bytes pb_data/logs.db | Bin 53248 -> 53248 bytes 4 files changed, 47 insertions(+) diff --git a/bot/bot.go b/bot/bot.go index 6cdb125..819b928 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -44,6 +44,7 @@ func Run() { var conversationHistoryMap = make(map[string][]openai.ChatCompletionMessage) var sshConnections = make(map[string]*SSHConnection) + func hasAdminRole(roles []string) bool { for _, role := range roles { if role == AllowedUserID { @@ -129,6 +130,18 @@ func newMessage(discord *discordgo.Session, message *discordgo.MessageCreate) { // Store the SSH connection for later use sshConnections[message.Author.ID] = sshConn + // Save server information to PocketBase + serverInfo := &pb.ServerInfo{ + UserID: message.Author.ID, + ConnectionDetails: connectionDetails, + } + err = pb.CreateRecord("servers", serverInfo) + if err != nil { + log.Error(err) + discord.ChannelMessageSend(message.ChannelID, "Error saving server information.") + return + } + discord.ChannelMessageSend(message.ChannelID, "Connected to remote server!") } else { discord.ChannelMessageSend(message.ChannelID, "You are not authorized to use this command.") diff --git a/pb/pb.go b/pb/pb.go index 1066a5f..4241010 100644 --- a/pb/pb.go +++ b/pb/pb.go @@ -14,6 +14,11 @@ var ( once sync.Once ) +type ServerInfo struct { + UserID string + ConnectionDetails string +} + // Init initializes the PocketBase app func Init() { once.Do(func() { @@ -40,3 +45,32 @@ func GetRecordById(collectionID string, recordID string) (*models.Record, error) return record, nil } + +func CreateRecord(collectionName string, record *ServerInfo) error { + // Find the collection + collection, err := app.Dao().FindCollectionByNameOrId(collectionName) + if err != nil { + log.Error(err) + return err + } + + // Create a new record + newRecord := models.NewRecord(collection) + + // Convert ServerInfo to a map + recordMap := map[string]interface{}{ + "UserID": record.UserID, + "ConnectionDetails": record.ConnectionDetails, + } + + // Bulk load with record.Load(map[string]interface{}) + newRecord.Load(recordMap) + + // Save the record + if err := app.Dao().SaveRecord(newRecord); err != nil { + log.Error(err) + return err + } + + return nil +} diff --git a/pb_data/data.db b/pb_data/data.db index 4cde9ef71a66ec89016de587cf73fd21946b6681..06699f17582f9d4e5e8ce94c2eef13b31728f77c 100644 GIT binary patch delta 488 zcmZp8z}B#UeS)+gD+2?AED*y0|3n>QM%Il9OY*sxxojDDWw?)U*=|-8(Bsl=Zf0Q? z(B=@8Ziy5GD;Ko2Eh|s8G)l@V%Puxbwk%6eN-Rz-PAw`+Et>qUT0*%fr?et5v$#@8 zM=38cH&w|>$vHnSFEzO&Ge6HIwIne!r+Bh_O{qj#hGlxbc||@#T`15LPZywMoM~)y zY;~=XfswJUp@FV}nSzmlm5G6sp`o6!u~8J7xS^GyrJkXgMbzda)ebCN%=||g_;2#R zEm_7{~1zZLC`Sv%GeE5o>mvR~?C_+LL7bJvo+9n~YU62OaVGuie|Fdb?DgL~{f|*oY-!@*(|$O+L?^`}_I++02<2p8JLRdEz6oLo9u|{POaS zFA4M8&I=PWv;OV(r~UrfiqMfoMl5!k`La~qT1<|zL7&Pj9s2k3cF>?x>D7$!uV>dd*GFO*RGCoZT*pm~O zXR@fe!QzWrQpjYba;||ILfw)V!@BXikVDORfBQanYO*deoVGOf+45sY7 zDpxw~JeOH7<|OG9Fmu!YNy0gJ4`)3POrq%q$#Mvj_>YkkT5Yb;+9+00MrPfvQ;__c zR<8o`GK|CN8Mz9&u6u5`gY^8uOUAWKujl35CSNVK+aFT&2qzHs%9DVsH#~;FrsQllYkCKA*_m)LkX#xCAFZ^ zPhPUyV2^M{t)Gt>l03=>+3YbB?7(3tFdGnvUunxsMNg1t0l1HuY+XEtg6Zf26n zWReu!r1apS_=k5D4U~f5!AKMognB5Lo4vT?B8cpvpobzTc=P=xe>%x#y~_`F=6z@K zzMt>!y?NX2F15Q$JrCY^KE<70S>;w%z2Bc}oDHq4LY?}{T^@@oecZX?yS=>X^;<8T zdTA}z@t=>y*7kB@&NAx-OEjfMozPGEi3_){6Xf3*ztl0=Tcvc`R70UsL9S$O7WV1Y zdv`n{{psGV?QnpXeME_fB!Y#YM5G-a^Fjb0*9jjEVpfFXxSwYjYFecxHyfhf%2X9Q z#~8lxb*#8|!tfS=w(M53pzB(VG^@H~(D;{EX)qpV7^?ir0hR*<`>+(je1tF`Q5;5-ibb8@fSVfI*XvL;fA!R{OHdQ0PsiybyWph)tYPo=&XMYUUG;O__PF~wi zaf7UtF>8dU+oC=qNzIdlgvBIGcac2v@+7RYDn;FFYNAy!?3|hxcoz1~J7N&udiPj! z1v$vH<4qsyE{m0o84Iyt<@TkzR4lc!x@P~Eg&34VlYY9^RT$|mi|5{$S=UN9!>fvF zg_L3?TdcEn{om^Nq6gN(26b|y@g54>M zbeF}M9e*d_`a~pA%VlNLz&4Nfu|?JUKc3)0*cTuzh%we(9?PLwkG-;02Kj?>|kCuF=QIA7I)I)!u zhv=dA@qAI7@Xb1s;Tk3kTGOp>t%`duBBMSBMu#*f6$-kcXoyP z)K&K>PO^we7BTrYQXrJf4Il^M27tcB4S@DCHvmBP44Bw6pt#5lz<8Y-Nc8B2k9iHD zoqw}-{>H9D^!{v7yvw|Hnb&R@T?enEa~go%mUC=?W7@d`(;epye3Q-{SdZQV_o$-* z0PoyMbf~||7zP{~u(U_$kX@mo?xNUW3-6v-$cVcf>Y~T!5&D*0S$TWzqPWe7+l;u~@zU=; z@H*5#jLx;`VT~gg1OMl<=N$$ek~~?UL#E*Z9ny{GpPVetJdl&k|C;;1mGb~1f3#pC W2;W$sOSJo8`v0|5{lm{L;(r0C`5(pr