Ejemplo n.º 1
0
// FindUserByEmail is a convenience function to locate a users record by a given email address.
func FindUserByEmail(db *boltons.DB, email string) (*User, error) {
	user := User{}
	users := []User{}
	if err := db.All(&users); err != nil {
		return &user, err
	}
	for _, u := range users {
		if u.Email == email {
			return &u, nil
		}
	}
	return &user, nil
}
Ejemplo n.º 2
0
// FindRecordByFQDN returns a single record for the provided fqdn.
func FindRecordByFQDN(db *boltons.DB, fqdn string) (*Record, error) {
	record := Record{}
	records := []Record{}
	if err := db.All(&records); err != nil {
		return &record, err
	}
	for _, r := range records {
		if r.FQDN == fqdn {
			return &r, nil
		}
	}
	return &record, nil
}
Ejemplo n.º 3
0
// FindRecordBySubOfFQDN is used for DNS requests and tries to find
// the record whos FQDN matches name.
func FindRecordBySubOfFQDN(db *boltons.DB, name string) (*Record, error) {
	record := Record{}
	records := []Record{}
	if err := db.All(&records); err != nil {
		return &record, err
	}
	for _, r := range records {
		if ok, err := regexp.MatchString(".*\\."+regexp.QuoteMeta(r.FQDN)+"\\.", name); ok && err == nil {
			return &r, nil
		}
	}
	return &record, nil
}
Ejemplo n.º 4
0
// FindRecordsForOwner returns a list of all records for a given owner by their id.
func FindRecordsForOwner(db *boltons.DB, ID string) ([]Record, error) {
	records := []Record{}
	foundRecords := []Record{}
	if err := db.All(&records); err != nil {
		return foundRecords, err
	}
	for _, r := range records {
		if r.Owner.ID == ID {
			foundRecords = append(foundRecords, r)
		}
	}
	return foundRecords, nil
}