jobs-monorepo/services/api/internal/queries/job/get-jobs.go
2025-12-18 12:25:07 +05:00

34 lines
720 B
Go

package job
import (
"github.com/jobs-scraper/internal/dto"
"github.com/jobs-scraper/libs/ports"
"github.com/jobs-scraper/libs/repo"
)
type GetJobs struct {
jobRepo *repo.JobRepository
}
func NewGetJobsHandler(jobRepo *repo.JobRepository) *GetJobs {
return &GetJobs{
jobRepo: jobRepo,
}
}
func (cj *GetJobs) Handle(query ports.GetJobQuery) ([]dto.JobDTO, int, error) {
filter := repo.JobFilter{
Location: query.Location,
Keywords: query.Keywords,
Provider: query.Provider,
PageSize: query.PageSize,
PageNumber: query.PageNumber,
}
results, totalCount, err := cj.jobRepo.GetAllJobs(filter)
if err != nil {
return nil, 0, err
}
return dto.JobsFromDomain(results), totalCount, nil
}