added get request abstraction http utility

This commit is contained in:
Ross Trottier 2024-05-07 16:21:52 -06:00
parent 387d4840c4
commit f264b68565
3 changed files with 13 additions and 50 deletions

30
main.go
View File

@ -23,34 +23,10 @@ func main() {
//Upload Photo + add to cache
//Use cached data to correctly build post form submissions
createPost := wordpress.CreatePost{
Title: "Test 634534",
Content: "<h1>HELLO WORLD</h1>",
Excerpt: "This article will blow your mind.",
FeaturedMedia: 18,
Author: 1,
Tags: []int{6, 3},
Status: "publish",
Categories: []int{7},
Slug: "/scoop-it-up",
posts := wordpress.GetPosts(baseUrl, user, password)
for i, postData := range posts {
fmt.Println("Post Number:", i+1, postData.Title.Rendered)
}
post := createPost.Execute(baseUrl, user, password)
fmt.Println(post.Title.Rendered)
createUser := wordpress.CreateUser{
Username: "Crkaaadfdfdfain",
Password: "raadfadomPass",
Name: "Chekadadsing Msocadsfker",
FirstName: "Cafhefarking",
LastName: "McCloaaddfcker",
Email: "chedfsddfsdfgs@gmail.com",
Roles: "author",
}
user := createUser.Execute(baseUrl, user, password)
appCache.SetUser(user)
fmt.Println("Created:", user.Username)
}
type AppCache struct {

View File

@ -3,8 +3,6 @@ package wordpress
import (
"encoding/json"
"federated.computer/wp-sync-slowtwitch/utilities"
"io"
"net/http"
)
type PostData struct {
@ -23,18 +21,12 @@ type PostData struct {
FeaturedMediaId int `json:"featured_media"`
}
func GetPosts(baseUrl string) []PostData {
url := "posts?per_page=99"
req, err := http.Get(baseUrl + url)
utilities.CheckError(err)
defer utilities.CloseBodyAndCheckError(req.Body)
body, err := io.ReadAll(req.Body)
utilities.CheckError(err)
func GetPosts(baseUrl, user, pass string) []PostData {
url := baseUrl + "posts?per_page=99"
body := utilities.GetHttpRequestToWordpress(url, user, pass)
var posts []PostData
err = json.Unmarshal(body, &posts)
err := json.Unmarshal(body, &posts)
utilities.CheckError(err)
return posts
}

View File

@ -9,10 +9,10 @@ import (
)
func GetHttpRequestToWordpress(url, user, pass string) []byte {
request, err := http.NewRequest("GET", url, strings.NewReader(""))
request, err := http.NewRequest("GET", url, nil)
addAuth(user, pass, request)
CheckError(err)
body := RequestToWordpress(request, user, pass)
body := requestToWordpress(request, user, pass)
return body
}
@ -22,24 +22,19 @@ func PostHttpRequestToWordpress(url, user, pass string, parameters any) []byte {
CheckError(err)
request, err := http.NewRequest("POST", url, strings.NewReader(requestBody))
CheckError(err)
body := RequestToWordpress(request, user, pass)
body := requestToWordpress(request, user, pass)
return body
}
func RequestToWordpress(request *http.Request, user, pass string) []byte {
func requestToWordpress(request *http.Request, user, pass string) []byte {
client := &http.Client{}
addAuth(user, pass, request)
//send
response, err := client.Do(request)
CheckError(err)
//make sure to close body
defer CloseBodyAndCheckError(response.Body)
CheckHttpResponseStatus(response)
checkHttpResponseStatus(response)
body, err := io.ReadAll(response.Body)
CheckError(err)
return body
}
@ -48,7 +43,7 @@ func addAuth(user, pass string, request *http.Request) {
request.Header.Add("content-type", "application/json")
}
func CheckHttpResponseStatus(response *http.Response) {
func checkHttpResponseStatus(response *http.Response) {
if response.StatusCode != 200 {
fmt.Println("Status Code:", response.Status, http.StatusText(response.StatusCode))
}