kratom/pocketbase.pb
2025-01-28 20:11:05 -06:00

88 lines
No EOL
2.5 KiB
Text
Executable file

; Pocketbase support written from scratch
; Login
url.s = "https://pb.penguinpost.net/api/admins/auth-with-password"
; note this is a post with a small bit of json
;{
; "identity": "yourloginemail",
; "password": "yoursupersecretpassword"
;}
If CreateJSON(0)
login = SetJSONObject(JSONValue(0))
SetJSONString(AddJSONMember(login, "identity"), "offal@pngpst.net")
SetJSONString(AddJSONMember(login, "password"), "Perl1isgod!")
Debug ComposeJSON(0, #PB_JSON_PrettyPrint)
EndIf
NewMap Header$()
Header$("Content-Type") = "application/json"
Header$("User-Agent") = "Mozilla/5.0 (X11; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0"
HttpRequest = HTTPRequest(#PB_HTTP_Post, url, ComposeJSON(0) , 0, Header$())
If HttpRequest
Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
Debug "Response: " + HTTPInfo(HTTPRequest, #PB_HTTP_Response)
; Now we need to get the token
; CreateJSON(1)
;ParseJSON(1,HTTPInfo(HTTPRequest, #PB_HTTP_Response))
json$ = HTTPInfo(HTTPRequest, #PB_HTTP_Response)
If ParseJSON(1, json$) ; returns garbage without the PB ascii there not sure why
ObjectValue = JSONValue(1)
If ExamineJSONMembers(ObjectValue)
While NextJSONMember(ObjectValue)
Debug "Key: " + JSONMemberKey(ObjectValue)
MemberValue = JSONMemberValue(ObjectValue)
; Now extract the actual value based on its type
Select JSONType(MemberValue)
Case #PB_JSON_String
Debug "Value (String): " + GetJSONString(MemberValue)
Case #PB_JSON_Number
Debug "Value (Number): " + StrD(GetJSONDouble(MemberValue))
Case #PB_JSON_Boolean
Debug "Value (Boolean): " + Bool(GetJSONBoolean(MemberValue))
Case #PB_JSON_Object
Debug "Value (Object): (nested object)"
; You could further examine this nested object if needed.
Case #PB_JSON_Array
Debug "Value (Array): (nested array)"
; Handle array values if needed.
Default
Debug "Value (Unknown type)"
EndSelect
Wend
EndIf
Else
Debug JSONErrorMessage()
EndIf
EndIf
; IDE Options = PureBasic 6.12 LTS (Linux - x64)
; CursorPosition = 43
; FirstLine = 33
; Folding = -
; EnableXP
; DPIAware