Add CreateProjet() API
Some checks reported errors
Some checks reported errors
This commit is contained in:
parent
c831660f62
commit
624d20046d
58
emlid/reachview/project.go
Normal file
58
emlid/reachview/project.go
Normal file
@ -0,0 +1,58 @@
|
||||
package reachview
|
||||
|
||||
import "context"
|
||||
|
||||
const (
|
||||
eventCreateProject = "create project"
|
||||
eventProjectCreated = "project created"
|
||||
)
|
||||
|
||||
type ProjectID string
|
||||
|
||||
type Project struct {
|
||||
Name string `json:"name"`
|
||||
Author string `json:"author"`
|
||||
Comment string `json:"comment"`
|
||||
Projection string `json:"projection"`
|
||||
Length int `json:"length"`
|
||||
Requirements *ProjectRequirements `json:"requirements"`
|
||||
AntennaHeight string `json:"antenna height"`
|
||||
}
|
||||
|
||||
type ProjectRequirements struct {
|
||||
Fix *ProjectRequirementsEntry `json:"FIX"`
|
||||
Float *ProjectRequirementsEntry `json:"FLOAT"`
|
||||
Single *ProjectRequirementsEntry `json:"SINGLE"`
|
||||
}
|
||||
|
||||
type ProjectRequirementsEntry struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
DOP string `json:"DOP"`
|
||||
Time int `json:"time"`
|
||||
LateralRMS float64 `json:"lateral rms"`
|
||||
}
|
||||
|
||||
func (c *Client) CreateProject(ctx context.Context, project *Project) (ProjectID, error) {
|
||||
var projectID ProjectID
|
||||
err := c.ReqResp(ctx, eventCreateProject, project, eventProjectCreated, &projectID)
|
||||
if err != nil {
|
||||
return projectID, err
|
||||
}
|
||||
return projectID, nil
|
||||
}
|
||||
|
||||
func (c *Client) ListProjects() {
|
||||
|
||||
}
|
||||
|
||||
func (c *Client) OpenProject(id ProjectID) {
|
||||
|
||||
}
|
||||
|
||||
func (c *Client) DeleteProject() {
|
||||
|
||||
}
|
||||
|
||||
func (c *Client) CloseProject() {
|
||||
|
||||
}
|
44
emlid/reachview/project_test.go
Normal file
44
emlid/reachview/project_test.go
Normal file
@ -0,0 +1,44 @@
|
||||
package reachview
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"forge.cadoles.com/Pyxis/orion/emlid"
|
||||
)
|
||||
|
||||
func TestReachViewProjectCRUD(t *testing.T) {
|
||||
|
||||
if !*runReachViewIntegrationTests {
|
||||
t.Skip("To run this test, use: go test -reachview-integration")
|
||||
}
|
||||
|
||||
client := NewClient(
|
||||
emlid.WithStandardLogger(),
|
||||
emlid.WithEndpoint(*reachHost, 80),
|
||||
)
|
||||
if err := client.Connect(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
ctx, cancelCreateProject := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancelCreateProject()
|
||||
|
||||
project := &Project{
|
||||
Name: fmt.Sprintf("Test-%d", time.Now().Unix()),
|
||||
}
|
||||
|
||||
projectID, err := client.CreateProject(ctx, project)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
if projectID == "" {
|
||||
t.Errorf("projectID should not be empty")
|
||||
}
|
||||
|
||||
defer client.Close()
|
||||
|
||||
}
|
Reference in New Issue
Block a user