auto-staging/stagectl

View on GitHub
model/status.go

Summary

Maintainability
A
0 mins
Test Coverage
package model

import (
    "encoding/json"
    "net/http"

    "github.com/auto-staging/tower/types"
    "github.com/spf13/viper"
)

// GetAllStatus calls the Tower API - GET /repositories/environments/status.
// If an error occurs the error gets returned, otherwise an array of EnvironmentStatus structs gets returned.
func GetAllStatus() ([]types.EnvironmentStatus, error) {
    req, err := http.NewRequest("GET", viper.GetString("tower_base_url")+"/repositories/environments/status", nil)
    if err != nil {
        return []types.EnvironmentStatus{}, err
    }

    result, err := sendRequest(req, 200)
    if err != nil {
        return []types.EnvironmentStatus{}, err
    }

    var status []types.EnvironmentStatus
    err = json.Unmarshal(result, &status)
    if err != nil {
        return []types.EnvironmentStatus{}, err
    }

    return status, nil
}

// GetSingleStatus calls the Tower API - GET /repositories/{name}/environments/{branch}/status.
// If an error occurs the error gets returned, otherwise an EnvironmentStatus struct gets returned.
func GetSingleStatus(repo, branch string) (types.EnvironmentStatus, error) {
    req, err := http.NewRequest("GET", viper.GetString("tower_base_url")+"/repositories/"+repo+"/environments/"+branch+"/status", nil)
    if err != nil {
        return types.EnvironmentStatus{}, err
    }

    result, err := sendRequest(req, 200)
    if err != nil {
        return types.EnvironmentStatus{}, err
    }

    status := types.EnvironmentStatus{}
    err = json.Unmarshal(result, &status)
    if err != nil {
        return types.EnvironmentStatus{}, err
    }

    return status, nil
}