Skip to content
This repository was archived by the owner on May 30, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion internal/interactor/branch.go

This file was deleted.

1 change: 0 additions & 1 deletion internal/interactor/chat_callback.go

This file was deleted.

1 change: 0 additions & 1 deletion internal/interactor/chat_user.go

This file was deleted.

1 change: 0 additions & 1 deletion internal/interactor/commit.go

This file was deleted.

123 changes: 123 additions & 0 deletions pkg/api/deployment.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,128 @@
package api

import (
"context"
"fmt"
"net/url"
"strconv"

"github.com/gitploy-io/gitploy/model/ent"
"github.com/gitploy-io/gitploy/model/ent/deployment"
)

type (
DeploymentsService service

DeploymentListOptions struct {
ListOptions

Env string
Status deployment.Status
}

DeploymentCreateRequest struct {
Type string `json:"type"`
Ref string `json:"ref"`
Env string `json:"env"`
}
)

// List returns the deployment list.
// It returns an error for a bad request.
func (s *DeploymentsService) List(ctx context.Context, namespace, name string, options DeploymentListOptions) ([]*ent.Deployment, error) {
// Build the query.
vals := url.Values{}

vals.Add("page", strconv.Itoa(options.ListOptions.Page))
vals.Add("per_page", strconv.Itoa(options.PerPage))

if options.Env != "" {
vals.Add("env", options.Env)
}

if options.Status != "" {
if err := deployment.StatusValidator(options.Status); err != nil {
return nil, err
}

vals.Add("status", string(options.Status))
}

// Request a server.
req, err := s.client.NewRequest(
"GET",
fmt.Sprintf("api/v1/repos/%s/%s/deployments?%s", namespace, name, vals.Encode()),
nil,
)
if err != nil {
return nil, err
}

var ds []*ent.Deployment
err = s.client.Do(ctx, req, &ds)
if err != nil {
return nil, err
}

return ds, nil
}

// Get returns the deployment.
func (s *DeploymentsService) Get(ctx context.Context, namespace, name string, number int) (*ent.Deployment, error) {
req, err := s.client.NewRequest(
"GET",
fmt.Sprintf("api/v1/repos/%s/%s/deployments/%d", namespace, name, number),
nil,
)
if err != nil {
return nil, err
}

var d *ent.Deployment
err = s.client.Do(ctx, req, &d)
if err != nil {
return nil, err
}

return d, nil
}

// Create requests a server to deploy a specific ref(branch, SHA, tag).
func (s *DeploymentsService) Create(ctx context.Context, namespace, name string, body DeploymentCreateRequest) (*ent.Deployment, error) {
req, err := s.client.NewRequest(
"POST",
fmt.Sprintf("api/v1/repos/%s/%s/deployments", namespace, name),
body,
)
if err != nil {
return nil, err
}

var d *ent.Deployment
err = s.client.Do(ctx, req, &d)
if err != nil {
return nil, err
}

return d, nil
}

// Update requests to trigger the 'waiting' deployment.
func (s *DeploymentsService) Update(ctx context.Context, namespace, name string, number int) (*ent.Deployment, error) {
req, err := s.client.NewRequest(
"PUT",
fmt.Sprintf("api/v1/repos/%s/%s/deployments/%d", namespace, name, number),
nil,
)
if err != nil {
return nil, err
}

var d *ent.Deployment
err = s.client.Do(ctx, req, &d)
if err != nil {
return nil, err
}

return d, nil
}
34 changes: 0 additions & 34 deletions pkg/api/deployment_create.go

This file was deleted.

48 changes: 0 additions & 48 deletions pkg/api/deployment_create_test.go

This file was deleted.

28 changes: 0 additions & 28 deletions pkg/api/deployment_get.go

This file was deleted.

60 changes: 0 additions & 60 deletions pkg/api/deployment_list.go

This file was deleted.

43 changes: 0 additions & 43 deletions pkg/api/deployment_list_test.go

This file was deleted.

Loading