本文整理汇总了Golang中github.com/skypies/complaints/complaintdb/types.Complaint.Version方法的典型用法代码示例。如果您正苦于以下问题:Golang Complaint.Version方法的具体用法?Golang Complaint.Version怎么用?Golang Complaint.Version使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/skypies/complaints/complaintdb/types.Complaint
的用法示例。
在下文中一共展示了Complaint.Version方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: UpdateAnyComplaint
func (cdb ComplaintDB) UpdateAnyComplaint(complaint types.Complaint) error {
if k, err := datastore.DecodeKey(complaint.DatastoreKey); err != nil {
return err
} else {
complaint.Version = kComplaintVersion
_, err := datastore.Put(cdb.Ctx(), k, &complaint)
return err
}
}
示例2: complainByProfile
func (cdb ComplaintDB) complainByProfile(cp types.ComplainerProfile, c *types.Complaint) error {
client := urlfetch.Client(cdb.C)
fr := fr24.Fr24{Client: client}
overhead := fr24.Aircraft{}
//cdb.C.Infof("adding complaint for [%s] %s", cp.CallerCode, overhead.FlightNumber)
// abw hack hack
grabAnything := (cp.CallerCode == "QWERTY")
c.Debug, _ = fr.FindOverhead(geo.Latlong{cp.Lat, cp.Long}, &overhead, grabAnything)
if overhead.Id != "" {
c.AircraftOverhead = overhead
}
c.Version = kComplaintVersion
c.Profile = cp // Copy the profile fields into every complaint
// Too much like the last complaint by this user ? Just update that one.
if prev, err := cdb.GetNewestComplaintByEmailAddress(cp.EmailAddress); err != nil {
cdb.C.Errorf("complainByProfile/GetNewest: %v", err)
} else if prev != nil && ComplaintsAreEquivalent(*prev, *c) {
// The two complaints are in fact one complaint. Overwrite the old one with data from new one.
Overwrite(prev, c)
return cdb.UpdateComplaint(*prev, cp.EmailAddress)
}
key := datastore.NewIncompleteKey(cdb.C, kComplaintKind, cdb.emailToRootKey(cp.EmailAddress))
_, err := datastore.Put(cdb.C, key, c)
// TEMP
/*
if debug,err := bksv.PostComplaint(client, cp, *c); err != nil {
cdb.C.Infof("BKSV Debug\n------\n%s\n------\n", debug)
cdb.C.Infof("BKSV posting error: %v", err)
} else {
cdb.C.Infof("BKSV Debug\n------\n%s\n------\n", debug)
}
*/
return err
}
示例3: UpdateComplaint
func (cdb ComplaintDB) UpdateComplaint(complaint types.Complaint, ownerEmail string) error {
k, err := datastore.DecodeKey(complaint.DatastoreKey)
if err != nil {
return err
}
if k.Parent() == nil {
return fmt.Errorf("Update: key <%v> had no parent", k)
}
if k.Parent().StringID() != ownerEmail {
return fmt.Errorf("Update: key <%v> owned by %s, not %s", k, k.Parent().StringID(), ownerEmail)
}
complaint.Version = kComplaintVersion
if _, err2 := datastore.Put(cdb.Ctx(), k, &complaint); err2 != nil {
return err2
}
return nil
}
示例4: complainByProfile
func (cdb ComplaintDB) complainByProfile(cp types.ComplainerProfile, c *types.Complaint) error {
client := cdb.HTTPClient()
overhead := flightid.Aircraft{}
// Check we're not over a daily cap for this user
cdb.Debugf("cbe_010", "doing rate limit check")
s, e := date.WindowForToday()
if prevKeys, err := cdb.GetComplaintKeysInSpanByEmailAddress(s, e, cp.EmailAddress); err != nil {
return err
} else if len(prevKeys) >= KMaxComplaintsPerDay {
return fmt.Errorf("Too many complaints filed today")
} else {
cdb.Debugf("cbe_011", "rate limit check passed (%d); calling FindOverhead", len(prevKeys))
}
elev := 0.0
pos := geo.Latlong{cp.Lat, cp.Long}
algo := flightid.AlgoConservativeNoCongestion
if c.Description == "ANYANY" {
algo = flightid.AlgoGrabClosest
}
if as, err := fr24.FetchAirspace(client, pos.Box(64, 64)); err != nil {
cdb.Errorf("FindOverhead failed for %s: %v", cp.EmailAddress, err)
} else {
oh, deb := flightid.IdentifyOverhead(as, pos, elev, algo)
c.Debug = deb
if oh != nil {
overhead = *oh
c.AircraftOverhead = overhead
}
}
cdb.Debugf("cbe_020", "FindOverhead returned")
// Contrast with the skypi pathway
if cp.CallerCode == "WOR004" || cp.CallerCode == "WOR005" {
asFdb, _ := airspace.Fetch(client, "", pos.Box(60, 60))
oh3, deb3 := flightid.IdentifyOverhead(asFdb, pos, elev, algo)
if oh3 == nil {
oh3 = &flightid.Aircraft{}
}
newdebug := c.Debug + "\n*** v2 / fdb testing\n" + deb3 + "\n"
headline := ""
if overhead.FlightNumber != oh3.FlightNumber {
headline = fmt.Sprintf("** * * DIFFERS * * **\n")
} else {
// Agree ! Copy over the Fdb IdSpec, and pretend we're living in the future
headline = fmt.Sprintf("**---- Agrees ! ----**\n")
c.AircraftOverhead.Id = oh3.Id
}
headline += fmt.Sprintf(" * skypi: %s\n * orig : %s\n", oh3, overhead)
c.Debug = headline + newdebug
}
c.Version = kComplaintVersion // Kill this off ?
c.Profile = cp // Copy the profile fields into every complaint
// Too much like the last complaint by this user ? Just update that one.
cdb.Debugf("cbe_030", "retrieving prev complaint")
if prev, err := cdb.GetNewestComplaintByEmailAddress(cp.EmailAddress); err != nil {
cdb.Errorf("complainByProfile/GetNewest: %v", err)
} else if prev != nil && ComplaintsAreEquivalent(*prev, *c) {
cdb.Debugf("cbe_031", "returned, equiv; about to UpdateComlaint()")
// The two complaints are in fact one complaint. Overwrite the old one with data from new one.
Overwrite(prev, c)
err := cdb.UpdateComplaint(*prev, cp.EmailAddress)
cdb.Debugf("cbe_032", "updated in place (all done)")
return err
}
cdb.Debugf("cbe_033", "returned, distinct/first; about to put()")
key := datastore.NewIncompleteKey(cdb.Ctx(), kComplaintKind, cdb.emailToRootKey(cp.EmailAddress))
_, err := datastore.Put(cdb.Ctx(), key, c)
cdb.Debugf("cbe_034", "new entity added (all done)")
// TEMP
/*
if debug,err := bksv.PostComplaint(client, cp, *c); err != nil {
cdb.Infof("BKSV Debug\n------\n%s\n------\n", debug)
cdb.Infof("BKSV posting error: %v", err)
} else {
cdb.Infof("BKSV Debug\n------\n%s\n------\n", debug)
}
*/
return err
}