https://web.archive.org/web/20120516160741/https://dev.twitter.com/docs/api/1/get/users/suggestions/%3Aslug
(c *fiber.Ctx)
| 296 | |
| 297 | // https://web.archive.org/web/20120516160741/https://dev.twitter.com/docs/api/1/get/users/suggestions/%3Aslug |
| 298 | func GetTopicSuggestedUsers(c *fiber.Ctx) error { |
| 299 | var err error |
| 300 | // limits |
| 301 | limit := 20 |
| 302 | if c.Query("limit") != "" { |
| 303 | limit, err = strconv.Atoi(c.Query("limit")) |
| 304 | if err != nil { |
| 305 | return ReturnError(c, "Invalid limit", 195, fiber.StatusBadRequest) |
| 306 | } |
| 307 | } |
| 308 | |
| 309 | // auth |
| 310 | _, pds, _, oauthToken, err := GetAuthFromReq(c) |
| 311 | if err != nil { |
| 312 | return MissingAuth(c, err) |
| 313 | } |
| 314 | |
| 315 | slug := c.Params("slug") |
| 316 | if slug == "" { |
| 317 | return ReturnError(c, "Missing slug", 195, fiber.StatusBadRequest) |
| 318 | } |
| 319 | |
| 320 | name, exists := topicLookup[slug] |
| 321 | if !exists { |
| 322 | return ReturnError(c, "Invalid slug", 195, fiber.StatusBadRequest) |
| 323 | } |
| 324 | |
| 325 | recommendedUsers, err := blueskyapi.GetTopicSuggestedUsers(*pds, *oauthToken, limit, slug) |
| 326 | |
| 327 | if err != nil { |
| 328 | fmt.Println("Error:", err) |
| 329 | return HandleBlueskyError(c, err.Error(), "app.bsky.unspecced.getSuggestedUsers", GetTopicSuggestedUsers) |
| 330 | } |
| 331 | |
| 332 | usersDID := []string{} |
| 333 | for _, user := range recommendedUsers { |
| 334 | usersDID = append(usersDID, user.DID) |
| 335 | } |
| 336 | |
| 337 | usersInfo, err := blueskyapi.GetUsersInfo(*pds, *oauthToken, usersDID, false) |
| 338 | if err != nil { |
| 339 | fmt.Println("Error:", err) |
| 340 | return HandleBlueskyError(c, err.Error(), "app.bsky.actor.getProfiles", GetTopicSuggestedUsers) |
| 341 | } |
| 342 | |
| 343 | topic := bridge.TopicUserSuggestions{ |
| 344 | Name: name, |
| 345 | Slug: slug, |
| 346 | Size: len(usersInfo), |
| 347 | Users: usersInfo, |
| 348 | } |
| 349 | |
| 350 | return EncodeAndSend(c, topic) |
| 351 | } |
nothing calls this directly
no test coverage detected