コード例 #1
0
ファイル: gandi-rrr.go プロジェクト: prasmussen/gandi-rrr
func handleGET(token *config.Token, domain *api.Domain, l *log.RequestLogger, r *responder.Responder, recordName string) {
	// Get list of records for specified type and domain
	records, err := domain.ListRecords(token.Domain, token.Type)
	if err != nil {
		r.Error(err)
		l.Error(err)
		return
	}

	// Return list of all records if no specific record was asked for
	if recordName == "" {
		r.JSON(&RecordListResponse{
			Domain:  token.Domain,
			Records: records,
		})
		l.Message(fmt.Sprintf("Returning %d records of type '%s' for domain '%s'", len(records), token.Domain, token.Type))
		return
	}

	// Return specific record
	for _, record := range records {
		if record.Name == recordName {
			r.JSON(record)
			l.Message(fmt.Sprintf("Returning record '%s' of type '%s' for domain '%s'", recordName, token.Domain, token.Type))
			return
		}
	}

	// Record not found
	err = fmt.Errorf("Record with name '%s' not found", recordName)
	r.Error(err)
	l.Error(err)
}