github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/dds/v3/jobs/requests.go (about)

     1  package jobs
     2  
     3  import (
     4  	"github.com/chnsz/golangsdk"
     5  )
     6  
     7  var requestOpts golangsdk.RequestOpts = golangsdk.RequestOpts{
     8  	MoreHeaders: map[string]string{"Content-Type": "application/json", "X-Language": "en-us"},
     9  }
    10  
    11  // QueryOpts allows to filter list data using given parameters.
    12  type QueryOpts struct {
    13  	// Job ID.
    14  	JobId string `q:"id"`
    15  }
    16  
    17  // Get is a method to retrieves a particular job based on its unique ID.
    18  func Get(c *golangsdk.ServiceClient, jobId string) (*Job, error) {
    19  	opts := QueryOpts{
    20  		JobId: jobId,
    21  	}
    22  	url := rootURL(c)
    23  	query, err := golangsdk.BuildQueryString(opts)
    24  	if err != nil {
    25  		return nil, err
    26  	}
    27  	url += query.String()
    28  
    29  	var r struct {
    30  		Job Job `json:"job"`
    31  	}
    32  	_, err = c.Get(url, &r, &golangsdk.RequestOpts{
    33  		MoreHeaders: requestOpts.MoreHeaders,
    34  	})
    35  	return &r.Job, err
    36  }