MCPcopy Create free account
hub / github.com/compozy/agh / normalizeJoinChannelRequest

Function normalizeJoinChannelRequest

internal/network/manager.go:461–500  ·  view source on GitHub ↗
(
	ctx context.Context,
	manager *Manager,
	join sessionpkg.NetworkPeerJoin,
)

Source from the content-addressed store, hash-verified

459}
460
461func normalizeJoinChannelRequest(
462 ctx context.Context,
463 manager *Manager,
464 join sessionpkg.NetworkPeerJoin,
465) (joinChannelRequest, error) {
466 if ctx == nil {
467 return joinChannelRequest{}, errors.New("network: join context is required")
468 }
469 if manager == nil {
470 return joinChannelRequest{}, errors.New("network: manager is required")
471 }
472 if err := ctx.Err(); err != nil {
473 return joinChannelRequest{}, err
474 }
475 if err := manager.lifecycleCtx.Err(); err != nil {
476 return joinChannelRequest{}, err
477 }
478
479 request := joinChannelRequest{
480 sessionID: strings.TrimSpace(join.SessionID),
481 peerID: strings.TrimSpace(join.PeerID),
482 workspaceID: strings.TrimSpace(join.WorkspaceID),
483 displayName: strings.TrimSpace(join.DisplayName),
484 channel: strings.TrimSpace(join.Channel),
485 capabilities: cloneJoinCapabilities(join.Capabilities),
486 }
487 if request.sessionID == "" {
488 return joinChannelRequest{}, fmt.Errorf("%w: session id is required", ErrMissingField)
489 }
490 if request.peerID == "" {
491 return joinChannelRequest{}, fmt.Errorf("%w: peer id is required", ErrMissingField)
492 }
493 if err := ValidateWorkspaceID(request.workspaceID); err != nil {
494 return joinChannelRequest{}, err
495 }
496 if err := ValidateChannel(request.channel); err != nil {
497 return joinChannelRequest{}, err
498 }
499 return request, nil
500}
501
502func cloneJoinCapabilities(capabilities []sessionpkg.NetworkPeerCapability) []sessionpkg.NetworkPeerCapability {
503 return cloneNetworkPeerCapabilityCatalog(capabilities)

Callers 1

JoinChannelMethod · 0.85

Calls 4

cloneJoinCapabilitiesFunction · 0.85
ValidateWorkspaceIDFunction · 0.85
ValidateChannelFunction · 0.85
ErrMethod · 0.45

Tested by

no test coverage detected