func (p postgresDb) addRecord(resource shaman.Resource) error { resources, err := p.listRecords() if err != nil { return err } for i := range resources { if resources[i].Domain == resource.Domain { // if domains match, check address for k := range resources[i].Records { next: for j := range resource.Records { // check if the record exists... if resource.Records[j].RType == resources[i].Records[k].RType && resource.Records[j].Address == resources[i].Records[k].Address && resource.Records[j].Class == resources[i].Records[k].Class { // if so, skip config.Log.Trace("Record exists in persistent, skipping...") resource.Records = append(resource.Records[:i], resource.Records[i+1:]...) goto next } } } } } // add records for i := range resource.Records { config.Log.Trace("Adding record to database...") _, err = p.pg.Exec(fmt.Sprintf(` INSERT INTO records(domain, address, ttl, class, type) VALUES('%v', '%v', '%v', '%v', '%v')`, resource.Domain, resource.Records[i].Address, resource.Records[i].TTL, resource.Records[i].Class, resource.Records[i].RType)) if err != nil { return fmt.Errorf("Failed to insert into records table - %v", err) } } return nil }