started work on a library for pulling project insight data
parent
695eab1276
commit
c776278913
@ -0,0 +1 @@
|
||||
/tokens/
|
||||
@ -0,0 +1,86 @@
|
||||
package insight
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
const (
|
||||
BaseApiUrl = "https://jds.projectinsight.net/api/"
|
||||
)
|
||||
|
||||
type (
|
||||
TimeEntry struct {
|
||||
ActualHours float64
|
||||
ActualHoursFormattedString string
|
||||
ActualTimeString string
|
||||
ActualTotal float64
|
||||
BillableHours float64
|
||||
BillableHoursFormattedString string
|
||||
BillableTimeString string
|
||||
BillableTotal float64
|
||||
Date string
|
||||
Description string
|
||||
ProjectId string `json:"Project_Id,omitempty"`
|
||||
RateBill float64
|
||||
RateBurden float64
|
||||
TaskId string `json:"Task_Id,omitempty"`
|
||||
TimeSheetId string `json:"TimeSheet_Id,omitempty"`
|
||||
UserId string `json:"User_Id,omitempty"`
|
||||
}
|
||||
)
|
||||
|
||||
func Get(urlEndpoint string) {
|
||||
client := http.Client{}
|
||||
reqUrl := BaseApiUrl + urlEndpoint
|
||||
token := getToken("insight.token")
|
||||
deserializeContainer := make([]TimeEntry, 0, 20000)
|
||||
|
||||
request, err := http.NewRequest("GET", reqUrl, nil)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
request.Header.Add("api-token", token)
|
||||
|
||||
resp, err := client.Do(request)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
bodyBytes, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
err = json.Unmarshal(bodyBytes, &deserializeContainer)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
for _, entry := range deserializeContainer {
|
||||
log.Printf("%#v\n", entry)
|
||||
}
|
||||
log.Println("Received Entries (qty): " + strconv.Itoa(len(deserializeContainer)))
|
||||
}
|
||||
|
||||
func getToken(tokenName string) string {
|
||||
filePath := fmt.Sprintf("./tokens/%s", tokenName)
|
||||
file, err := os.OpenFile(filePath, os.O_RDONLY, 0755)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
rawBytes, err := ioutil.ReadAll(file)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
return string(rawBytes)
|
||||
}
|
||||
Loading…
Reference in New Issue