Skip to content

Commit

Permalink
refactor: move client to separate package
Browse files Browse the repository at this point in the history
  • Loading branch information
henryde committed Jun 19, 2024
1 parent fa93574 commit 6d6610b
Show file tree
Hide file tree
Showing 15 changed files with 58 additions and 57 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package provider
package client

type MeshBuildingBlock struct {
ApiVersion string `json:"apiVersion" tfsdk:"api_version"`
Expand Down
2 changes: 1 addition & 1 deletion internal/provider/client.go → client/client.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package provider
package client

import (
"bytes"
Expand Down
2 changes: 1 addition & 1 deletion internal/provider/project.go → client/project.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package provider
package client

type MeshProject struct {
ApiVersion string `json:"apiVersion" tfsdk:"api_version"`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package provider
package client

type MeshProjectUserBinding struct {
ApiVersion string `json:"apiVersion" tfsdk:"api_version"`
Expand Down
2 changes: 1 addition & 1 deletion internal/provider/tenant.go → client/tenant.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package provider
package client

type MeshTenant struct {
ApiVersion string `json:"apiVersion" tfsdk:"api_version"`
Expand Down
8 changes: 5 additions & 3 deletions internal/provider/buildingblock_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (
"errors"
"fmt"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
"github.com/hashicorp/terraform-plugin-framework/datasource"
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
Expand All @@ -24,7 +26,7 @@ func NewBuildingBlockDataSource() datasource.DataSource {
}

type buildingBlockDataSource struct {
client *MeshStackProviderClient
client *client.MeshStackProviderClient
}

func (d *buildingBlockDataSource) Metadata(ctx context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) {
Expand Down Expand Up @@ -127,7 +129,7 @@ func (d *buildingBlockDataSource) Configure(ctx context.Context, req datasource.
return
}

client, ok := req.ProviderData.(*MeshStackProviderClient)
client, ok := req.ProviderData.(*client.MeshStackProviderClient)

if !ok {
resp.Diagnostics.AddError(
Expand All @@ -150,7 +152,7 @@ func (d *buildingBlockDataSource) Read(ctx context.Context, req datasource.ReadR
ValueType types.String `tfsdk:"value_type"`
}

mkIoList := func(ios *[]MeshBuildingBlockIO) (*[]io, error) {
mkIoList := func(ios *[]client.MeshBuildingBlockIO) (*[]io, error) {
result := make([]io, 0)
var err error
for _, input := range *ios {
Expand Down
6 changes: 4 additions & 2 deletions internal/provider/buildingblock_resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"fmt"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework/path"
"github.com/hashicorp/terraform-plugin-framework/resource"
"github.com/hashicorp/terraform-plugin-framework/resource/schema"
Expand All @@ -22,7 +24,7 @@ func NewBuildingBlockResource() resource.Resource {
}

type BuildingBlockResource struct {
client *MeshStackProviderClient
client *client.MeshStackProviderClient
}

type BuildingBlockResourceModel struct {
Expand Down Expand Up @@ -84,7 +86,7 @@ func (r *BuildingBlockResource) Configure(ctx context.Context, req resource.Conf
return
}

client, ok := req.ProviderData.(*MeshStackProviderClient)
client, ok := req.ProviderData.(*client.MeshStackProviderClient)

if !ok {
resp.Diagnostics.AddError(
Expand Down
6 changes: 4 additions & 2 deletions internal/provider/project_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"fmt"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
"github.com/hashicorp/terraform-plugin-framework/datasource"
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
Expand All @@ -23,7 +25,7 @@ func NewProjectDataSource() datasource.DataSource {
}

type projectDataSource struct {
client *MeshStackProviderClient
client *client.MeshStackProviderClient
}

func (d *projectDataSource) Metadata(ctx context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) {
Expand Down Expand Up @@ -82,7 +84,7 @@ func (d *projectDataSource) Configure(ctx context.Context, req datasource.Config
return
}

client, ok := req.ProviderData.(*MeshStackProviderClient)
client, ok := req.ProviderData.(*client.MeshStackProviderClient)

if !ok {
resp.Diagnostics.AddError(
Expand Down
20 changes: 11 additions & 9 deletions internal/provider/project_resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (
"fmt"
"strings"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
"github.com/hashicorp/terraform-plugin-framework/path"
"github.com/hashicorp/terraform-plugin-framework/resource"
Expand All @@ -30,7 +32,7 @@ func NewProjectResource() resource.Resource {

// projectResource is the resource implementation.
type projectResource struct {
client *MeshStackProviderClient
client *client.MeshStackProviderClient
}

// Metadata returns the resource type name.
Expand All @@ -44,7 +46,7 @@ func (r *projectResource) Configure(_ context.Context, req resource.ConfigureReq
return
}

client, ok := req.ProviderData.(*MeshStackProviderClient)
client, ok := req.ProviderData.(*client.MeshStackProviderClient)

if !ok {
resp.Diagnostics.AddError(
Expand Down Expand Up @@ -178,12 +180,12 @@ func (r *projectResource) Create(ctx context.Context, req resource.CreateRequest
paymentMethodIdentifier = plan.Spec.SubstitutePaymentMethodIdentifier.ValueStringPointer()
}

create := MeshProjectCreate{
Metadata: MeshProjectCreateMetadata{
create := client.MeshProjectCreate{
Metadata: client.MeshProjectCreateMetadata{
Name: plan.Metadata.Name.ValueString(),
OwnedByWorkspace: plan.Metadata.OwnedByWorkspace.ValueString(),
},
Spec: MeshProjectSpec{
Spec: client.MeshProjectSpec{
DisplayName: plan.Spec.DisplayName.ValueString(),
Tags: tags,
PaymentMethodIdentifier: paymentMethodIdentifier,
Expand Down Expand Up @@ -259,12 +261,12 @@ func (r *projectResource) Update(ctx context.Context, req resource.UpdateRequest
paymentMethodIdentifier = plan.Spec.SubstitutePaymentMethodIdentifier.ValueStringPointer()
}

create := MeshProjectCreate{
Metadata: MeshProjectCreateMetadata{
create := client.MeshProjectCreate{
Metadata: client.MeshProjectCreateMetadata{
Name: plan.Metadata.Name.ValueString(),
OwnedByWorkspace: plan.Metadata.OwnedByWorkspace.ValueString(),
},
Spec: MeshProjectSpec{
Spec: client.MeshProjectSpec{
DisplayName: plan.Spec.DisplayName.ValueString(),
Tags: tags,
PaymentMethodIdentifier: paymentMethodIdentifier,
Expand All @@ -287,7 +289,7 @@ func (r *projectResource) Update(ctx context.Context, req resource.UpdateRequest

// Delete deletes the resource and removes the Terraform state on success.
func (r *projectResource) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) {
var state MeshProject
var state client.MeshProject

diags := req.State.Get(ctx, &state)
resp.Diagnostics.Append(diags...)
Expand Down
6 changes: 4 additions & 2 deletions internal/provider/project_user_binding_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"fmt"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
"github.com/hashicorp/terraform-plugin-framework/datasource"
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
Expand All @@ -21,7 +23,7 @@ func NewProjectUserBindingsDataSource() datasource.DataSource {
}

type projectUserBindingsDataSource struct {
client *MeshStackProviderClient
client *client.MeshStackProviderClient
}

func (d *projectUserBindingsDataSource) Metadata(ctx context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) {
Expand Down Expand Up @@ -96,7 +98,7 @@ func (d *projectUserBindingsDataSource) Configure(ctx context.Context, req datas
return
}

client, ok := req.ProviderData.(*MeshStackProviderClient)
client, ok := req.ProviderData.(*client.MeshStackProviderClient)

if !ok {
resp.Diagnostics.AddError(
Expand Down
27 changes: 5 additions & 22 deletions internal/provider/project_user_binding_resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"fmt"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
"github.com/hashicorp/terraform-plugin-framework/path"
"github.com/hashicorp/terraform-plugin-framework/resource"
Expand All @@ -28,7 +30,7 @@ func NewProjectUserBindingResource() resource.Resource {

// projectUserBindingResource is the resource implementation.
type projectUserBindingResource struct {
client *MeshStackProviderClient
client *client.MeshStackProviderClient
}

// Metadata returns the resource type name.
Expand All @@ -42,7 +44,7 @@ func (r *projectUserBindingResource) Configure(_ context.Context, req resource.C
return
}

client, ok := req.ProviderData.(*MeshStackProviderClient)
client, ok := req.ProviderData.(*client.MeshStackProviderClient)

if !ok {
resp.Diagnostics.AddError(
Expand Down Expand Up @@ -137,28 +139,9 @@ func (r *projectUserBindingResource) Schema(_ context.Context, _ resource.Schema
}
}

type projectUserBindingCreate struct {
Metadata struct {
Name *string `tfsdk:"name"`
} `tfsdk:"metadata"`

RoleRef struct {
Name string `tfsdk:"name"`
} `tfsdk:"role_ref"`

TargetRef struct {
Name string `tfsdk:"name"`
OwnedByWorkspace string `tfsdk:"owned_by_workspace"`
} `tfsdk:"target_ref"`

Subject struct {
Name string `tfsdk:"name"`
} `tfsdk:"subject"`
}

// Create creates the resource and sets the initial Terraform state.
func (r *projectUserBindingResource) Create(ctx context.Context, req resource.CreateRequest, resp *resource.CreateResponse) {
var plan MeshProjectUserBinding
var plan client.MeshProjectUserBinding

diags := req.Plan.Get(ctx, &plan)
resp.Diagnostics.Append(diags...)
Expand Down
6 changes: 4 additions & 2 deletions internal/provider/projects_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"fmt"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework/datasource"
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
"github.com/hashicorp/terraform-plugin-framework/path"
Expand All @@ -21,7 +23,7 @@ func NewProjectsDataSource() datasource.DataSource {
}

type projectsDataSource struct {
client *MeshStackProviderClient
client *client.MeshStackProviderClient
}

func (d *projectsDataSource) Metadata(ctx context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) {
Expand Down Expand Up @@ -111,7 +113,7 @@ func (d *projectsDataSource) Configure(ctx context.Context, req datasource.Confi
return
}

client, ok := req.ProviderData.(*MeshStackProviderClient)
client, ok := req.ProviderData.(*client.MeshStackProviderClient)

if !ok {
resp.Diagnostics.AddError(
Expand Down
4 changes: 3 additions & 1 deletion internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"net/url"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework/datasource"
"github.com/hashicorp/terraform-plugin-framework/provider"
"github.com/hashicorp/terraform-plugin-framework/provider/schema"
Expand Down Expand Up @@ -59,7 +61,7 @@ func (p *MeshStackProvider) Configure(ctx context.Context, req provider.Configur
if err != nil {
resp.Diagnostics.AddError("Provider endpoint not valid.", "The value provided as the providers endpoint is not a valid URL.")
} else {
client, err := NewClient(url, data.ApiKey.ValueString(), data.ApiSecret.ValueString()) // TODO handle err
client, err := client.NewClient(url, data.ApiKey.ValueString(), data.ApiSecret.ValueString()) // TODO handle err
if err != nil {
resp.Diagnostics.AddError("Failed to create client.", err.Error())
}
Expand Down
6 changes: 4 additions & 2 deletions internal/provider/tenant_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
"context"
"fmt"

"github.com/meshcloud/terraform-provider-meshstack/client"

"github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator"
"github.com/hashicorp/terraform-plugin-framework/datasource"
"github.com/hashicorp/terraform-plugin-framework/datasource/schema"
Expand All @@ -23,7 +25,7 @@ func NewTenantDataSource() datasource.DataSource {
}

type tenantDataSource struct {
client *MeshStackProviderClient
client *client.MeshStackProviderClient
}

func (d *tenantDataSource) Metadata(ctx context.Context, req datasource.MetadataRequest, resp *datasource.MetadataResponse) {
Expand Down Expand Up @@ -90,7 +92,7 @@ func (d *tenantDataSource) Configure(ctx context.Context, req datasource.Configu
return
}

client, ok := req.ProviderData.(*MeshStackProviderClient)
client, ok := req.ProviderData.(*client.MeshStackProviderClient)

if !ok {
resp.Diagnostics.AddError(
Expand Down
Loading

0 comments on commit 6d6610b

Please sign in to comment.