github.com/haalcala/mattermost-server-change-repo@v0.0.0-20210713015153-16753fbeee5f/plugin/api_timer_layer_generated.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See LICENSE.txt for license information.
     3  
     4  // Code generated by "make pluginapi"
     5  // DO NOT EDIT
     6  
     7  package plugin
     8  
     9  import (
    10  	"io"
    11  	"net/http"
    12  	timePkg "time"
    13  
    14  	"github.com/mattermost/mattermost-server/v5/einterfaces"
    15  	"github.com/mattermost/mattermost-server/v5/model"
    16  )
    17  
    18  type apiTimerLayer struct {
    19  	pluginID string
    20  	apiImpl  API
    21  	metrics  einterfaces.MetricsInterface
    22  }
    23  
    24  func (api *apiTimerLayer) recordTime(startTime timePkg.Time, name string, success bool) {
    25  	if api.metrics != nil {
    26  		elapsedTime := float64(timePkg.Since(startTime)) / float64(timePkg.Second)
    27  		api.metrics.ObservePluginApiDuration(api.pluginID, name, success, elapsedTime)
    28  	}
    29  }
    30  
    31  func (api *apiTimerLayer) LoadPluginConfiguration(dest interface{}) error {
    32  	startTime := timePkg.Now()
    33  	_returnsA := api.apiImpl.LoadPluginConfiguration(dest)
    34  	api.recordTime(startTime, "LoadPluginConfiguration", _returnsA == nil)
    35  	return _returnsA
    36  }
    37  
    38  func (api *apiTimerLayer) RegisterCommand(command *model.Command) error {
    39  	startTime := timePkg.Now()
    40  	_returnsA := api.apiImpl.RegisterCommand(command)
    41  	api.recordTime(startTime, "RegisterCommand", _returnsA == nil)
    42  	return _returnsA
    43  }
    44  
    45  func (api *apiTimerLayer) UnregisterCommand(teamId, trigger string) error {
    46  	startTime := timePkg.Now()
    47  	_returnsA := api.apiImpl.UnregisterCommand(teamId, trigger)
    48  	api.recordTime(startTime, "UnregisterCommand", _returnsA == nil)
    49  	return _returnsA
    50  }
    51  
    52  func (api *apiTimerLayer) ExecuteSlashCommand(commandArgs *model.CommandArgs) (*model.CommandResponse, error) {
    53  	startTime := timePkg.Now()
    54  	_returnsA, _returnsB := api.apiImpl.ExecuteSlashCommand(commandArgs)
    55  	api.recordTime(startTime, "ExecuteSlashCommand", _returnsB == nil)
    56  	return _returnsA, _returnsB
    57  }
    58  
    59  func (api *apiTimerLayer) GetSession(sessionId string) (*model.Session, *model.AppError) {
    60  	startTime := timePkg.Now()
    61  	_returnsA, _returnsB := api.apiImpl.GetSession(sessionId)
    62  	api.recordTime(startTime, "GetSession", _returnsB == nil)
    63  	return _returnsA, _returnsB
    64  }
    65  
    66  func (api *apiTimerLayer) GetConfig() *model.Config {
    67  	startTime := timePkg.Now()
    68  	_returnsA := api.apiImpl.GetConfig()
    69  	api.recordTime(startTime, "GetConfig", true)
    70  	return _returnsA
    71  }
    72  
    73  func (api *apiTimerLayer) GetUnsanitizedConfig() *model.Config {
    74  	startTime := timePkg.Now()
    75  	_returnsA := api.apiImpl.GetUnsanitizedConfig()
    76  	api.recordTime(startTime, "GetUnsanitizedConfig", true)
    77  	return _returnsA
    78  }
    79  
    80  func (api *apiTimerLayer) SaveConfig(config *model.Config) *model.AppError {
    81  	startTime := timePkg.Now()
    82  	_returnsA := api.apiImpl.SaveConfig(config)
    83  	api.recordTime(startTime, "SaveConfig", _returnsA == nil)
    84  	return _returnsA
    85  }
    86  
    87  func (api *apiTimerLayer) GetPluginConfig() map[string]interface{} {
    88  	startTime := timePkg.Now()
    89  	_returnsA := api.apiImpl.GetPluginConfig()
    90  	api.recordTime(startTime, "GetPluginConfig", true)
    91  	return _returnsA
    92  }
    93  
    94  func (api *apiTimerLayer) SavePluginConfig(config map[string]interface{}) *model.AppError {
    95  	startTime := timePkg.Now()
    96  	_returnsA := api.apiImpl.SavePluginConfig(config)
    97  	api.recordTime(startTime, "SavePluginConfig", _returnsA == nil)
    98  	return _returnsA
    99  }
   100  
   101  func (api *apiTimerLayer) GetBundlePath() (string, error) {
   102  	startTime := timePkg.Now()
   103  	_returnsA, _returnsB := api.apiImpl.GetBundlePath()
   104  	api.recordTime(startTime, "GetBundlePath", _returnsB == nil)
   105  	return _returnsA, _returnsB
   106  }
   107  
   108  func (api *apiTimerLayer) GetLicense() *model.License {
   109  	startTime := timePkg.Now()
   110  	_returnsA := api.apiImpl.GetLicense()
   111  	api.recordTime(startTime, "GetLicense", true)
   112  	return _returnsA
   113  }
   114  
   115  func (api *apiTimerLayer) GetServerVersion() string {
   116  	startTime := timePkg.Now()
   117  	_returnsA := api.apiImpl.GetServerVersion()
   118  	api.recordTime(startTime, "GetServerVersion", true)
   119  	return _returnsA
   120  }
   121  
   122  func (api *apiTimerLayer) GetSystemInstallDate() (int64, *model.AppError) {
   123  	startTime := timePkg.Now()
   124  	_returnsA, _returnsB := api.apiImpl.GetSystemInstallDate()
   125  	api.recordTime(startTime, "GetSystemInstallDate", _returnsB == nil)
   126  	return _returnsA, _returnsB
   127  }
   128  
   129  func (api *apiTimerLayer) GetDiagnosticId() string {
   130  	startTime := timePkg.Now()
   131  	_returnsA := api.apiImpl.GetDiagnosticId()
   132  	api.recordTime(startTime, "GetDiagnosticId", true)
   133  	return _returnsA
   134  }
   135  
   136  func (api *apiTimerLayer) GetTelemetryId() string {
   137  	startTime := timePkg.Now()
   138  	_returnsA := api.apiImpl.GetTelemetryId()
   139  	api.recordTime(startTime, "GetTelemetryId", true)
   140  	return _returnsA
   141  }
   142  
   143  func (api *apiTimerLayer) CreateUser(user *model.User) (*model.User, *model.AppError) {
   144  	startTime := timePkg.Now()
   145  	_returnsA, _returnsB := api.apiImpl.CreateUser(user)
   146  	api.recordTime(startTime, "CreateUser", _returnsB == nil)
   147  	return _returnsA, _returnsB
   148  }
   149  
   150  func (api *apiTimerLayer) DeleteUser(userId string) *model.AppError {
   151  	startTime := timePkg.Now()
   152  	_returnsA := api.apiImpl.DeleteUser(userId)
   153  	api.recordTime(startTime, "DeleteUser", _returnsA == nil)
   154  	return _returnsA
   155  }
   156  
   157  func (api *apiTimerLayer) GetUsers(options *model.UserGetOptions) ([]*model.User, *model.AppError) {
   158  	startTime := timePkg.Now()
   159  	_returnsA, _returnsB := api.apiImpl.GetUsers(options)
   160  	api.recordTime(startTime, "GetUsers", _returnsB == nil)
   161  	return _returnsA, _returnsB
   162  }
   163  
   164  func (api *apiTimerLayer) GetUser(userId string) (*model.User, *model.AppError) {
   165  	startTime := timePkg.Now()
   166  	_returnsA, _returnsB := api.apiImpl.GetUser(userId)
   167  	api.recordTime(startTime, "GetUser", _returnsB == nil)
   168  	return _returnsA, _returnsB
   169  }
   170  
   171  func (api *apiTimerLayer) GetUserByEmail(email string) (*model.User, *model.AppError) {
   172  	startTime := timePkg.Now()
   173  	_returnsA, _returnsB := api.apiImpl.GetUserByEmail(email)
   174  	api.recordTime(startTime, "GetUserByEmail", _returnsB == nil)
   175  	return _returnsA, _returnsB
   176  }
   177  
   178  func (api *apiTimerLayer) GetUserByUsername(name string) (*model.User, *model.AppError) {
   179  	startTime := timePkg.Now()
   180  	_returnsA, _returnsB := api.apiImpl.GetUserByUsername(name)
   181  	api.recordTime(startTime, "GetUserByUsername", _returnsB == nil)
   182  	return _returnsA, _returnsB
   183  }
   184  
   185  func (api *apiTimerLayer) GetUsersByUsernames(usernames []string) ([]*model.User, *model.AppError) {
   186  	startTime := timePkg.Now()
   187  	_returnsA, _returnsB := api.apiImpl.GetUsersByUsernames(usernames)
   188  	api.recordTime(startTime, "GetUsersByUsernames", _returnsB == nil)
   189  	return _returnsA, _returnsB
   190  }
   191  
   192  func (api *apiTimerLayer) GetUsersInTeam(teamId string, page int, perPage int) ([]*model.User, *model.AppError) {
   193  	startTime := timePkg.Now()
   194  	_returnsA, _returnsB := api.apiImpl.GetUsersInTeam(teamId, page, perPage)
   195  	api.recordTime(startTime, "GetUsersInTeam", _returnsB == nil)
   196  	return _returnsA, _returnsB
   197  }
   198  
   199  func (api *apiTimerLayer) GetPreferencesForUser(userId string) ([]model.Preference, *model.AppError) {
   200  	startTime := timePkg.Now()
   201  	_returnsA, _returnsB := api.apiImpl.GetPreferencesForUser(userId)
   202  	api.recordTime(startTime, "GetPreferencesForUser", _returnsB == nil)
   203  	return _returnsA, _returnsB
   204  }
   205  
   206  func (api *apiTimerLayer) UpdatePreferencesForUser(userId string, preferences []model.Preference) *model.AppError {
   207  	startTime := timePkg.Now()
   208  	_returnsA := api.apiImpl.UpdatePreferencesForUser(userId, preferences)
   209  	api.recordTime(startTime, "UpdatePreferencesForUser", _returnsA == nil)
   210  	return _returnsA
   211  }
   212  
   213  func (api *apiTimerLayer) DeletePreferencesForUser(userId string, preferences []model.Preference) *model.AppError {
   214  	startTime := timePkg.Now()
   215  	_returnsA := api.apiImpl.DeletePreferencesForUser(userId, preferences)
   216  	api.recordTime(startTime, "DeletePreferencesForUser", _returnsA == nil)
   217  	return _returnsA
   218  }
   219  
   220  func (api *apiTimerLayer) GetTeamIcon(teamId string) ([]byte, *model.AppError) {
   221  	startTime := timePkg.Now()
   222  	_returnsA, _returnsB := api.apiImpl.GetTeamIcon(teamId)
   223  	api.recordTime(startTime, "GetTeamIcon", _returnsB == nil)
   224  	return _returnsA, _returnsB
   225  }
   226  
   227  func (api *apiTimerLayer) SetTeamIcon(teamId string, data []byte) *model.AppError {
   228  	startTime := timePkg.Now()
   229  	_returnsA := api.apiImpl.SetTeamIcon(teamId, data)
   230  	api.recordTime(startTime, "SetTeamIcon", _returnsA == nil)
   231  	return _returnsA
   232  }
   233  
   234  func (api *apiTimerLayer) RemoveTeamIcon(teamId string) *model.AppError {
   235  	startTime := timePkg.Now()
   236  	_returnsA := api.apiImpl.RemoveTeamIcon(teamId)
   237  	api.recordTime(startTime, "RemoveTeamIcon", _returnsA == nil)
   238  	return _returnsA
   239  }
   240  
   241  func (api *apiTimerLayer) UpdateUser(user *model.User) (*model.User, *model.AppError) {
   242  	startTime := timePkg.Now()
   243  	_returnsA, _returnsB := api.apiImpl.UpdateUser(user)
   244  	api.recordTime(startTime, "UpdateUser", _returnsB == nil)
   245  	return _returnsA, _returnsB
   246  }
   247  
   248  func (api *apiTimerLayer) GetUserStatus(userId string) (*model.Status, *model.AppError) {
   249  	startTime := timePkg.Now()
   250  	_returnsA, _returnsB := api.apiImpl.GetUserStatus(userId)
   251  	api.recordTime(startTime, "GetUserStatus", _returnsB == nil)
   252  	return _returnsA, _returnsB
   253  }
   254  
   255  func (api *apiTimerLayer) GetUserStatusesByIds(userIds []string) ([]*model.Status, *model.AppError) {
   256  	startTime := timePkg.Now()
   257  	_returnsA, _returnsB := api.apiImpl.GetUserStatusesByIds(userIds)
   258  	api.recordTime(startTime, "GetUserStatusesByIds", _returnsB == nil)
   259  	return _returnsA, _returnsB
   260  }
   261  
   262  func (api *apiTimerLayer) UpdateUserStatus(userId, status string) (*model.Status, *model.AppError) {
   263  	startTime := timePkg.Now()
   264  	_returnsA, _returnsB := api.apiImpl.UpdateUserStatus(userId, status)
   265  	api.recordTime(startTime, "UpdateUserStatus", _returnsB == nil)
   266  	return _returnsA, _returnsB
   267  }
   268  
   269  func (api *apiTimerLayer) UpdateUserActive(userId string, active bool) *model.AppError {
   270  	startTime := timePkg.Now()
   271  	_returnsA := api.apiImpl.UpdateUserActive(userId, active)
   272  	api.recordTime(startTime, "UpdateUserActive", _returnsA == nil)
   273  	return _returnsA
   274  }
   275  
   276  func (api *apiTimerLayer) GetUsersInChannel(channelId, sortBy string, page, perPage int) ([]*model.User, *model.AppError) {
   277  	startTime := timePkg.Now()
   278  	_returnsA, _returnsB := api.apiImpl.GetUsersInChannel(channelId, sortBy, page, perPage)
   279  	api.recordTime(startTime, "GetUsersInChannel", _returnsB == nil)
   280  	return _returnsA, _returnsB
   281  }
   282  
   283  func (api *apiTimerLayer) GetLDAPUserAttributes(userId string, attributes []string) (map[string]string, *model.AppError) {
   284  	startTime := timePkg.Now()
   285  	_returnsA, _returnsB := api.apiImpl.GetLDAPUserAttributes(userId, attributes)
   286  	api.recordTime(startTime, "GetLDAPUserAttributes", _returnsB == nil)
   287  	return _returnsA, _returnsB
   288  }
   289  
   290  func (api *apiTimerLayer) CreateTeam(team *model.Team) (*model.Team, *model.AppError) {
   291  	startTime := timePkg.Now()
   292  	_returnsA, _returnsB := api.apiImpl.CreateTeam(team)
   293  	api.recordTime(startTime, "CreateTeam", _returnsB == nil)
   294  	return _returnsA, _returnsB
   295  }
   296  
   297  func (api *apiTimerLayer) DeleteTeam(teamId string) *model.AppError {
   298  	startTime := timePkg.Now()
   299  	_returnsA := api.apiImpl.DeleteTeam(teamId)
   300  	api.recordTime(startTime, "DeleteTeam", _returnsA == nil)
   301  	return _returnsA
   302  }
   303  
   304  func (api *apiTimerLayer) GetTeams() ([]*model.Team, *model.AppError) {
   305  	startTime := timePkg.Now()
   306  	_returnsA, _returnsB := api.apiImpl.GetTeams()
   307  	api.recordTime(startTime, "GetTeams", _returnsB == nil)
   308  	return _returnsA, _returnsB
   309  }
   310  
   311  func (api *apiTimerLayer) GetTeam(teamId string) (*model.Team, *model.AppError) {
   312  	startTime := timePkg.Now()
   313  	_returnsA, _returnsB := api.apiImpl.GetTeam(teamId)
   314  	api.recordTime(startTime, "GetTeam", _returnsB == nil)
   315  	return _returnsA, _returnsB
   316  }
   317  
   318  func (api *apiTimerLayer) GetTeamByName(name string) (*model.Team, *model.AppError) {
   319  	startTime := timePkg.Now()
   320  	_returnsA, _returnsB := api.apiImpl.GetTeamByName(name)
   321  	api.recordTime(startTime, "GetTeamByName", _returnsB == nil)
   322  	return _returnsA, _returnsB
   323  }
   324  
   325  func (api *apiTimerLayer) GetTeamsUnreadForUser(userId string) ([]*model.TeamUnread, *model.AppError) {
   326  	startTime := timePkg.Now()
   327  	_returnsA, _returnsB := api.apiImpl.GetTeamsUnreadForUser(userId)
   328  	api.recordTime(startTime, "GetTeamsUnreadForUser", _returnsB == nil)
   329  	return _returnsA, _returnsB
   330  }
   331  
   332  func (api *apiTimerLayer) UpdateTeam(team *model.Team) (*model.Team, *model.AppError) {
   333  	startTime := timePkg.Now()
   334  	_returnsA, _returnsB := api.apiImpl.UpdateTeam(team)
   335  	api.recordTime(startTime, "UpdateTeam", _returnsB == nil)
   336  	return _returnsA, _returnsB
   337  }
   338  
   339  func (api *apiTimerLayer) SearchTeams(term string) ([]*model.Team, *model.AppError) {
   340  	startTime := timePkg.Now()
   341  	_returnsA, _returnsB := api.apiImpl.SearchTeams(term)
   342  	api.recordTime(startTime, "SearchTeams", _returnsB == nil)
   343  	return _returnsA, _returnsB
   344  }
   345  
   346  func (api *apiTimerLayer) GetTeamsForUser(userId string) ([]*model.Team, *model.AppError) {
   347  	startTime := timePkg.Now()
   348  	_returnsA, _returnsB := api.apiImpl.GetTeamsForUser(userId)
   349  	api.recordTime(startTime, "GetTeamsForUser", _returnsB == nil)
   350  	return _returnsA, _returnsB
   351  }
   352  
   353  func (api *apiTimerLayer) CreateTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError) {
   354  	startTime := timePkg.Now()
   355  	_returnsA, _returnsB := api.apiImpl.CreateTeamMember(teamId, userId)
   356  	api.recordTime(startTime, "CreateTeamMember", _returnsB == nil)
   357  	return _returnsA, _returnsB
   358  }
   359  
   360  func (api *apiTimerLayer) CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError) {
   361  	startTime := timePkg.Now()
   362  	_returnsA, _returnsB := api.apiImpl.CreateTeamMembers(teamId, userIds, requestorId)
   363  	api.recordTime(startTime, "CreateTeamMembers", _returnsB == nil)
   364  	return _returnsA, _returnsB
   365  }
   366  
   367  func (api *apiTimerLayer) CreateTeamMembersGracefully(teamId string, userIds []string, requestorId string) ([]*model.TeamMemberWithError, *model.AppError) {
   368  	startTime := timePkg.Now()
   369  	_returnsA, _returnsB := api.apiImpl.CreateTeamMembersGracefully(teamId, userIds, requestorId)
   370  	api.recordTime(startTime, "CreateTeamMembersGracefully", _returnsB == nil)
   371  	return _returnsA, _returnsB
   372  }
   373  
   374  func (api *apiTimerLayer) DeleteTeamMember(teamId, userId, requestorId string) *model.AppError {
   375  	startTime := timePkg.Now()
   376  	_returnsA := api.apiImpl.DeleteTeamMember(teamId, userId, requestorId)
   377  	api.recordTime(startTime, "DeleteTeamMember", _returnsA == nil)
   378  	return _returnsA
   379  }
   380  
   381  func (api *apiTimerLayer) GetTeamMembers(teamId string, page, perPage int) ([]*model.TeamMember, *model.AppError) {
   382  	startTime := timePkg.Now()
   383  	_returnsA, _returnsB := api.apiImpl.GetTeamMembers(teamId, page, perPage)
   384  	api.recordTime(startTime, "GetTeamMembers", _returnsB == nil)
   385  	return _returnsA, _returnsB
   386  }
   387  
   388  func (api *apiTimerLayer) GetTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError) {
   389  	startTime := timePkg.Now()
   390  	_returnsA, _returnsB := api.apiImpl.GetTeamMember(teamId, userId)
   391  	api.recordTime(startTime, "GetTeamMember", _returnsB == nil)
   392  	return _returnsA, _returnsB
   393  }
   394  
   395  func (api *apiTimerLayer) GetTeamMembersForUser(userId string, page int, perPage int) ([]*model.TeamMember, *model.AppError) {
   396  	startTime := timePkg.Now()
   397  	_returnsA, _returnsB := api.apiImpl.GetTeamMembersForUser(userId, page, perPage)
   398  	api.recordTime(startTime, "GetTeamMembersForUser", _returnsB == nil)
   399  	return _returnsA, _returnsB
   400  }
   401  
   402  func (api *apiTimerLayer) UpdateTeamMemberRoles(teamId, userId, newRoles string) (*model.TeamMember, *model.AppError) {
   403  	startTime := timePkg.Now()
   404  	_returnsA, _returnsB := api.apiImpl.UpdateTeamMemberRoles(teamId, userId, newRoles)
   405  	api.recordTime(startTime, "UpdateTeamMemberRoles", _returnsB == nil)
   406  	return _returnsA, _returnsB
   407  }
   408  
   409  func (api *apiTimerLayer) CreateChannel(channel *model.Channel) (*model.Channel, *model.AppError) {
   410  	startTime := timePkg.Now()
   411  	_returnsA, _returnsB := api.apiImpl.CreateChannel(channel)
   412  	api.recordTime(startTime, "CreateChannel", _returnsB == nil)
   413  	return _returnsA, _returnsB
   414  }
   415  
   416  func (api *apiTimerLayer) DeleteChannel(channelId string) *model.AppError {
   417  	startTime := timePkg.Now()
   418  	_returnsA := api.apiImpl.DeleteChannel(channelId)
   419  	api.recordTime(startTime, "DeleteChannel", _returnsA == nil)
   420  	return _returnsA
   421  }
   422  
   423  func (api *apiTimerLayer) GetPublicChannelsForTeam(teamId string, page, perPage int) ([]*model.Channel, *model.AppError) {
   424  	startTime := timePkg.Now()
   425  	_returnsA, _returnsB := api.apiImpl.GetPublicChannelsForTeam(teamId, page, perPage)
   426  	api.recordTime(startTime, "GetPublicChannelsForTeam", _returnsB == nil)
   427  	return _returnsA, _returnsB
   428  }
   429  
   430  func (api *apiTimerLayer) GetChannel(channelId string) (*model.Channel, *model.AppError) {
   431  	startTime := timePkg.Now()
   432  	_returnsA, _returnsB := api.apiImpl.GetChannel(channelId)
   433  	api.recordTime(startTime, "GetChannel", _returnsB == nil)
   434  	return _returnsA, _returnsB
   435  }
   436  
   437  func (api *apiTimerLayer) GetChannelByName(teamId, name string, includeDeleted bool) (*model.Channel, *model.AppError) {
   438  	startTime := timePkg.Now()
   439  	_returnsA, _returnsB := api.apiImpl.GetChannelByName(teamId, name, includeDeleted)
   440  	api.recordTime(startTime, "GetChannelByName", _returnsB == nil)
   441  	return _returnsA, _returnsB
   442  }
   443  
   444  func (api *apiTimerLayer) GetChannelByNameForTeamName(teamName, channelName string, includeDeleted bool) (*model.Channel, *model.AppError) {
   445  	startTime := timePkg.Now()
   446  	_returnsA, _returnsB := api.apiImpl.GetChannelByNameForTeamName(teamName, channelName, includeDeleted)
   447  	api.recordTime(startTime, "GetChannelByNameForTeamName", _returnsB == nil)
   448  	return _returnsA, _returnsB
   449  }
   450  
   451  func (api *apiTimerLayer) GetChannelsForTeamForUser(teamId, userId string, includeDeleted bool) ([]*model.Channel, *model.AppError) {
   452  	startTime := timePkg.Now()
   453  	_returnsA, _returnsB := api.apiImpl.GetChannelsForTeamForUser(teamId, userId, includeDeleted)
   454  	api.recordTime(startTime, "GetChannelsForTeamForUser", _returnsB == nil)
   455  	return _returnsA, _returnsB
   456  }
   457  
   458  func (api *apiTimerLayer) GetChannelStats(channelId string) (*model.ChannelStats, *model.AppError) {
   459  	startTime := timePkg.Now()
   460  	_returnsA, _returnsB := api.apiImpl.GetChannelStats(channelId)
   461  	api.recordTime(startTime, "GetChannelStats", _returnsB == nil)
   462  	return _returnsA, _returnsB
   463  }
   464  
   465  func (api *apiTimerLayer) GetDirectChannel(userId1, userId2 string) (*model.Channel, *model.AppError) {
   466  	startTime := timePkg.Now()
   467  	_returnsA, _returnsB := api.apiImpl.GetDirectChannel(userId1, userId2)
   468  	api.recordTime(startTime, "GetDirectChannel", _returnsB == nil)
   469  	return _returnsA, _returnsB
   470  }
   471  
   472  func (api *apiTimerLayer) GetGroupChannel(userIds []string) (*model.Channel, *model.AppError) {
   473  	startTime := timePkg.Now()
   474  	_returnsA, _returnsB := api.apiImpl.GetGroupChannel(userIds)
   475  	api.recordTime(startTime, "GetGroupChannel", _returnsB == nil)
   476  	return _returnsA, _returnsB
   477  }
   478  
   479  func (api *apiTimerLayer) UpdateChannel(channel *model.Channel) (*model.Channel, *model.AppError) {
   480  	startTime := timePkg.Now()
   481  	_returnsA, _returnsB := api.apiImpl.UpdateChannel(channel)
   482  	api.recordTime(startTime, "UpdateChannel", _returnsB == nil)
   483  	return _returnsA, _returnsB
   484  }
   485  
   486  func (api *apiTimerLayer) SearchChannels(teamId string, term string) ([]*model.Channel, *model.AppError) {
   487  	startTime := timePkg.Now()
   488  	_returnsA, _returnsB := api.apiImpl.SearchChannels(teamId, term)
   489  	api.recordTime(startTime, "SearchChannels", _returnsB == nil)
   490  	return _returnsA, _returnsB
   491  }
   492  
   493  func (api *apiTimerLayer) SearchUsers(search *model.UserSearch) ([]*model.User, *model.AppError) {
   494  	startTime := timePkg.Now()
   495  	_returnsA, _returnsB := api.apiImpl.SearchUsers(search)
   496  	api.recordTime(startTime, "SearchUsers", _returnsB == nil)
   497  	return _returnsA, _returnsB
   498  }
   499  
   500  func (api *apiTimerLayer) SearchPostsInTeam(teamId string, paramsList []*model.SearchParams) ([]*model.Post, *model.AppError) {
   501  	startTime := timePkg.Now()
   502  	_returnsA, _returnsB := api.apiImpl.SearchPostsInTeam(teamId, paramsList)
   503  	api.recordTime(startTime, "SearchPostsInTeam", _returnsB == nil)
   504  	return _returnsA, _returnsB
   505  }
   506  
   507  func (api *apiTimerLayer) SearchPostsInTeamForUser(teamId string, userId string, searchParams model.SearchParameter) (*model.PostSearchResults, *model.AppError) {
   508  	startTime := timePkg.Now()
   509  	_returnsA, _returnsB := api.apiImpl.SearchPostsInTeamForUser(teamId, userId, searchParams)
   510  	api.recordTime(startTime, "SearchPostsInTeamForUser", _returnsB == nil)
   511  	return _returnsA, _returnsB
   512  }
   513  
   514  func (api *apiTimerLayer) AddChannelMember(channelId, userId string) (*model.ChannelMember, *model.AppError) {
   515  	startTime := timePkg.Now()
   516  	_returnsA, _returnsB := api.apiImpl.AddChannelMember(channelId, userId)
   517  	api.recordTime(startTime, "AddChannelMember", _returnsB == nil)
   518  	return _returnsA, _returnsB
   519  }
   520  
   521  func (api *apiTimerLayer) AddUserToChannel(channelId, userId, asUserId string) (*model.ChannelMember, *model.AppError) {
   522  	startTime := timePkg.Now()
   523  	_returnsA, _returnsB := api.apiImpl.AddUserToChannel(channelId, userId, asUserId)
   524  	api.recordTime(startTime, "AddUserToChannel", _returnsB == nil)
   525  	return _returnsA, _returnsB
   526  }
   527  
   528  func (api *apiTimerLayer) GetChannelMember(channelId, userId string) (*model.ChannelMember, *model.AppError) {
   529  	startTime := timePkg.Now()
   530  	_returnsA, _returnsB := api.apiImpl.GetChannelMember(channelId, userId)
   531  	api.recordTime(startTime, "GetChannelMember", _returnsB == nil)
   532  	return _returnsA, _returnsB
   533  }
   534  
   535  func (api *apiTimerLayer) GetChannelMembers(channelId string, page, perPage int) (*model.ChannelMembers, *model.AppError) {
   536  	startTime := timePkg.Now()
   537  	_returnsA, _returnsB := api.apiImpl.GetChannelMembers(channelId, page, perPage)
   538  	api.recordTime(startTime, "GetChannelMembers", _returnsB == nil)
   539  	return _returnsA, _returnsB
   540  }
   541  
   542  func (api *apiTimerLayer) GetChannelMembersByIds(channelId string, userIds []string) (*model.ChannelMembers, *model.AppError) {
   543  	startTime := timePkg.Now()
   544  	_returnsA, _returnsB := api.apiImpl.GetChannelMembersByIds(channelId, userIds)
   545  	api.recordTime(startTime, "GetChannelMembersByIds", _returnsB == nil)
   546  	return _returnsA, _returnsB
   547  }
   548  
   549  func (api *apiTimerLayer) GetChannelMembersForUser(teamId, userId string, page, perPage int) ([]*model.ChannelMember, *model.AppError) {
   550  	startTime := timePkg.Now()
   551  	_returnsA, _returnsB := api.apiImpl.GetChannelMembersForUser(teamId, userId, page, perPage)
   552  	api.recordTime(startTime, "GetChannelMembersForUser", _returnsB == nil)
   553  	return _returnsA, _returnsB
   554  }
   555  
   556  func (api *apiTimerLayer) UpdateChannelMemberRoles(channelId, userId, newRoles string) (*model.ChannelMember, *model.AppError) {
   557  	startTime := timePkg.Now()
   558  	_returnsA, _returnsB := api.apiImpl.UpdateChannelMemberRoles(channelId, userId, newRoles)
   559  	api.recordTime(startTime, "UpdateChannelMemberRoles", _returnsB == nil)
   560  	return _returnsA, _returnsB
   561  }
   562  
   563  func (api *apiTimerLayer) UpdateChannelMemberNotifications(channelId, userId string, notifications map[string]string) (*model.ChannelMember, *model.AppError) {
   564  	startTime := timePkg.Now()
   565  	_returnsA, _returnsB := api.apiImpl.UpdateChannelMemberNotifications(channelId, userId, notifications)
   566  	api.recordTime(startTime, "UpdateChannelMemberNotifications", _returnsB == nil)
   567  	return _returnsA, _returnsB
   568  }
   569  
   570  func (api *apiTimerLayer) GetGroup(groupId string) (*model.Group, *model.AppError) {
   571  	startTime := timePkg.Now()
   572  	_returnsA, _returnsB := api.apiImpl.GetGroup(groupId)
   573  	api.recordTime(startTime, "GetGroup", _returnsB == nil)
   574  	return _returnsA, _returnsB
   575  }
   576  
   577  func (api *apiTimerLayer) GetGroupByName(name string) (*model.Group, *model.AppError) {
   578  	startTime := timePkg.Now()
   579  	_returnsA, _returnsB := api.apiImpl.GetGroupByName(name)
   580  	api.recordTime(startTime, "GetGroupByName", _returnsB == nil)
   581  	return _returnsA, _returnsB
   582  }
   583  
   584  func (api *apiTimerLayer) GetGroupsForUser(userId string) ([]*model.Group, *model.AppError) {
   585  	startTime := timePkg.Now()
   586  	_returnsA, _returnsB := api.apiImpl.GetGroupsForUser(userId)
   587  	api.recordTime(startTime, "GetGroupsForUser", _returnsB == nil)
   588  	return _returnsA, _returnsB
   589  }
   590  
   591  func (api *apiTimerLayer) DeleteChannelMember(channelId, userId string) *model.AppError {
   592  	startTime := timePkg.Now()
   593  	_returnsA := api.apiImpl.DeleteChannelMember(channelId, userId)
   594  	api.recordTime(startTime, "DeleteChannelMember", _returnsA == nil)
   595  	return _returnsA
   596  }
   597  
   598  func (api *apiTimerLayer) CreatePost(post *model.Post) (*model.Post, *model.AppError) {
   599  	startTime := timePkg.Now()
   600  	_returnsA, _returnsB := api.apiImpl.CreatePost(post)
   601  	api.recordTime(startTime, "CreatePost", _returnsB == nil)
   602  	return _returnsA, _returnsB
   603  }
   604  
   605  func (api *apiTimerLayer) AddReaction(reaction *model.Reaction) (*model.Reaction, *model.AppError) {
   606  	startTime := timePkg.Now()
   607  	_returnsA, _returnsB := api.apiImpl.AddReaction(reaction)
   608  	api.recordTime(startTime, "AddReaction", _returnsB == nil)
   609  	return _returnsA, _returnsB
   610  }
   611  
   612  func (api *apiTimerLayer) RemoveReaction(reaction *model.Reaction) *model.AppError {
   613  	startTime := timePkg.Now()
   614  	_returnsA := api.apiImpl.RemoveReaction(reaction)
   615  	api.recordTime(startTime, "RemoveReaction", _returnsA == nil)
   616  	return _returnsA
   617  }
   618  
   619  func (api *apiTimerLayer) GetReactions(postId string) ([]*model.Reaction, *model.AppError) {
   620  	startTime := timePkg.Now()
   621  	_returnsA, _returnsB := api.apiImpl.GetReactions(postId)
   622  	api.recordTime(startTime, "GetReactions", _returnsB == nil)
   623  	return _returnsA, _returnsB
   624  }
   625  
   626  func (api *apiTimerLayer) SendEphemeralPost(userId string, post *model.Post) *model.Post {
   627  	startTime := timePkg.Now()
   628  	_returnsA := api.apiImpl.SendEphemeralPost(userId, post)
   629  	api.recordTime(startTime, "SendEphemeralPost", true)
   630  	return _returnsA
   631  }
   632  
   633  func (api *apiTimerLayer) UpdateEphemeralPost(userId string, post *model.Post) *model.Post {
   634  	startTime := timePkg.Now()
   635  	_returnsA := api.apiImpl.UpdateEphemeralPost(userId, post)
   636  	api.recordTime(startTime, "UpdateEphemeralPost", true)
   637  	return _returnsA
   638  }
   639  
   640  func (api *apiTimerLayer) DeleteEphemeralPost(userId, postId string) {
   641  	startTime := timePkg.Now()
   642  	api.apiImpl.DeleteEphemeralPost(userId, postId)
   643  	api.recordTime(startTime, "DeleteEphemeralPost", true)
   644  }
   645  
   646  func (api *apiTimerLayer) DeletePost(postId string) *model.AppError {
   647  	startTime := timePkg.Now()
   648  	_returnsA := api.apiImpl.DeletePost(postId)
   649  	api.recordTime(startTime, "DeletePost", _returnsA == nil)
   650  	return _returnsA
   651  }
   652  
   653  func (api *apiTimerLayer) GetPostThread(postId string) (*model.PostList, *model.AppError) {
   654  	startTime := timePkg.Now()
   655  	_returnsA, _returnsB := api.apiImpl.GetPostThread(postId)
   656  	api.recordTime(startTime, "GetPostThread", _returnsB == nil)
   657  	return _returnsA, _returnsB
   658  }
   659  
   660  func (api *apiTimerLayer) GetPost(postId string) (*model.Post, *model.AppError) {
   661  	startTime := timePkg.Now()
   662  	_returnsA, _returnsB := api.apiImpl.GetPost(postId)
   663  	api.recordTime(startTime, "GetPost", _returnsB == nil)
   664  	return _returnsA, _returnsB
   665  }
   666  
   667  func (api *apiTimerLayer) GetPostsSince(channelId string, time int64) (*model.PostList, *model.AppError) {
   668  	startTime := timePkg.Now()
   669  	_returnsA, _returnsB := api.apiImpl.GetPostsSince(channelId, time)
   670  	api.recordTime(startTime, "GetPostsSince", _returnsB == nil)
   671  	return _returnsA, _returnsB
   672  }
   673  
   674  func (api *apiTimerLayer) GetPostsAfter(channelId, postId string, page, perPage int) (*model.PostList, *model.AppError) {
   675  	startTime := timePkg.Now()
   676  	_returnsA, _returnsB := api.apiImpl.GetPostsAfter(channelId, postId, page, perPage)
   677  	api.recordTime(startTime, "GetPostsAfter", _returnsB == nil)
   678  	return _returnsA, _returnsB
   679  }
   680  
   681  func (api *apiTimerLayer) GetPostsBefore(channelId, postId string, page, perPage int) (*model.PostList, *model.AppError) {
   682  	startTime := timePkg.Now()
   683  	_returnsA, _returnsB := api.apiImpl.GetPostsBefore(channelId, postId, page, perPage)
   684  	api.recordTime(startTime, "GetPostsBefore", _returnsB == nil)
   685  	return _returnsA, _returnsB
   686  }
   687  
   688  func (api *apiTimerLayer) GetPostsForChannel(channelId string, page, perPage int) (*model.PostList, *model.AppError) {
   689  	startTime := timePkg.Now()
   690  	_returnsA, _returnsB := api.apiImpl.GetPostsForChannel(channelId, page, perPage)
   691  	api.recordTime(startTime, "GetPostsForChannel", _returnsB == nil)
   692  	return _returnsA, _returnsB
   693  }
   694  
   695  func (api *apiTimerLayer) GetTeamStats(teamId string) (*model.TeamStats, *model.AppError) {
   696  	startTime := timePkg.Now()
   697  	_returnsA, _returnsB := api.apiImpl.GetTeamStats(teamId)
   698  	api.recordTime(startTime, "GetTeamStats", _returnsB == nil)
   699  	return _returnsA, _returnsB
   700  }
   701  
   702  func (api *apiTimerLayer) UpdatePost(post *model.Post) (*model.Post, *model.AppError) {
   703  	startTime := timePkg.Now()
   704  	_returnsA, _returnsB := api.apiImpl.UpdatePost(post)
   705  	api.recordTime(startTime, "UpdatePost", _returnsB == nil)
   706  	return _returnsA, _returnsB
   707  }
   708  
   709  func (api *apiTimerLayer) GetProfileImage(userId string) ([]byte, *model.AppError) {
   710  	startTime := timePkg.Now()
   711  	_returnsA, _returnsB := api.apiImpl.GetProfileImage(userId)
   712  	api.recordTime(startTime, "GetProfileImage", _returnsB == nil)
   713  	return _returnsA, _returnsB
   714  }
   715  
   716  func (api *apiTimerLayer) SetProfileImage(userId string, data []byte) *model.AppError {
   717  	startTime := timePkg.Now()
   718  	_returnsA := api.apiImpl.SetProfileImage(userId, data)
   719  	api.recordTime(startTime, "SetProfileImage", _returnsA == nil)
   720  	return _returnsA
   721  }
   722  
   723  func (api *apiTimerLayer) GetEmojiList(sortBy string, page, perPage int) ([]*model.Emoji, *model.AppError) {
   724  	startTime := timePkg.Now()
   725  	_returnsA, _returnsB := api.apiImpl.GetEmojiList(sortBy, page, perPage)
   726  	api.recordTime(startTime, "GetEmojiList", _returnsB == nil)
   727  	return _returnsA, _returnsB
   728  }
   729  
   730  func (api *apiTimerLayer) GetEmojiByName(name string) (*model.Emoji, *model.AppError) {
   731  	startTime := timePkg.Now()
   732  	_returnsA, _returnsB := api.apiImpl.GetEmojiByName(name)
   733  	api.recordTime(startTime, "GetEmojiByName", _returnsB == nil)
   734  	return _returnsA, _returnsB
   735  }
   736  
   737  func (api *apiTimerLayer) GetEmoji(emojiId string) (*model.Emoji, *model.AppError) {
   738  	startTime := timePkg.Now()
   739  	_returnsA, _returnsB := api.apiImpl.GetEmoji(emojiId)
   740  	api.recordTime(startTime, "GetEmoji", _returnsB == nil)
   741  	return _returnsA, _returnsB
   742  }
   743  
   744  func (api *apiTimerLayer) CopyFileInfos(userId string, fileIds []string) ([]string, *model.AppError) {
   745  	startTime := timePkg.Now()
   746  	_returnsA, _returnsB := api.apiImpl.CopyFileInfos(userId, fileIds)
   747  	api.recordTime(startTime, "CopyFileInfos", _returnsB == nil)
   748  	return _returnsA, _returnsB
   749  }
   750  
   751  func (api *apiTimerLayer) GetFileInfo(fileId string) (*model.FileInfo, *model.AppError) {
   752  	startTime := timePkg.Now()
   753  	_returnsA, _returnsB := api.apiImpl.GetFileInfo(fileId)
   754  	api.recordTime(startTime, "GetFileInfo", _returnsB == nil)
   755  	return _returnsA, _returnsB
   756  }
   757  
   758  func (api *apiTimerLayer) GetFileInfos(page, perPage int, opt *model.GetFileInfosOptions) ([]*model.FileInfo, *model.AppError) {
   759  	startTime := timePkg.Now()
   760  	_returnsA, _returnsB := api.apiImpl.GetFileInfos(page, perPage, opt)
   761  	api.recordTime(startTime, "GetFileInfos", _returnsB == nil)
   762  	return _returnsA, _returnsB
   763  }
   764  
   765  func (api *apiTimerLayer) GetFile(fileId string) ([]byte, *model.AppError) {
   766  	startTime := timePkg.Now()
   767  	_returnsA, _returnsB := api.apiImpl.GetFile(fileId)
   768  	api.recordTime(startTime, "GetFile", _returnsB == nil)
   769  	return _returnsA, _returnsB
   770  }
   771  
   772  func (api *apiTimerLayer) GetFileLink(fileId string) (string, *model.AppError) {
   773  	startTime := timePkg.Now()
   774  	_returnsA, _returnsB := api.apiImpl.GetFileLink(fileId)
   775  	api.recordTime(startTime, "GetFileLink", _returnsB == nil)
   776  	return _returnsA, _returnsB
   777  }
   778  
   779  func (api *apiTimerLayer) ReadFile(path string) ([]byte, *model.AppError) {
   780  	startTime := timePkg.Now()
   781  	_returnsA, _returnsB := api.apiImpl.ReadFile(path)
   782  	api.recordTime(startTime, "ReadFile", _returnsB == nil)
   783  	return _returnsA, _returnsB
   784  }
   785  
   786  func (api *apiTimerLayer) GetEmojiImage(emojiId string) ([]byte, string, *model.AppError) {
   787  	startTime := timePkg.Now()
   788  	_returnsA, _returnsB, _returnsC := api.apiImpl.GetEmojiImage(emojiId)
   789  	api.recordTime(startTime, "GetEmojiImage", _returnsC == nil)
   790  	return _returnsA, _returnsB, _returnsC
   791  }
   792  
   793  func (api *apiTimerLayer) UploadFile(data []byte, channelId string, filename string) (*model.FileInfo, *model.AppError) {
   794  	startTime := timePkg.Now()
   795  	_returnsA, _returnsB := api.apiImpl.UploadFile(data, channelId, filename)
   796  	api.recordTime(startTime, "UploadFile", _returnsB == nil)
   797  	return _returnsA, _returnsB
   798  }
   799  
   800  func (api *apiTimerLayer) OpenInteractiveDialog(dialog model.OpenDialogRequest) *model.AppError {
   801  	startTime := timePkg.Now()
   802  	_returnsA := api.apiImpl.OpenInteractiveDialog(dialog)
   803  	api.recordTime(startTime, "OpenInteractiveDialog", _returnsA == nil)
   804  	return _returnsA
   805  }
   806  
   807  func (api *apiTimerLayer) GetPlugins() ([]*model.Manifest, *model.AppError) {
   808  	startTime := timePkg.Now()
   809  	_returnsA, _returnsB := api.apiImpl.GetPlugins()
   810  	api.recordTime(startTime, "GetPlugins", _returnsB == nil)
   811  	return _returnsA, _returnsB
   812  }
   813  
   814  func (api *apiTimerLayer) EnablePlugin(id string) *model.AppError {
   815  	startTime := timePkg.Now()
   816  	_returnsA := api.apiImpl.EnablePlugin(id)
   817  	api.recordTime(startTime, "EnablePlugin", _returnsA == nil)
   818  	return _returnsA
   819  }
   820  
   821  func (api *apiTimerLayer) DisablePlugin(id string) *model.AppError {
   822  	startTime := timePkg.Now()
   823  	_returnsA := api.apiImpl.DisablePlugin(id)
   824  	api.recordTime(startTime, "DisablePlugin", _returnsA == nil)
   825  	return _returnsA
   826  }
   827  
   828  func (api *apiTimerLayer) RemovePlugin(id string) *model.AppError {
   829  	startTime := timePkg.Now()
   830  	_returnsA := api.apiImpl.RemovePlugin(id)
   831  	api.recordTime(startTime, "RemovePlugin", _returnsA == nil)
   832  	return _returnsA
   833  }
   834  
   835  func (api *apiTimerLayer) GetPluginStatus(id string) (*model.PluginStatus, *model.AppError) {
   836  	startTime := timePkg.Now()
   837  	_returnsA, _returnsB := api.apiImpl.GetPluginStatus(id)
   838  	api.recordTime(startTime, "GetPluginStatus", _returnsB == nil)
   839  	return _returnsA, _returnsB
   840  }
   841  
   842  func (api *apiTimerLayer) InstallPlugin(file io.Reader, replace bool) (*model.Manifest, *model.AppError) {
   843  	startTime := timePkg.Now()
   844  	_returnsA, _returnsB := api.apiImpl.InstallPlugin(file, replace)
   845  	api.recordTime(startTime, "InstallPlugin", _returnsB == nil)
   846  	return _returnsA, _returnsB
   847  }
   848  
   849  func (api *apiTimerLayer) KVSet(key string, value []byte) *model.AppError {
   850  	startTime := timePkg.Now()
   851  	_returnsA := api.apiImpl.KVSet(key, value)
   852  	api.recordTime(startTime, "KVSet", _returnsA == nil)
   853  	return _returnsA
   854  }
   855  
   856  func (api *apiTimerLayer) KVCompareAndSet(key string, oldValue, newValue []byte) (bool, *model.AppError) {
   857  	startTime := timePkg.Now()
   858  	_returnsA, _returnsB := api.apiImpl.KVCompareAndSet(key, oldValue, newValue)
   859  	api.recordTime(startTime, "KVCompareAndSet", _returnsB == nil)
   860  	return _returnsA, _returnsB
   861  }
   862  
   863  func (api *apiTimerLayer) KVCompareAndDelete(key string, oldValue []byte) (bool, *model.AppError) {
   864  	startTime := timePkg.Now()
   865  	_returnsA, _returnsB := api.apiImpl.KVCompareAndDelete(key, oldValue)
   866  	api.recordTime(startTime, "KVCompareAndDelete", _returnsB == nil)
   867  	return _returnsA, _returnsB
   868  }
   869  
   870  func (api *apiTimerLayer) KVSetWithOptions(key string, value []byte, options model.PluginKVSetOptions) (bool, *model.AppError) {
   871  	startTime := timePkg.Now()
   872  	_returnsA, _returnsB := api.apiImpl.KVSetWithOptions(key, value, options)
   873  	api.recordTime(startTime, "KVSetWithOptions", _returnsB == nil)
   874  	return _returnsA, _returnsB
   875  }
   876  
   877  func (api *apiTimerLayer) KVSetWithExpiry(key string, value []byte, expireInSeconds int64) *model.AppError {
   878  	startTime := timePkg.Now()
   879  	_returnsA := api.apiImpl.KVSetWithExpiry(key, value, expireInSeconds)
   880  	api.recordTime(startTime, "KVSetWithExpiry", _returnsA == nil)
   881  	return _returnsA
   882  }
   883  
   884  func (api *apiTimerLayer) KVGet(key string) ([]byte, *model.AppError) {
   885  	startTime := timePkg.Now()
   886  	_returnsA, _returnsB := api.apiImpl.KVGet(key)
   887  	api.recordTime(startTime, "KVGet", _returnsB == nil)
   888  	return _returnsA, _returnsB
   889  }
   890  
   891  func (api *apiTimerLayer) KVDelete(key string) *model.AppError {
   892  	startTime := timePkg.Now()
   893  	_returnsA := api.apiImpl.KVDelete(key)
   894  	api.recordTime(startTime, "KVDelete", _returnsA == nil)
   895  	return _returnsA
   896  }
   897  
   898  func (api *apiTimerLayer) KVDeleteAll() *model.AppError {
   899  	startTime := timePkg.Now()
   900  	_returnsA := api.apiImpl.KVDeleteAll()
   901  	api.recordTime(startTime, "KVDeleteAll", _returnsA == nil)
   902  	return _returnsA
   903  }
   904  
   905  func (api *apiTimerLayer) KVList(page, perPage int) ([]string, *model.AppError) {
   906  	startTime := timePkg.Now()
   907  	_returnsA, _returnsB := api.apiImpl.KVList(page, perPage)
   908  	api.recordTime(startTime, "KVList", _returnsB == nil)
   909  	return _returnsA, _returnsB
   910  }
   911  
   912  func (api *apiTimerLayer) PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *model.WebsocketBroadcast) {
   913  	startTime := timePkg.Now()
   914  	api.apiImpl.PublishWebSocketEvent(event, payload, broadcast)
   915  	api.recordTime(startTime, "PublishWebSocketEvent", true)
   916  }
   917  
   918  func (api *apiTimerLayer) HasPermissionTo(userId string, permission *model.Permission) bool {
   919  	startTime := timePkg.Now()
   920  	_returnsA := api.apiImpl.HasPermissionTo(userId, permission)
   921  	api.recordTime(startTime, "HasPermissionTo", true)
   922  	return _returnsA
   923  }
   924  
   925  func (api *apiTimerLayer) HasPermissionToTeam(userId, teamId string, permission *model.Permission) bool {
   926  	startTime := timePkg.Now()
   927  	_returnsA := api.apiImpl.HasPermissionToTeam(userId, teamId, permission)
   928  	api.recordTime(startTime, "HasPermissionToTeam", true)
   929  	return _returnsA
   930  }
   931  
   932  func (api *apiTimerLayer) HasPermissionToChannel(userId, channelId string, permission *model.Permission) bool {
   933  	startTime := timePkg.Now()
   934  	_returnsA := api.apiImpl.HasPermissionToChannel(userId, channelId, permission)
   935  	api.recordTime(startTime, "HasPermissionToChannel", true)
   936  	return _returnsA
   937  }
   938  
   939  func (api *apiTimerLayer) LogDebug(msg string, keyValuePairs ...interface{}) {
   940  	startTime := timePkg.Now()
   941  	api.apiImpl.LogDebug(msg, keyValuePairs...)
   942  	api.recordTime(startTime, "LogDebug", true)
   943  }
   944  
   945  func (api *apiTimerLayer) LogInfo(msg string, keyValuePairs ...interface{}) {
   946  	startTime := timePkg.Now()
   947  	api.apiImpl.LogInfo(msg, keyValuePairs...)
   948  	api.recordTime(startTime, "LogInfo", true)
   949  }
   950  
   951  func (api *apiTimerLayer) LogError(msg string, keyValuePairs ...interface{}) {
   952  	startTime := timePkg.Now()
   953  	api.apiImpl.LogError(msg, keyValuePairs...)
   954  	api.recordTime(startTime, "LogError", true)
   955  }
   956  
   957  func (api *apiTimerLayer) LogWarn(msg string, keyValuePairs ...interface{}) {
   958  	startTime := timePkg.Now()
   959  	api.apiImpl.LogWarn(msg, keyValuePairs...)
   960  	api.recordTime(startTime, "LogWarn", true)
   961  }
   962  
   963  func (api *apiTimerLayer) SendMail(to, subject, htmlBody string) *model.AppError {
   964  	startTime := timePkg.Now()
   965  	_returnsA := api.apiImpl.SendMail(to, subject, htmlBody)
   966  	api.recordTime(startTime, "SendMail", _returnsA == nil)
   967  	return _returnsA
   968  }
   969  
   970  func (api *apiTimerLayer) CreateBot(bot *model.Bot) (*model.Bot, *model.AppError) {
   971  	startTime := timePkg.Now()
   972  	_returnsA, _returnsB := api.apiImpl.CreateBot(bot)
   973  	api.recordTime(startTime, "CreateBot", _returnsB == nil)
   974  	return _returnsA, _returnsB
   975  }
   976  
   977  func (api *apiTimerLayer) PatchBot(botUserId string, botPatch *model.BotPatch) (*model.Bot, *model.AppError) {
   978  	startTime := timePkg.Now()
   979  	_returnsA, _returnsB := api.apiImpl.PatchBot(botUserId, botPatch)
   980  	api.recordTime(startTime, "PatchBot", _returnsB == nil)
   981  	return _returnsA, _returnsB
   982  }
   983  
   984  func (api *apiTimerLayer) GetBot(botUserId string, includeDeleted bool) (*model.Bot, *model.AppError) {
   985  	startTime := timePkg.Now()
   986  	_returnsA, _returnsB := api.apiImpl.GetBot(botUserId, includeDeleted)
   987  	api.recordTime(startTime, "GetBot", _returnsB == nil)
   988  	return _returnsA, _returnsB
   989  }
   990  
   991  func (api *apiTimerLayer) GetBots(options *model.BotGetOptions) ([]*model.Bot, *model.AppError) {
   992  	startTime := timePkg.Now()
   993  	_returnsA, _returnsB := api.apiImpl.GetBots(options)
   994  	api.recordTime(startTime, "GetBots", _returnsB == nil)
   995  	return _returnsA, _returnsB
   996  }
   997  
   998  func (api *apiTimerLayer) UpdateBotActive(botUserId string, active bool) (*model.Bot, *model.AppError) {
   999  	startTime := timePkg.Now()
  1000  	_returnsA, _returnsB := api.apiImpl.UpdateBotActive(botUserId, active)
  1001  	api.recordTime(startTime, "UpdateBotActive", _returnsB == nil)
  1002  	return _returnsA, _returnsB
  1003  }
  1004  
  1005  func (api *apiTimerLayer) PermanentDeleteBot(botUserId string) *model.AppError {
  1006  	startTime := timePkg.Now()
  1007  	_returnsA := api.apiImpl.PermanentDeleteBot(botUserId)
  1008  	api.recordTime(startTime, "PermanentDeleteBot", _returnsA == nil)
  1009  	return _returnsA
  1010  }
  1011  
  1012  func (api *apiTimerLayer) GetBotIconImage(botUserId string) ([]byte, *model.AppError) {
  1013  	startTime := timePkg.Now()
  1014  	_returnsA, _returnsB := api.apiImpl.GetBotIconImage(botUserId)
  1015  	api.recordTime(startTime, "GetBotIconImage", _returnsB == nil)
  1016  	return _returnsA, _returnsB
  1017  }
  1018  
  1019  func (api *apiTimerLayer) SetBotIconImage(botUserId string, data []byte) *model.AppError {
  1020  	startTime := timePkg.Now()
  1021  	_returnsA := api.apiImpl.SetBotIconImage(botUserId, data)
  1022  	api.recordTime(startTime, "SetBotIconImage", _returnsA == nil)
  1023  	return _returnsA
  1024  }
  1025  
  1026  func (api *apiTimerLayer) DeleteBotIconImage(botUserId string) *model.AppError {
  1027  	startTime := timePkg.Now()
  1028  	_returnsA := api.apiImpl.DeleteBotIconImage(botUserId)
  1029  	api.recordTime(startTime, "DeleteBotIconImage", _returnsA == nil)
  1030  	return _returnsA
  1031  }
  1032  
  1033  func (api *apiTimerLayer) PluginHTTP(request *http.Request) *http.Response {
  1034  	startTime := timePkg.Now()
  1035  	_returnsA := api.apiImpl.PluginHTTP(request)
  1036  	api.recordTime(startTime, "PluginHTTP", true)
  1037  	return _returnsA
  1038  }
  1039  
  1040  func (api *apiTimerLayer) PublishUserTyping(userId, channelId, parentId string) *model.AppError {
  1041  	startTime := timePkg.Now()
  1042  	_returnsA := api.apiImpl.PublishUserTyping(userId, channelId, parentId)
  1043  	api.recordTime(startTime, "PublishUserTyping", _returnsA == nil)
  1044  	return _returnsA
  1045  }
  1046  
  1047  func (api *apiTimerLayer) CreateCommand(cmd *model.Command) (*model.Command, error) {
  1048  	startTime := timePkg.Now()
  1049  	_returnsA, _returnsB := api.apiImpl.CreateCommand(cmd)
  1050  	api.recordTime(startTime, "CreateCommand", _returnsB == nil)
  1051  	return _returnsA, _returnsB
  1052  }
  1053  
  1054  func (api *apiTimerLayer) ListCommands(teamID string) ([]*model.Command, error) {
  1055  	startTime := timePkg.Now()
  1056  	_returnsA, _returnsB := api.apiImpl.ListCommands(teamID)
  1057  	api.recordTime(startTime, "ListCommands", _returnsB == nil)
  1058  	return _returnsA, _returnsB
  1059  }
  1060  
  1061  func (api *apiTimerLayer) ListCustomCommands(teamID string) ([]*model.Command, error) {
  1062  	startTime := timePkg.Now()
  1063  	_returnsA, _returnsB := api.apiImpl.ListCustomCommands(teamID)
  1064  	api.recordTime(startTime, "ListCustomCommands", _returnsB == nil)
  1065  	return _returnsA, _returnsB
  1066  }
  1067  
  1068  func (api *apiTimerLayer) ListPluginCommands(teamID string) ([]*model.Command, error) {
  1069  	startTime := timePkg.Now()
  1070  	_returnsA, _returnsB := api.apiImpl.ListPluginCommands(teamID)
  1071  	api.recordTime(startTime, "ListPluginCommands", _returnsB == nil)
  1072  	return _returnsA, _returnsB
  1073  }
  1074  
  1075  func (api *apiTimerLayer) ListBuiltInCommands() ([]*model.Command, error) {
  1076  	startTime := timePkg.Now()
  1077  	_returnsA, _returnsB := api.apiImpl.ListBuiltInCommands()
  1078  	api.recordTime(startTime, "ListBuiltInCommands", _returnsB == nil)
  1079  	return _returnsA, _returnsB
  1080  }
  1081  
  1082  func (api *apiTimerLayer) GetCommand(commandID string) (*model.Command, error) {
  1083  	startTime := timePkg.Now()
  1084  	_returnsA, _returnsB := api.apiImpl.GetCommand(commandID)
  1085  	api.recordTime(startTime, "GetCommand", _returnsB == nil)
  1086  	return _returnsA, _returnsB
  1087  }
  1088  
  1089  func (api *apiTimerLayer) UpdateCommand(commandID string, updatedCmd *model.Command) (*model.Command, error) {
  1090  	startTime := timePkg.Now()
  1091  	_returnsA, _returnsB := api.apiImpl.UpdateCommand(commandID, updatedCmd)
  1092  	api.recordTime(startTime, "UpdateCommand", _returnsB == nil)
  1093  	return _returnsA, _returnsB
  1094  }
  1095  
  1096  func (api *apiTimerLayer) DeleteCommand(commandID string) error {
  1097  	startTime := timePkg.Now()
  1098  	_returnsA := api.apiImpl.DeleteCommand(commandID)
  1099  	api.recordTime(startTime, "DeleteCommand", _returnsA == nil)
  1100  	return _returnsA
  1101  }