(c *fiber.Ctx)
| 769 | } |
| 770 | |
| 771 | func GetSuggestedUsers(c *fiber.Ctx) error { |
| 772 | var err error |
| 773 | // limits |
| 774 | limit := 30 |
| 775 | if c.Query("limit") != "" { |
| 776 | limit, err = strconv.Atoi(c.Query("limit")) |
| 777 | if err != nil { |
| 778 | return ReturnError(c, "Invalid limit", 195, 403) |
| 779 | } |
| 780 | } |
| 781 | |
| 782 | // auth |
| 783 | _, pds, _, oauthToken, err := GetAuthFromReq(c) |
| 784 | if err != nil { |
| 785 | return MissingAuth(c, err) |
| 786 | } |
| 787 | |
| 788 | var recommendedUsers []blueskyapi.User |
| 789 | |
| 790 | // see if they provided a user id |
| 791 | userID := c.Query("user_id") |
| 792 | if userID != "" { |
| 793 | userIDInt, err := strconv.ParseInt(userID, 10, 64) |
| 794 | if err != nil { |
| 795 | return ReturnError(c, "Invalid ID format", 195, 403) |
| 796 | } |
| 797 | userIDPtr, err := bridge.TwitterIDToBlueSky(&userIDInt) |
| 798 | if err != nil { |
| 799 | return ReturnError(c, "ID not found.", 144, fiber.StatusNotFound) |
| 800 | } |
| 801 | if userIDPtr == nil { |
| 802 | return ReturnError(c, "ID not found.", 144, fiber.StatusNotFound) |
| 803 | } |
| 804 | userID = *userIDPtr |
| 805 | |
| 806 | recommendedUsers, err = blueskyapi.GetOthersSuggestedUsers(*pds, *oauthToken, limit, userID) |
| 807 | if err != nil { |
| 808 | return HandleBlueskyError(c, err.Error(), "app.bsky.graph.getSuggestedFollowsByActor", GetSuggestedUsers) |
| 809 | } |
| 810 | } else { |
| 811 | recommendedUsers, err = blueskyapi.GetMySuggestedUsers(*pds, *oauthToken, limit) |
| 812 | if err != nil { |
| 813 | fmt.Println("Error:", err) |
| 814 | return HandleBlueskyError(c, err.Error(), "app.bsky.actor.getSuggestions", GetSuggestedUsers) |
| 815 | } |
| 816 | } |
| 817 | |
| 818 | usersDID := []string{} |
| 819 | for _, user := range recommendedUsers { |
| 820 | usersDID = append(usersDID, user.DID) |
| 821 | } |
| 822 | |
| 823 | usersInfo, err := blueskyapi.GetUsersInfo(*pds, *oauthToken, usersDID, false) |
| 824 | if err != nil { |
| 825 | fmt.Println("Error:", err) |
| 826 | return HandleBlueskyError(c, err.Error(), "app.bsky.actor.getProfiles", GetSuggestedUsers) |
| 827 | } |
| 828 |
nothing calls this directly
no test coverage detected