aboutsummaryrefslogtreecommitdiff
path: root/backend/fetchers/app.bsky.go
diff options
context:
space:
mode:
authorGuillermo Serrahima <dev@vylion.com>2026-03-12 11:09:46 +0100
committerGuillermo Serrahima <dev@vylion.com>2026-03-12 11:09:46 +0100
commit20abd199c381eeab138563af897b54ecadc57bae (patch)
treef1340c1d9e13585fcfd29f9fab2280fcd889387b /backend/fetchers/app.bsky.go
parent60a0ae44cdf9bece1c15f20386e2ffdf80d80e96 (diff)
downloadllostre-20abd199c381eeab138563af897b54ecadc57bae.tar.xz
llostre-20abd199c381eeab138563af897b54ecadc57bae.zip
Implemented OAuth login
Diffstat (limited to 'backend/fetchers/app.bsky.go')
-rw-r--r--backend/fetchers/app.bsky.go22
1 files changed, 19 insertions, 3 deletions
diff --git a/backend/fetchers/app.bsky.go b/backend/fetchers/app.bsky.go
index 7c42f44..b6bb939 100644
--- a/backend/fetchers/app.bsky.go
+++ b/backend/fetchers/app.bsky.go
@@ -3,6 +3,7 @@ package fetchers
import (
"encoding/json"
"fmt"
+ "llostre/backend/auth"
"llostre/backend/notes"
"net/http"
)
@@ -11,10 +12,25 @@ type ListRecordsResponse struct {
Records []notes.AppBskyFeedPostRecord `json:"records"`
}
-func FetchAppBskyFeedPosts(did string, pdsURL string) ([]notes.AppBskyFeedPostNote, error) {
- url := fmt.Sprintf("%s/xrpc/com.atproto.repo.listRecords?repo=%s&collection=app.bsky.feed.post&limit=50", pdsURL, did)
+func FetchAppBskyFeedPosts(did, pdsURL, accessToken string, keypair *auth.DPoPKeyPair) ([]notes.AppBskyFeedPostNote, error) {
+ url := fmt.Sprintf("%s/xrpc/com.atproto.repo.listRecords?repo=%s&collection=app.bsky.feed.post", pdsURL, did)
- resp, err := http.Get(url)
+ fmt.Printf("Generating DPoP proof for: %s\n", url)
+ dpopProof, err := keypair.GenerateDPoPProof("GET", url, "")
+ if err != nil {
+ fmt.Printf("DPoP generation failed: %v\n", err)
+ return nil, err
+ }
+
+ fmt.Printf("Making request to PDS\n")
+ req, err := http.NewRequest("GET", url, nil)
+ if err != nil {
+ return nil, err
+ }
+ req.Header.Set("Authorization", "Bearer "+accessToken)
+ req.Header.Set("DPoP", dpopProof)
+
+ resp, err := http.DefaultClient.Do(req)
if err != nil {
return nil, err
}