package migrationAPI

import (
	"fmt"
	"net/http"
	"strings"
)

// NagiosArchiveSnapshots generates a nagios config based on a list of move groups
//
// https://migration.nsi.rackspace.com/docs/#/Nagios/postNagiosArchiveSnapshots
func (c *Client) NagiosArchiveSnapshots(options ...*Options) (*BasicResponse, error) {
	opts := processOptions(options...)

	req, err := c.newRequest(c.URL+"/nagios/archiveSnapshots", http.MethodPost, nil, opts)
	if err != nil {
		return nil, err
	}

	resp := new(BasicResponse)
	return resp, c.do(req, resp, opts)
}

// NagiosConfig generates a nagios config based on a list of move groups
//
// https://migration.nsi.rackspace.com/docs/#/Nagios/nagiosConfigGet
// https://migration.nsi.rackspace.com/docs/#/Nagios/nagiosConfigPost
func (c *Client) NagiosConfig(moveGroups []string, updateServer bool, options ...*Options) (*BasicResponse, error) {
	opts := processOptions(options...)

	uri := fmt.Sprintf("/nagios/config?movegroups=%s", strings.Join(moveGroups, ","))

	method := http.MethodGet
	if updateServer {
		method = http.MethodPost
	}
	req, err := c.newRequest(c.URL+uri, method, nil, opts)
	if err != nil {
		return nil, err
	}

	resp := new(BasicResponse)
	return resp, c.do(req, resp, opts)
}
