github.com/altipla-consulting/ravendb-go-client@v0.1.3/get_database_names_operation.go (about)

     1  package ravendb
     2  
     3  import (
     4  	"net/http"
     5  	"strconv"
     6  )
     7  
     8  type GetDatabaseNamesOperation struct {
     9  	_start    int
    10  	_pageSize int
    11  }
    12  
    13  func NewGetDatabaseNamesOperation(_start int, _pageSize int) *GetDatabaseNamesOperation {
    14  	return &GetDatabaseNamesOperation{
    15  		_start:    _start,
    16  		_pageSize: _pageSize,
    17  	}
    18  }
    19  
    20  func (o *GetDatabaseNamesOperation) GetCommand(conventions *DocumentConventions) *GetDatabaseNamesCommand {
    21  	return NewGetDatabaseNamesCommand(o._start, o._pageSize)
    22  }
    23  
    24  var (
    25  	_ RavenCommand = &GetDatabaseNamesCommand{}
    26  )
    27  
    28  type GetDatabaseNamesCommand struct {
    29  	RavenCommandBase
    30  
    31  	_start    int
    32  	_pageSize int
    33  
    34  	Result []string
    35  }
    36  
    37  func NewGetDatabaseNamesCommand(_start int, _pageSize int) *GetDatabaseNamesCommand {
    38  	cmd := &GetDatabaseNamesCommand{
    39  		RavenCommandBase: NewRavenCommandBase(),
    40  
    41  		_start:    _start,
    42  		_pageSize: _pageSize,
    43  	}
    44  	cmd.IsReadRequest = true
    45  	return cmd
    46  }
    47  
    48  func (c *GetDatabaseNamesCommand) createRequest(node *ServerNode) (*http.Request, error) {
    49  	url := node.URL + "/databases?start=" + strconv.Itoa(c._start) + "&pageSize=" + strconv.Itoa(c._pageSize) + "&namesOnly=true"
    50  
    51  	return newHttpGet(url)
    52  }
    53  
    54  // GetDatabaseNamesResult describes response of GetDatabaseNames command
    55  type GetDatabaseNamesResult struct {
    56  	Databases []string `json:"Databases"`
    57  }
    58  
    59  func (c *GetDatabaseNamesCommand) setResponse(response []byte, fromCache bool) error {
    60  	if len(response) == 0 {
    61  		return throwInvalidResponse()
    62  	}
    63  
    64  	var res GetDatabaseNamesResult
    65  	err := jsonUnmarshal(response, &res)
    66  	if err != nil {
    67  		return err
    68  	}
    69  
    70  	/*
    71  		JsonNode names = mapper.readTree(response);
    72  		if (!names.has("Databases")) {
    73  			throwInvalidResponse();
    74  		}
    75  
    76  		JsonNode databases = names.get("Databases");
    77  		if (!databases.isArray()) {
    78  			return throwInvalidResponse();
    79  		}
    80  		ArrayNode dbNames = (ArrayNode) databases;
    81  		string[] databaseNames = new string[dbNames.size()];
    82  		for (int i = 0; i < dbNames.size(); i++) {
    83  			databaseNames[i] = dbNames.get(i).asText();
    84  		}
    85  	*/
    86  
    87  	c.Result = res.Databases
    88  	return nil
    89  }