本文整理匯總了Golang中github.com/ninnemana/API/models/products.Part類的典型用法代碼示例。如果您正苦於以下問題:Golang Part類的具體用法?Golang Part怎麽用?Golang Part使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Part類的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: GetPartsFromVehicleConfig
//already have vehicleID (vcdb_vehicle.ID)? get parts
func (v *CurtVehicle) GetPartsFromVehicleConfig(dtx *apicontext.DataContext) (ps []products.Part, err error) {
//get parts
var p products.Part
//get part id
db, err := sql.Open("mysql", database.ConnectionString())
if err != nil {
return ps, err
}
defer db.Close()
stmt, err := db.Prepare(getPartID)
if err != nil {
return ps, err
}
defer stmt.Close()
res, err := stmt.Query(v.ID)
for res.Next() {
err = res.Scan(&p.ID)
if err != nil {
return ps, err
}
//get part -- adds some weight
err = p.FromDatabase(getBrandsFromDTX(dtx))
if err != nil {
return ps, err
}
ps = append(ps, p)
}
defer res.Close()
return ps, err
}
示例2: GetRelated
func GetRelated(w http.ResponseWriter, r *http.Request, params martini.Params, enc encoding.Encoder, dtx *apicontext.DataContext) string {
id, _ := strconv.Atoi(params["part"])
p := products.Part{
ID: id,
}
parts, err := p.GetRelated(dtx)
if err != nil {
apierror.GenerateError("Trouble getting related parts", err, w, r)
return ""
}
return encoding.Must(enc.Encode(parts))
}
示例3: Packaging
//Redundant
func Packaging(w http.ResponseWriter, r *http.Request, params martini.Params, enc encoding.Encoder, dtx *apicontext.DataContext) string {
id, err := strconv.Atoi(params["part"])
if err != nil {
apierror.GenerateError("Trouble getting part ID", err, w, r)
return ""
}
p := products.Part{
ID: id,
}
if err = p.Get(dtx); err != nil {
apierror.GenerateError("Trouble getting part packages", err, w, r)
return ""
}
return encoding.Must(enc.Encode(p.Packages))
}
示例4: InstallSheet
//Sort of Redundant
func InstallSheet(w http.ResponseWriter, r *http.Request, params martini.Params, dtx *apicontext.DataContext) {
id, err := strconv.Atoi(strings.Split(params["part"], ".")[0])
if err != nil {
apierror.GenerateError("Trouble getting part ID", err, w, r)
return
}
p := products.Part{
ID: id,
}
err = p.Get(dtx)
if err != nil {
apierror.GenerateError("Trouble getting part", err, w, r)
return
}
var text string
for _, content := range p.Content {
if content.ContentType.Type == "installationSheet" {
text = content.Text
}
}
if text == "" {
apierror.GenerateError("No Installation Sheet", err, w, r)
return
}
data, err := rest.GetPDF(text, r)
if err != nil {
apierror.GenerateError("Error getting PDF", err, w, r)
return
}
w.Header().Set("Content-Length", strconv.Itoa(len(data)))
w.Header().Set("Content-Type", "application/pdf")
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
w.Header().Set("Access-Control-Allow-Headers", "Origin")
w.Write(data)
}
示例5: ActiveApprovedReviews
//Redundant
func ActiveApprovedReviews(w http.ResponseWriter, r *http.Request, params martini.Params, enc encoding.Encoder, dtx *apicontext.DataContext) string {
id, err := strconv.Atoi(params["part"])
if err != nil {
apierror.GenerateError("Trouble getting part ID", err, w, r)
return ""
}
p := products.Part{
ID: id,
}
if err = p.Get(dtx); err != nil {
apierror.GenerateError("Trouble getting part reviews", err, w, r)
return ""
}
var revs []products.Review
for _, rev := range p.Reviews {
if rev.Active == true && rev.Approved == true {
revs = append(revs, rev)
}
}
return encoding.Must(enc.Encode(revs))
}
示例6: Prices
func Prices(w http.ResponseWriter, r *http.Request, params martini.Params, enc encoding.Encoder, dtx *apicontext.DataContext) string {
id, err := strconv.Atoi(params["part"])
if err != nil {
apierror.GenerateError("Trouble getting part ID", err, w, r)
return ""
}
p := products.Part{
ID: id,
}
priceChan := make(chan int)
custChan := make(chan int)
go func() {
err = p.Get(dtx)
priceChan <- 1
}()
go func() {
price, custErr := customer.GetCustomerPrice(dtx, p.ID)
if custErr != nil {
err = custErr
}
p.Pricing = append(p.Pricing, products.Price{0, 0, "Customer", price, false, time.Now()})
custChan <- 1
}()
<-priceChan
<-custChan
if err != nil {
apierror.GenerateError("Trouble getting part prices", err, w, r)
return ""
}
return encoding.Must(enc.Encode(p.Pricing))
}
示例7: PartNumber
func PartNumber(rw http.ResponseWriter, r *http.Request, params martini.Params, enc encoding.Encoder, dtx *apicontext.DataContext) string {
var p products.Part
var err error
p.PartNumber = params["part"]
if p.PartNumber == "" {
apierror.GenerateError("Trouble getting old part number", err, rw, r)
return ""
}
if err = p.GetPartByPartNumber(); err != nil {
apierror.GenerateError("Trouble getting part by old part number", err, rw, r)
return ""
}
//TODO - remove when curt & aries vehicle application data are in sync
if p.Brand.ID == 3 {
mgoVehicles, err := vehicle.ReverseMongoLookup(p.ID)
if err != nil {
apierror.GenerateError("Trouble getting part by old part number", err, rw, r)
return ""
}
for _, v := range mgoVehicles {
vehicleApplication := products.VehicleApplication{
Year: v.Year,
Make: v.Make,
Model: v.Model,
Style: v.Style,
}
p.Vehicles = append(p.Vehicles, vehicleApplication)
}
} //END TODO
return encoding.Must(enc.Encode(p))
}
示例8: TestParts
func TestParts(t *testing.T) {
var err error
var p products.Part
p.ID = 10999 //set part number here for use in creating related objects
var price products.Price
// var cu customer.CustomerUser
var cat products.Category
cat.Create()
//create install sheet content type
var contentType custcontent.ContentType
contentType.Type = "InstallationSheet"
err = contentType.Create()
//create install sheet content
var installSheetContent products.Content
installSheetContent.Text = "https://www.curtmfg.com/masterlibrary/13201/installsheet/CM_13201_INS.PDF"
installSheetContent.ContentType.Id = contentType.Id
err = installSheetContent.Create()
//create video type -- used in creating video during video test
var vt video.VideoType
vt.Name = "test type"
vt.Create()
//key types
var pub, pri, auth apiKeyType.ApiKeyType
if database.GetCleanDBFlag() != "" {
//setup apiKeyTypes
pub.Type = "public"
pri.Type = "private"
auth.Type = "authentication"
pub.Create()
pri.Create()
auth.Create()
}
dtx, err := apicontextmock.Mock()
if err != nil {
t.Log(err)
}
Convey("TestingParts", t, func() {
//test create part
p.Categories = append(p.Categories, cat)
p.OldPartNumber = "8675309"
p.ShortDesc = "test part"
p.Content = append(p.Content, installSheetContent)
bodyBytes, _ := json.Marshal(p)
bodyJson := bytes.NewReader(bodyBytes)
thyme := time.Now()
testThatHttp.RequestWithDtx("post", "/part", "", "?key="+dtx.APIKey, CreatePart, bodyJson, "application/json", dtx)
So(time.Since(thyme).Nanoseconds(), ShouldBeLessThan, time.Second.Nanoseconds()/2)
So(testThatHttp.Response.Code, ShouldEqual, 200)
err = json.Unmarshal(testThatHttp.Response.Body.Bytes(), &p)
So(err, ShouldBeNil)
So(p, ShouldHaveSameTypeAs, products.Part{})
So(p.ID, ShouldEqual, 10999)
p.BindCustomer(dtx)
var custPrice customer.Price
custPrice.CustID = dtx.CustomerID
custPrice.PartID = p.ID
err = custPrice.Create()
//test create price
price.Price = 987
price.PartId = p.ID
price.Type = "test"
bodyBytes, _ = json.Marshal(price)
bodyJson = bytes.NewReader(bodyBytes)
thyme = time.Now()
testThatHttp.RequestWithDtx("post", "/price", "", "?key="+dtx.APIKey, SavePrice, bodyJson, "application/json", dtx)
So(time.Since(thyme).Nanoseconds(), ShouldBeLessThan, time.Second.Nanoseconds()/2)
So(testThatHttp.Response.Code, ShouldEqual, 200)
err = json.Unmarshal(testThatHttp.Response.Body.Bytes(), &price)
So(err, ShouldBeNil)
So(price, ShouldHaveSameTypeAs, products.Price{})
So(price.Id, ShouldBeGreaterThan, 0)
//test update price
price.Type = "tester"
bodyBytes, _ = json.Marshal(price)
bodyJson = bytes.NewReader(bodyBytes)
thyme = time.Now()
testThatHttp.RequestWithDtx("post", "/price/", ":id", strconv.Itoa(price.Id)+"?key="+dtx.APIKey, SavePrice, bodyJson, "application/json", dtx)
So(time.Since(thyme).Nanoseconds(), ShouldBeLessThan, time.Second.Nanoseconds()/2)
So(testThatHttp.Response.Code, ShouldEqual, 200)
err = json.Unmarshal(testThatHttp.Response.Body.Bytes(), &price)
So(err, ShouldBeNil)
So(price, ShouldHaveSameTypeAs, products.Price{})
So(price.Type, ShouldNotEqual, "test")
// //test get part prices
thyme = time.Now()
testThatHttp.RequestWithDtx("get", "/part/", ":part/prices", strconv.Itoa(p.ID)+"/prices?key="+dtx.APIKey, Prices, nil, "", dtx)
So(time.Since(thyme).Nanoseconds(), ShouldBeLessThan, time.Second.Nanoseconds()/2)
So(testThatHttp.Response.Code, ShouldEqual, 200)
//.........這裏部分代碼省略.........