///
/// Copyright (c) 2016 Dropbox, Inc. All rights reserved.
///
/// Auto-generated by Stone, do not modify.
///

#import "DBTEAMLOGTeamAuthRoutes.h"
#import "DBRequestErrors.h"
#import "DBStoneBase.h"
#import "DBTEAMCOMMONTimeRange.h"
#import "DBTEAMLOGEventCategory.h"
#import "DBTEAMLOGEventTypeArg.h"
#import "DBTEAMLOGGetTeamEventsArg.h"
#import "DBTEAMLOGGetTeamEventsContinueArg.h"
#import "DBTEAMLOGGetTeamEventsContinueError.h"
#import "DBTEAMLOGGetTeamEventsError.h"
#import "DBTEAMLOGGetTeamEventsResult.h"
#import "DBTEAMLOGRouteObjects.h"
#import "DBTEAMLOGTeamEvent.h"
#import "DBTransportClientProtocol.h"

@implementation DBTEAMLOGTeamAuthRoutes

- (instancetype)init:(id<DBTransportClient>)client {
  self = [super init];
  if (self) {
    _client = client;
  }
  return self;
}

- (DBRpcTask *)getEvents {
  DBRoute *route = DBTEAMLOGRouteObjects.DBTEAMLOGGetEvents;
  DBTEAMLOGGetTeamEventsArg *arg = [[DBTEAMLOGGetTeamEventsArg alloc] initDefault];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)getEvents:(NSNumber *)limit
               accountId:(NSString *)accountId
                    time:(DBTEAMCOMMONTimeRange *)time
                category:(DBTEAMLOGEventCategory *)category
               eventType:(DBTEAMLOGEventTypeArg *)eventType {
  DBRoute *route = DBTEAMLOGRouteObjects.DBTEAMLOGGetEvents;
  DBTEAMLOGGetTeamEventsArg *arg = [[DBTEAMLOGGetTeamEventsArg alloc] initWithLimit:limit
                                                                          accountId:accountId
                                                                               time:time
                                                                           category:category
                                                                          eventType:eventType];
  return [self.client requestRpc:route arg:arg];
}

- (DBRpcTask *)getEventsContinue:(NSString *)cursor {
  DBRoute *route = DBTEAMLOGRouteObjects.DBTEAMLOGGetEventsContinue;
  DBTEAMLOGGetTeamEventsContinueArg *arg = [[DBTEAMLOGGetTeamEventsContinueArg alloc] initWithCursor:cursor];
  return [self.client requestRpc:route arg:arg];
}

@end
