fix:profile api get

This commit is contained in:
Rama Priyanto 2026-01-30 16:44:49 +07:00
parent e10e8b03fc
commit 5bee8af44c
9 changed files with 63 additions and 17 deletions

View File

@ -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+"%")

View File

@ -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
}

View File

@ -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+"%")

View File

@ -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
}

View File

@ -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

View File

@ -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+"%")

View File

@ -12881,6 +12881,12 @@ const docTemplate = `{
"name": "publisher",
"in": "query"
},
{
"type": "integer",
"name": "userId",
"in": "query",
"required": true
},
{
"type": "integer",
"name": "count",

View File

@ -12870,6 +12870,12 @@
"name": "publisher",
"in": "query"
},
{
"type": "integer",
"name": "userId",
"in": "query",
"required": true
},
{
"type": "integer",
"name": "count",

View File

@ -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