Forum Discussion

lucasmarzocco's avatar
lucasmarzocco
Occasional Visitor
6 years ago

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"`
}

No RepliesBe the first to reply