SYMBOL INDEX (87 symbols across 19 files) FILE: app/main.go constant defaultTimeout (line 24) | defaultTimeout = 30 constant defaultAddress (line 25) | defaultAddress = ":9090" function init (line 28) | func init() { function main (line 35) | func main() { FILE: article.sql type `article` (line 27) | CREATE TABLE `article` ( type `article_category` (line 55) | CREATE TABLE `article_category` ( type `author` (line 81) | CREATE TABLE `author` ( type `category` (line 107) | CREATE TABLE `category` ( FILE: article/mocks/ArticleRepository.go type ArticleRepository (line 13) | type ArticleRepository struct method Delete (line 18) | func (_m *ArticleRepository) Delete(ctx context.Context, id int64) err... method Fetch (line 36) | func (_m *ArticleRepository) Fetch(ctx context.Context, cursor string,... method GetByID (line 73) | func (_m *ArticleRepository) GetByID(ctx context.Context, id int64) (d... method GetByTitle (line 101) | func (_m *ArticleRepository) GetByTitle(ctx context.Context, title str... method Store (line 129) | func (_m *ArticleRepository) Store(ctx context.Context, a *domain.Arti... method Update (line 147) | func (_m *ArticleRepository) Update(ctx context.Context, ar *domain.Ar... function NewArticleRepository (line 166) | func NewArticleRepository(t interface { FILE: article/mocks/AuthorRepository.go type AuthorRepository (line 13) | type AuthorRepository struct method GetByID (line 18) | func (_m *AuthorRepository) GetByID(ctx context.Context, id int64) (do... function NewAuthorRepository (line 47) | func NewAuthorRepository(t interface { FILE: article/service.go type ArticleRepository (line 16) | type ArticleRepository interface type AuthorRepository (line 28) | type AuthorRepository interface type Service (line 32) | type Service struct method fillAuthorDetails (line 50) | func (a *Service) fillAuthorDetails(ctx context.Context, data []domain... method Fetch (line 101) | func (a *Service) Fetch(ctx context.Context, cursor string, num int64)... method GetByID (line 114) | func (a *Service) GetByID(ctx context.Context, id int64) (res domain.A... method Update (line 128) | func (a *Service) Update(ctx context.Context, ar *domain.Article) (err... method GetByTitle (line 133) | func (a *Service) GetByTitle(ctx context.Context, title string) (res d... method Store (line 148) | func (a *Service) Store(ctx context.Context, m *domain.Article) (err e... method Delete (line 158) | func (a *Service) Delete(ctx context.Context, id int64) (err error) { function NewService (line 38) | func NewService(a ArticleRepository, ar AuthorRepository) *Service { FILE: article/service_test.go function TestFetchArticle (line 16) | func TestFetchArticle(t *testing.T) { function TestGetByID (line 67) | func TestGetByID(t *testing.T) { function TestStore (line 108) | func TestStore(t *testing.T) { function TestDelete (line 150) | func TestDelete(t *testing.T) { function TestUpdate (line 197) | func TestUpdate(t *testing.T) { FILE: domain/article.go type Article (line 8) | type Article struct FILE: domain/author.go type Author (line 4) | type Author struct FILE: internal/repository/helper.go constant timeFormat (line 9) | timeFormat = "2006-01-02T15:04:05.999Z07:00" function DecodeCursor (line 13) | func DecodeCursor(encodedTime string) (time.Time, error) { function EncodeCursor (line 26) | func EncodeCursor(t time.Time) string { FILE: internal/repository/mysql/article.go type ArticleRepository (line 14) | type ArticleRepository struct method fetch (line 23) | func (m *ArticleRepository) fetch(ctx context.Context, query string, a... method Fetch (line 63) | func (m *ArticleRepository) Fetch(ctx context.Context, cursor string, ... method GetByID (line 83) | func (m *ArticleRepository) GetByID(ctx context.Context, id int64) (re... method GetByTitle (line 101) | func (m *ArticleRepository) GetByTitle(ctx context.Context, title stri... method Store (line 118) | func (m *ArticleRepository) Store(ctx context.Context, a *domain.Artic... method Delete (line 137) | func (m *ArticleRepository) Delete(ctx context.Context, id int64) (err... method Update (line 162) | func (m *ArticleRepository) Update(ctx context.Context, ar *domain.Art... function NewArticleRepository (line 19) | func NewArticleRepository(conn *sql.DB) *ArticleRepository { FILE: internal/repository/mysql/article_test.go function TestFetchArticle (line 16) | func TestFetchArticle(t *testing.T) { function TestGetArticleByID (line 51) | func TestGetArticleByID(t *testing.T) { function TestStoreArticle (line 71) | func TestStoreArticle(t *testing.T) { function TestGetArticleByTitle (line 99) | func TestGetArticleByTitle(t *testing.T) { function TestDeleteArticle (line 119) | func TestDeleteArticle(t *testing.T) { function TestUpdateArticle (line 137) | func TestUpdateArticle(t *testing.T) { FILE: internal/repository/mysql/author.go type AuthorRepository (line 10) | type AuthorRepository struct method getOne (line 21) | func (m *AuthorRepository) getOne(ctx context.Context, query string, a... method GetByID (line 38) | func (m *AuthorRepository) GetByID(ctx context.Context, id int64) (dom... function NewAuthorRepository (line 15) | func NewAuthorRepository(db *sql.DB) *AuthorRepository { FILE: internal/repository/mysql/author_test.go function TestGetAuthorByID (line 14) | func TestGetAuthorByID(t *testing.T) { FILE: internal/rest/article.go type ResponseError (line 16) | type ResponseError struct type ArticleService (line 23) | type ArticleService interface type ArticleHandler (line 33) | type ArticleHandler struct method FetchArticle (line 51) | func (a *ArticleHandler) FetchArticle(c echo.Context) error { method GetByID (line 72) | func (a *ArticleHandler) GetByID(c echo.Context) error { method Store (line 99) | func (a *ArticleHandler) Store(c echo.Context) (err error) { method Delete (line 121) | func (a *ArticleHandler) Delete(c echo.Context) error { constant defaultNum (line 37) | defaultNum = 10 function NewArticleHandler (line 40) | func NewArticleHandler(e *echo.Echo, svc ArticleService) { function isRequestValid (line 89) | func isRequestValid(m *domain.Article) (bool, error) { function getStatusCode (line 138) | func getStatusCode(err error) int { FILE: internal/rest/article_test.go function TestFetch (line 24) | func TestFetch(t *testing.T) { function TestFetchError (line 54) | func TestFetchError(t *testing.T) { function TestGetByID (line 78) | func TestGetByID(t *testing.T) { function TestStore (line 108) | func TestStore(t *testing.T) { function TestDelete (line 144) | func TestDelete(t *testing.T) { FILE: internal/rest/middleware/cors.go function CORS (line 6) | func CORS(next echo.HandlerFunc) echo.HandlerFunc { FILE: internal/rest/middleware/cors_test.go function TestCORS (line 15) | func TestCORS(t *testing.T) { FILE: internal/rest/middleware/timeout.go function SetRequestContextWithTimeout (line 11) | func SetRequestContextWithTimeout(d time.Duration) echo.MiddlewareFunc { FILE: internal/rest/mocks/ArticleService.go type ArticleService (line 13) | type ArticleService struct method Delete (line 18) | func (_m *ArticleService) Delete(ctx context.Context, id int64) error { method Fetch (line 36) | func (_m *ArticleService) Fetch(ctx context.Context, cursor string, nu... method GetByID (line 73) | func (_m *ArticleService) GetByID(ctx context.Context, id int64) (doma... method GetByTitle (line 101) | func (_m *ArticleService) GetByTitle(ctx context.Context, title string... method Store (line 129) | func (_m *ArticleService) Store(_a0 context.Context, _a1 *domain.Artic... method Update (line 147) | func (_m *ArticleService) Update(ctx context.Context, ar *domain.Artic... function NewArticleService (line 166) | func NewArticleService(t interface {