MCPcopy Create free account
hub / github.com/AndroidPoet/playconsole-cli / fetchApps

Function fetchApps

cmd/playconsole-cli/commands/apps/apps.go:73–120  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

71}
72
73func fetchApps() ([]AppInfo, error) {
74 ctx, cancel := context.WithTimeout(context.Background(), cli.ResolveTimeout(60*time.Second))
75 defer cancel()
76
77 // Get credentials
78 creds, err := config.GetCredentials()
79 if err != nil {
80 return nil, fmt.Errorf("failed to get credentials: %w", err)
81 }
82
83 // Create JWT config for Play Developer Reporting API
84 jwtConfig, err := google.JWTConfigFromJSON(creds, playdeveloperreporting.PlaydeveloperreportingScope)
85 if err != nil {
86 return nil, fmt.Errorf("failed to parse credentials: %w", err)
87 }
88
89 // Create HTTP client
90 httpClient := jwtConfig.Client(ctx)
91
92 // Create Play Developer Reporting service
93 reportingService, err := playdeveloperreporting.NewService(ctx, option.WithHTTPClient(httpClient))
94 if err != nil {
95 return nil, fmt.Errorf("failed to create reporting service: %w", err)
96 }
97
98 // Search for all accessible apps
99 searchCall := reportingService.Apps.Search()
100 response, err := searchCall.Do()
101 if err != nil {
102 return nil, err
103 }
104
105 // Build result
106 apps := make([]AppInfo, 0, len(response.Apps))
107 for _, app := range response.Apps {
108 // Extract package name from resource name (format: apps/{package_name})
109 packageName := ""
110 if len(app.Name) > 5 {
111 packageName = app.Name[5:] // Remove "apps/" prefix
112 }
113 apps = append(apps, AppInfo{
114 PackageName: packageName,
115 DisplayName: app.DisplayName,
116 })
117 }
118
119 return apps, nil
120}
121
122func runGet(cmd *cobra.Command, args []string) error {
123 if err := cli.RequirePackage(cmd); err != nil {

Callers 1

runListFunction · 0.85

Calls 2

ResolveTimeoutFunction · 0.92
GetCredentialsFunction · 0.92

Tested by

no test coverage detected