Twitch SDK (Internal)
socialfriendrequeststask.h
Go to the documentation of this file.
1 /********************************************************************************************
2 * Twitch Broadcasting SDK
3 *
4 * This software is supplied under the terms of a license agreement with Twitch Interactive, Inc. and
5 * may not be copied or used except in accordance with the terms of that agreement
6 * Copyright (c) 2012-2016 Twitch Interactive, Inc.
7 *********************************************************************************************/
8 
9 #pragma once
10 
15 
16 namespace ttv
17 {
18  namespace social
19  {
20  class SocialFriendRequestsTask;
21  }
22 }
23 
25 {
26 public:
27  static const uint32_t kMaxLimit = 500;
28 
29  enum class Action
30  {
31  Unset,
32  Fetch,
35  };
36 
37  enum class SortDirection
38  {
39  Descending,
40  Ascending
41  };
42 
44  {
47  };
48 
49  struct Result
50  {
51  Result();
52 
53  std::vector<FriendRequestEntry> requests;
54  std::string cursor;
55  int32_t total;
58  };
59 
60  typedef std::function<void(SocialFriendRequestsTask* source, TTV_ErrorCode ec, std::shared_ptr<Result> result)> Callback;
61 
62 public:
63  SocialFriendRequestsTask(UserId userId, const std::string& authToken, Callback callback);
64 
65  void FetchRequests(uint32_t limit, SortDirection sortDirection, const std::string& cursor);
66  void MarkAllRead();
67  void GetUnreadCount();
68 
69 protected:
70  virtual const char* GetTaskName() const override { return "SocialFriendRequestsTask"; }
71 
72  virtual void FillHttpRequestInfo(HttpRequestInfo& requestInfo) override;
73  virtual bool ProcessHeaders(uint statusCode, const std::map<std::string, std::string>& headers) override;
74  virtual void ProcessResponse(uint statusCode, const std::vector<char>& response) override;
75  virtual void OnComplete() override;
76 
77 private:
78  bool ParseFriendRequestListJson(const json::Value& jArray);
79 
80  std::shared_ptr<Result> mResult;
82  std::string mCursor;
86  uint32_t mLimit;
87 };
uint32_t UserId
Definition: coretypes.h:22
SortDirection
Definition: socialfriendrequeststask.h:37
virtual void FillHttpRequestInfo(HttpRequestInfo &requestInfo) override
Action
Definition: socialfriendrequeststask.h:29
virtual const char * GetTaskName() const override
Definition: socialfriendrequeststask.h:70
std::function< void(SocialFriendRequestsTask *source, TTV_ErrorCode ec, std::shared_ptr< Result > result)> Callback
Definition: socialfriendrequeststask.h:60
void FetchRequests(uint32_t limit, SortDirection sortDirection, const std::string &cursor)
Definition: coretypes.h:32
SortDirection direction
Definition: socialfriendrequeststask.h:57
Timestamp requestedTimestamp
The time that the request was sent.
Definition: socialfriendrequeststask.h:46
int32_t total
The total number of outstanding requests. Use this to determine if there are more pages to request...
Definition: socialfriendrequeststask.h:55
uint32_t Timestamp
Definition: coretypes.h:27
Definition: httptask.h:19
Definition: socialfriendrequeststask.h:49
std::vector< FriendRequestEntry > requests
Definition: socialfriendrequeststask.h:53
Definition: socialfriendrequeststask.h:24
uint32_t mLimit
Definition: socialfriendrequeststask.h:86
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
std::string mCursor
Definition: socialfriendrequeststask.h:82
Action mAction
Definition: socialfriendrequeststask.h:83
Represents a JSON value.
Definition: value.h:114
SortDirection mSortDirection
Definition: socialfriendrequeststask.h:84
Action action
Definition: socialfriendrequeststask.h:56
Definition: socialfriendrequeststask.h:43
UserInfo userInfo
Definition: socialfriendrequeststask.h:45
virtual bool ProcessHeaders(uint statusCode, const std::map< std::string, std::string > &headers) override
UserId mUserId
Definition: socialfriendrequeststask.h:85
unsigned int uint
Definition: coretypes.h:18
virtual void OnComplete() override
Callback mCallback
Definition: socialfriendrequeststask.h:81
bool ParseFriendRequestListJson(const json::Value &jArray)
static const uint32_t kMaxLimit
Definition: socialfriendrequeststask.h:27
std::shared_ptr< Result > mResult
Definition: socialfriendrequeststask.h:80
std::string cursor
The cursor string used to fetch the next page of results, if there are more.
Definition: socialfriendrequeststask.h:54
SocialFriendRequestsTask(UserId userId, const std::string &authToken, Callback callback)
Definition: httptask.h:22
virtual void ProcessResponse(uint statusCode, const std::vector< char > &response) override