...

Source file src/edge-infra.dev/pkg/edge/api/graph/resolver/terminal_queries.resolvers.go

Documentation: edge-infra.dev/pkg/edge/api/graph/resolver

     1  package resolver
     2  
     3  // This file will be automatically regenerated based on the schema, any resolver implementations
     4  // will be copied through when generating and any unknown code will be moved to the end.
     5  // Code generated by github.com/99designs/gqlgen version v0.17.45
     6  
     7  import (
     8  	"context"
     9  
    10  	"edge-infra.dev/pkg/edge/api/graph/model"
    11  	chariotClientApi "edge-infra.dev/pkg/edge/chariot/client"
    12  	"edge-infra.dev/pkg/lib/crypto"
    13  	"github.com/hashicorp/go-multierror"
    14  )
    15  
    16  // CreateTerminal is the resolver for the createTerminal field.
    17  func (r *mutationResolver) CreateTerminal(ctx context.Context, newTerminal model.TerminalCreateInput) (*model.Terminal, error) {
    18  	activationCode, err := crypto.GenerateRandomActivationCode()
    19  	if err != nil {
    20  		return nil, err
    21  	}
    22  
    23  	terminal, err := r.TerminalService.CreateTerminalEntry(ctx, &newTerminal, activationCode)
    24  	if err != nil {
    25  		return nil, err
    26  	}
    27  
    28  	terminal, err = r.TerminalService.UpdateTerminalEntry(ctx, &model.TerminalIDInput{
    29  		TerminalID: terminal.TerminalID,
    30  		TerminalValues: &model.TerminalUpdateInput{
    31  			PrimaryInterface: &terminal.Interfaces[0].TerminalInterfaceID,
    32  		},
    33  	})
    34  	if err != nil {
    35  		return nil, err
    36  	}
    37  
    38  	if secretErr := r.ActivationCodeService.Create(ctx, activationCode, terminal); secretErr != nil {
    39  		if err := r.TerminalService.DeleteTerminalEntry(ctx, terminal.TerminalID); err != nil {
    40  			secretErr = multierror.Append(secretErr, err)
    41  		}
    42  		return nil, secretErr
    43  	}
    44  
    45  	return terminal, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
    46  }
    47  
    48  // DeleteTerminal is the resolver for the deleteTerminal field.
    49  func (r *mutationResolver) DeleteTerminal(ctx context.Context, terminalID string) (bool, error) {
    50  	getLabel := false
    51  	terminal, err := r.TerminalService.GetTerminal(ctx, terminalID, &getLabel)
    52  	if err != nil {
    53  		return false, err
    54  	}
    55  	if err := r.ActivationCodeService.CleanupTerminal(ctx, terminalID, terminal.ClusterEdgeID); err != nil {
    56  		return false, err
    57  	}
    58  	err = r.TerminalService.DeleteTerminalEntry(ctx, terminalID)
    59  	if err != nil {
    60  		return false, err
    61  	}
    62  	return true, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Delete)
    63  }
    64  
    65  // UpdateTerminal is the resolver for the updateTerminal field.
    66  func (r *mutationResolver) UpdateTerminal(ctx context.Context, terminal model.TerminalIDInput) (*model.Terminal, error) {
    67  	updatedTerminal, err := r.TerminalService.UpdateTerminalEntry(ctx, &terminal)
    68  	if err != nil {
    69  		return nil, err
    70  	}
    71  
    72  	return updatedTerminal, r.UpdateIENodeViaChariot(ctx, updatedTerminal, chariotClientApi.Create)
    73  }
    74  
    75  // CreateTerminalInterface is the resolver for the createTerminalInterface field.
    76  func (r *mutationResolver) CreateTerminalInterface(ctx context.Context, terminalID string, newTerminalInterface model.TerminalInterfaceCreateInput) (*model.TerminalInterface, error) {
    77  	iface, err := r.TerminalService.CreateTerminalInterfaceEntry(ctx, terminalID, &newTerminalInterface)
    78  	if err != nil {
    79  		return nil, err
    80  	}
    81  
    82  	getLabel := false
    83  	terminal, err := r.TerminalService.GetTerminal(ctx, terminalID, &getLabel)
    84  	if err != nil {
    85  		return nil, err
    86  	}
    87  
    88  	return iface, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
    89  }
    90  
    91  // DeleteTerminalInterface is the resolver for the deleteTerminalInterface field.
    92  func (r *mutationResolver) DeleteTerminalInterface(ctx context.Context, terminalInterfaceID string) (bool, error) {
    93  	terminal, err := r.TerminalService.DeleteTerminalInterfaceEntry(ctx, terminalInterfaceID)
    94  	if err != nil {
    95  		return false, err
    96  	}
    97  
    98  	return true, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
    99  }
   100  
   101  // UpdateTerminalInterface is the resolver for the updateTerminalInterface field.
   102  func (r *mutationResolver) UpdateTerminalInterface(ctx context.Context, interfaceArg model.TerminalInterfaceIDInput) (*model.TerminalInterface, error) {
   103  	updatedTerminalIface, err := r.TerminalService.UpdateTerminalInterfaceEntry(ctx, &interfaceArg)
   104  	if err != nil {
   105  		return nil, err
   106  	}
   107  
   108  	terminal, err := r.TerminalService.GetTerminalFromInterface(ctx, interfaceArg.TerminalInterfaceID)
   109  	if err != nil {
   110  		return nil, err
   111  	}
   112  
   113  	return updatedTerminalIface, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
   114  }
   115  
   116  // CreateTerminalAddress is the resolver for the createTerminalAddress field.
   117  func (r *mutationResolver) CreateTerminalAddress(ctx context.Context, terminalInterfaceID string, newTerminalAddress model.TerminalAddressCreateInput) (*model.TerminalAddress, error) {
   118  	address, err := r.TerminalService.CreateTerminalAddressEntry(ctx, terminalInterfaceID, &newTerminalAddress)
   119  	if err != nil {
   120  		return nil, err
   121  	}
   122  
   123  	terminal, err := r.TerminalService.GetTerminalFromInterface(ctx, terminalInterfaceID)
   124  	if err != nil {
   125  		return nil, err
   126  	}
   127  
   128  	return address, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
   129  }
   130  
   131  // DeleteTerminalAddress is the resolver for the deleteTerminalAddress field.
   132  func (r *mutationResolver) DeleteTerminalAddress(ctx context.Context, terminalAddressID string) (bool, error) {
   133  	terminal, err := r.TerminalService.DeleteTerminalAddressEntry(ctx, terminalAddressID)
   134  	if err != nil {
   135  		return false, err
   136  	}
   137  
   138  	return true, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
   139  }
   140  
   141  // UpdateTerminalAddress is the resolver for the updateTerminalAddress field.
   142  func (r *mutationResolver) UpdateTerminalAddress(ctx context.Context, address model.TerminalAddressIDInput) (*model.TerminalAddress, error) {
   143  	updatedTerminalAddr, err := r.TerminalService.UpdateTerminalAddressEntry(ctx, &address)
   144  	if err != nil {
   145  		return nil, err
   146  	}
   147  
   148  	terminal, err := r.TerminalService.GetTerminalFromAddress(ctx, updatedTerminalAddr.TerminalAddressID)
   149  	if err != nil {
   150  		return nil, err
   151  	}
   152  
   153  	return updatedTerminalAddr, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
   154  }
   155  
   156  // RefreshActivationCode is the resolver for the refreshActivationCode field.
   157  func (r *mutationResolver) RefreshActivationCode(ctx context.Context, terminalID string) (string, error) {
   158  	return r.ActivationCodeService.Refresh(ctx, terminalID)
   159  }
   160  
   161  // CreateTerminalDisk is the resolver for the createTerminalDisk field.
   162  func (r *mutationResolver) CreateTerminalDisk(ctx context.Context, terminalID string, newTerminalDisk model.TerminalDiskCreateInput) (*model.TerminalDisk, error) {
   163  	getLabel := false
   164  	terminal, err := r.TerminalService.GetTerminal(ctx, terminalID, &getLabel)
   165  	if err != nil {
   166  		return nil, err
   167  	}
   168  
   169  	disk, err := r.TerminalService.CreateTerminalDiskEntry(ctx, terminalID, &newTerminalDisk)
   170  	if err != nil {
   171  		return nil, err
   172  	}
   173  
   174  	return disk, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
   175  }
   176  
   177  // DeleteTerminalDisk is the resolver for the deleteTerminalDisk field.
   178  func (r *mutationResolver) DeleteTerminalDisk(ctx context.Context, terminalDiskID string) (bool, error) {
   179  	terminal, err := r.TerminalService.DeleteTerminalDiskEntry(ctx, terminalDiskID)
   180  	if err != nil {
   181  		return false, err
   182  	}
   183  
   184  	return true, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
   185  }
   186  
   187  // UpdateTerminalDisk is the resolver for the updateTerminalDisk field.
   188  func (r *mutationResolver) UpdateTerminalDisk(ctx context.Context, terminalDisk model.TerminalDiskIDInput) (*model.TerminalDisk, error) {
   189  	updatedDisk, err := r.TerminalService.UpdateTerminalDiskEntry(ctx, terminalDisk.TerminalDiskID, *terminalDisk.TerminalDiskValues)
   190  	if err != nil {
   191  		return nil, err
   192  	}
   193  
   194  	getLabel := false
   195  	terminal, err := r.TerminalService.GetTerminal(ctx, updatedDisk.TerminalID, &getLabel)
   196  	if err != nil {
   197  		return nil, err
   198  	}
   199  
   200  	return updatedDisk, r.UpdateIENodeViaChariot(ctx, terminal, chariotClientApi.Create)
   201  }
   202  
   203  // Terminal is the resolver for the terminal field.
   204  func (r *queryResolver) Terminal(ctx context.Context, terminalID string) (*model.Terminal, error) {
   205  	getLabel := true
   206  	terminal, err := r.TerminalService.GetTerminal(ctx, terminalID, &getLabel)
   207  	if err != nil {
   208  		return nil, err
   209  	}
   210  	return terminal, nil
   211  }
   212  
   213  // Terminals is the resolver for the terminals field.
   214  func (r *queryResolver) Terminals(ctx context.Context, clusterEdgeID *string, terminalHostname *string) ([]*model.Terminal, error) {
   215  	terminals, err := r.TerminalService.GetTerminals(ctx, clusterEdgeID, terminalHostname)
   216  	if err != nil {
   217  		return nil, err
   218  	}
   219  	return terminals, nil
   220  }
   221  
   222  // BannerTerminals is the resolver for the bannerTerminals field.
   223  func (r *queryResolver) BannerTerminals(ctx context.Context, bannerEdgeID string, terminalLabels *bool) ([]*model.Terminal, error) {
   224  	projectID, err := r.BannerService.GetBannerProjectID(ctx, bannerEdgeID)
   225  
   226  	if err != nil {
   227  		return nil, err
   228  	}
   229  
   230  	terminals, err := r.TerminalService.GetBannerTerminals(ctx, bannerEdgeID, projectID)
   231  
   232  	if err == nil && terminalLabels != nil && *terminalLabels {
   233  		return r.TerminalLabelService.GetTerminalLabelsInfo(ctx, terminals)
   234  	}
   235  	return terminals, err
   236  }
   237  
   238  // ActivationCode is the resolver for the activationCode field.
   239  func (r *queryResolver) ActivationCode(ctx context.Context, terminalID string) (string, error) {
   240  	return r.ActivationCodeService.FetchFromSecret(ctx, terminalID)
   241  }
   242  
   243  // TerminalDevices is the resolver for the terminalDevices field.
   244  func (r *queryResolver) TerminalDevices(ctx context.Context, terminalID string) (*model.TerminalDevices, error) {
   245  	return r.TerminalService.TerminalDevices(ctx, terminalID)
   246  }
   247  

View as plain text