func (repo *LoggregatorLogsRepository) RecentLogsFor(appGuid string) ([]*logmessage.LogMessage, error) { messages, err := repo.consumer.Recent(appGuid, repo.config.AccessToken()) switch err.(type) { case nil: // do nothing case *noaa_errors.UnauthorizedError: repo.tokenRefresher.RefreshAuthToken() messages, err = repo.consumer.Recent(appGuid, repo.config.AccessToken()) default: return messages, err } consumer.SortRecent(messages) return messages, err }
func (repo *LoggregatorLogsRepository) RecentLogsFor(appGUID string) ([]Loggable, error) { messages, err := repo.consumer.Recent(appGUID, repo.config.AccessToken()) switch err.(type) { case nil: // do nothing case *noaa_errors.UnauthorizedError: _, _ = repo.tokenRefresher.RefreshAuthToken() return repo.RecentLogsFor(appGUID) default: return loggableMessagesFromLoggregatorMessages(messages), err } consumer.SortRecent(messages) return loggableMessagesFromLoggregatorMessages(messages), nil }
Expect(recentError).To(HaveOccurred()) Expect(recentError.Error()).To(ContainSubstring("You are not authorized. Helpful message")) }) }) }) Describe("SortRecent", func() { var messages []*logmessage.LogMessage BeforeEach(func() { messages = []*logmessage.LogMessage{createMessage("hello", 2), createMessage("konnichiha", 1)} }) It("sorts messages", func() { sortedMessages := consumer.SortRecent(messages) Expect(*sortedMessages[0].Timestamp).To(Equal(int64(1))) Expect(*sortedMessages[1].Timestamp).To(Equal(int64(2))) }) It("sorts using a stable algorithm", func() { messages = append(messages, createMessage("guten tag", 1)) sortedMessages := consumer.SortRecent(messages) Expect(sortedMessages[0].Message).To(Equal([]byte("konnichiha"))) Expect(sortedMessages[1].Message).To(Equal([]byte("guten tag"))) Expect(sortedMessages[2].Message).To(Equal([]byte("hello"))) }) })
func (repo LoggregatorLogsRepository) RecentLogsFor(appGuid string) ([]*logmessage.LogMessage, error) { messages, err := repo.consumer.Recent(appGuid, repo.config.AccessToken()) consumer.SortRecent(messages) return messages, err }