How to match types with a Model + returning a list of objects (JSON)
For the love of God, can someone please help me? I've spent hours on this and don't know what's wrong.
So, TLDR: I'm calling some GETs, webscraping for info (4 pieces of info: company, location, title, url), storing it in structs and trying to create a JSON array of objects to return to the user on a POST request (/get_jobs).
In the handler, configureAPI is killing me. I basically take the params from operations.myFileHere and pass it into my function (it's just a list of strings/URLs), but the return/response type is killing me. WithPayload is taking in []*PostGetJobsOKBodyItems0. I called my struct in my file after this name (it's some generated one). And I return a list of pointers to structs but it still isn't happy....
How do I match the type of a model? Or how do I get the return type correct so that I can call WithPayload and it will all be good to go?
Please assist...
Thanks!
Some code below:
api.PostGetJobsHandler = operations.PostGetJobsHandlerFunc(
func(params operations.PostGetJobsParams) middleware.Responder {
list := params.ListOfUrls
response := project.Main(list)
//struc := &operations.PostGetJobsOK{response}
return operations.NewPostGetJobsOK().WithPayload(?????)
})
func Main(vals []string) []*PostGetJobsOKBodyItems0 {
var list []*PostGetJobsOKBodyItems0
for _, element := range vals {
company, job, location := get(string(element))
jobPosting := &PostGetJobsOKBodyItems0 {
Title: job,
Location: location,
Company: company,
Url: element,
}
fmt.Println(reflect.TypeOf(jobPosting))
fmt.Println(reflect.TypeOf(*jobPosting))
list = append(list, jobPosting)
type PostGetJobsOKBodyItems0 struct {
Title string `json:"title"`
Location string `json:"location"`
Company string `json:"company"`
Url string `json:"url"`
}
responses:
200:
description: OK
schema:
type: array
items:
type: object
properties:
title:
type: string
location:
type: string
company:
type: string
url:
type: string
Operations.responses:
type PostGetJobsOK struct {
/*
In: Body
*/
Payload []*PostGetJobsOKBodyItems0 `json:"body,omitempty"`
}