summaryrefslogtreecommitdiff
path: root/internal/platforms/linkedin/linkedin.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/platforms/linkedin/linkedin.go')
-rw-r--r--internal/platforms/linkedin/linkedin.go13
1 files changed, 8 insertions, 5 deletions
diff --git a/internal/platforms/linkedin/linkedin.go b/internal/platforms/linkedin/linkedin.go
index c283fbc..f6d89f5 100644
--- a/internal/platforms/linkedin/linkedin.go
+++ b/internal/platforms/linkedin/linkedin.go
@@ -14,6 +14,7 @@ import (
"codeberg.org/snonux/gos/internal/entry"
"codeberg.org/snonux/gos/internal/platforms/linkedin/oauth2"
"codeberg.org/snonux/gos/internal/prompt"
+ "github.com/fatih/color"
)
var errUnauthorized = errors.New("unauthorized access, refresh or create token?")
@@ -58,7 +59,7 @@ func callLinkedInAPI(ctx context.Context, personID, accessToken, content string)
post := map[string]interface{}{
"author": fmt.Sprintf("urn:li:person:%s", personID),
- "commentary": content, // TODO: Can't post (...) paretenthesis? escape them? TEST AGAIN!
+ "commentary": escapeLinkedInText(content),
"visibility": "PUBLIC",
"distribution": map[string]interface{}{
"feedDistribution": "MAIN_FEED",
@@ -88,15 +89,17 @@ func callLinkedInAPI(ctx context.Context, personID, accessToken, content string)
return fmt.Errorf("Error sending request: %w", err)
}
defer resp.Body.Close()
+ body, err := io.ReadAll(resp.Body)
+ if err != nil {
+ return err
+ }
+ color.Cyan(string(body))
if resp.StatusCode != http.StatusCreated {
- body, _ := io.ReadAll(resp.Body)
- err = fmt.Errorf("failed to post to LinkedIn. Status: %s\n%s\n", resp.Status, body)
+ err = fmt.Errorf("failed to post to LinkedIn. Status: %s\n", resp.Status)
if resp.StatusCode == http.StatusUnauthorized {
err = errors.Join(err, errUnauthorized)
}
}
return err
}
-
-// TODO: Implement Gemini output?