diff --git a/app/module/education_history/repository/education_history.repository.go b/app/module/education_history/repository/education_history.repository.go index 49b8457..09c356f 100644 --- a/app/module/education_history/repository/education_history.repository.go +++ b/app/module/education_history/repository/education_history.repository.go @@ -26,8 +26,9 @@ func NewEducationHistoryRepository(db *database.Database) EducationHistoryReposi } func (_i *educationHistoryRepository) GetAll(userId uint, req request.EducationHistoryQueryRequest) (educationHistories []*entity.EducationHistory, paging paginator.Pagination, err error) { - query := _i.DB.DB.Where("user_id = ?", userId) - +query := _i.DB.DB. + Model(&entity.EducationHistory{}). + Where("user_id = ?", userId) // Apply filters if req.SchoolName != nil { query = query.Where("school_name ILIKE ?", "%"+*req.SchoolName+"%") diff --git a/app/module/research_journals/controller/research_journals.controller.go b/app/module/research_journals/controller/research_journals.controller.go index b156d10..1172b7f 100644 --- a/app/module/research_journals/controller/research_journals.controller.go +++ b/app/module/research_journals/controller/research_journals.controller.go @@ -47,9 +47,9 @@ func (_i *researchJournalsController) All(c *fiber.Ctx) error { return err } - authHeader := c.Get("Authorization") - reqContext := request.ResearchJournalsQueryRequestContext{ + UserID: c.Query("userId"), + JournalTitle: c.Query("journalTitle"), Publisher: c.Query("publisher"), PublishedYear: c.Query("publishedYear"), @@ -64,7 +64,7 @@ func (_i *researchJournalsController) All(c *fiber.Ctx) error { } } - journalsData, paging, err := _i.researchJournalsService.All(authHeader, req) + journalsData, paging, err := _i.researchJournalsService.All(req) if err != nil { return err } diff --git a/app/module/research_journals/repository/research_journals.repository.go b/app/module/research_journals/repository/research_journals.repository.go index 2fcd4db..3ad6cd6 100644 --- a/app/module/research_journals/repository/research_journals.repository.go +++ b/app/module/research_journals/repository/research_journals.repository.go @@ -26,8 +26,9 @@ func NewResearchJournalsRepository(db *database.Database) ResearchJournalsReposi } func (_i *researchJournalsRepository) GetAll(userId uint, req request.ResearchJournalsQueryRequest) (researchJournals []*entity.ResearchJournals, paging paginator.Pagination, err error) { - query := _i.DB.DB.Where("user_id = ?", userId) - +query := _i.DB.DB. + Model(&entity.ResearchJournals{}). + Where("user_id = ?", userId) // Apply filters if req.JournalTitle != nil { query = query.Where("journal_title ILIKE ?", "%"+*req.JournalTitle+"%") diff --git a/app/module/research_journals/request/research_journals.request.go b/app/module/research_journals/request/research_journals.request.go index 8260c2b..9512c34 100644 --- a/app/module/research_journals/request/research_journals.request.go +++ b/app/module/research_journals/request/research_journals.request.go @@ -3,10 +3,12 @@ package request import ( "narasi-ahli-be/app/database/entity" "narasi-ahli-be/utils/paginator" + "strconv" "time" ) type ResearchJournalsQueryRequest struct { + UserID uint `json:"userId" validate:"required"` JournalTitle *string `json:"journalTitle"` Publisher *string `json:"publisher"` PublishedYear *int `json:"publishedYear"` @@ -46,6 +48,7 @@ func (req ResearchJournalsUpdateRequest) ToEntity() *entity.ResearchJournals { } type ResearchJournalsQueryRequestContext struct { + UserID string `json:"userId"` JournalTitle string `json:"journalTitle"` Publisher string `json:"publisher"` PublishedYear string `json:"publishedYear"` @@ -54,6 +57,13 @@ type ResearchJournalsQueryRequestContext struct { func (req ResearchJournalsQueryRequestContext) ToParamRequest() ResearchJournalsQueryRequest { var request ResearchJournalsQueryRequest + if userId := req.UserID; userId != "" { + userIdUint, err := strconv.ParseUint(userId, 10, 0) + if err == nil { + request.UserID = uint(userIdUint) + } + } + if journalTitle := req.JournalTitle; journalTitle != "" { request.JournalTitle = &journalTitle } diff --git a/app/module/research_journals/service/research_journals.service.go b/app/module/research_journals/service/research_journals.service.go index b49ba3c..14d2efc 100644 --- a/app/module/research_journals/service/research_journals.service.go +++ b/app/module/research_journals/service/research_journals.service.go @@ -2,6 +2,7 @@ package service import ( "errors" + "log" "narasi-ahli-be/app/module/research_journals/mapper" "narasi-ahli-be/app/module/research_journals/repository" "narasi-ahli-be/app/module/research_journals/request" @@ -20,7 +21,7 @@ type researchJournalsService struct { } type ResearchJournalsService interface { - All(authToken string, req request.ResearchJournalsQueryRequest) (researchJournals []*response.ResearchJournalsResponse, paging paginator.Pagination, err error) + All(req request.ResearchJournalsQueryRequest) (researchJournals []*response.ResearchJournalsResponse, paging paginator.Pagination, err error) Show(authToken string, id uint) (researchJournal *response.ResearchJournalsResponse, err error) Save(authToken string, req request.ResearchJournalsCreateRequest) (researchJournal *response.ResearchJournalsResponse, err error) Update(authToken string, id uint, req request.ResearchJournalsUpdateRequest) (err error) @@ -35,19 +36,34 @@ func NewResearchJournalsService(repo repository.ResearchJournalsRepository, user } } -func (_i *researchJournalsService) All(authToken string, req request.ResearchJournalsQueryRequest) (researchJournals []*response.ResearchJournalsResponse, paging paginator.Pagination, err error) { - userInfo := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken) - if userInfo == nil { - return nil, paginator.Pagination{}, errors.New("unauthorized") - } +// func (_i *researchJournalsService) All(authToken string, req request.ResearchJournalsQueryRequest) (researchJournals []*response.ResearchJournalsResponse, paging paginator.Pagination, err error) { +// userInfo := utilSvc.GetUserInfo(_i.Log, _i.UsersRepo, authToken) +// if userInfo == nil { +// return nil, paginator.Pagination{}, errors.New("unauthorized") +// } - results, paging, err := _i.Repo.GetAll(userInfo.ID, req) +// results, paging, err := _i.Repo.GetAll(userInfo.ID, req) +// if err != nil { +// return +// } + +// for _, result := range results { +// researchJournals = append(researchJournals, mapper.ResearchJournalsResponseMapper(result)) +// } + +// return +// } + +func (_i *researchJournalsService) All(req request.ResearchJournalsQueryRequest) (educationHistories []*response.ResearchJournalsResponse, paging paginator.Pagination, err error) { + log.Println("USER ID:", req.UserID) + + results, paging, err := _i.Repo.GetAll(req.UserID, req) if err != nil { return } for _, result := range results { - researchJournals = append(researchJournals, mapper.ResearchJournalsResponseMapper(result)) + educationHistories = append(educationHistories, mapper.ResearchJournalsResponseMapper(result)) } return diff --git a/app/module/work_history/repository/work_history.repository.go b/app/module/work_history/repository/work_history.repository.go index 370a9b7..cc0fee8 100644 --- a/app/module/work_history/repository/work_history.repository.go +++ b/app/module/work_history/repository/work_history.repository.go @@ -26,8 +26,10 @@ func NewWorkHistoryRepository(db *database.Database) WorkHistoryRepository { } func (_i *workHistoryRepository) GetAll(userId uint, req request.WorkHistoryQueryRequest) (workHistories []*entity.WorkHistory, paging paginator.Pagination, err error) { - query := _i.DB.DB.Where("user_id = ?", userId) - +query := _i.DB.DB. + Model(&entity.WorkHistory{}). + Where("user_id = ?", userId) + // Apply filters if req.JobTitle != nil { query = query.Where("job_title ILIKE ?", "%"+*req.JobTitle+"%") diff --git a/docs/swagger/docs.go b/docs/swagger/docs.go index bcf957b..24cb6fa 100644 --- a/docs/swagger/docs.go +++ b/docs/swagger/docs.go @@ -12881,6 +12881,12 @@ const docTemplate = `{ "name": "publisher", "in": "query" }, + { + "type": "integer", + "name": "userId", + "in": "query", + "required": true + }, { "type": "integer", "name": "count", diff --git a/docs/swagger/swagger.json b/docs/swagger/swagger.json index 60d7fe4..30c230e 100644 --- a/docs/swagger/swagger.json +++ b/docs/swagger/swagger.json @@ -12870,6 +12870,12 @@ "name": "publisher", "in": "query" }, + { + "type": "integer", + "name": "userId", + "in": "query", + "required": true + }, { "type": "integer", "name": "count", diff --git a/docs/swagger/swagger.yaml b/docs/swagger/swagger.yaml index 769a759..9ae5fb8 100644 --- a/docs/swagger/swagger.yaml +++ b/docs/swagger/swagger.yaml @@ -9656,6 +9656,10 @@ paths: - in: query name: publisher type: string + - in: query + name: userId + required: true + type: integer - in: query name: count type: integer