You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: internal/services/resources/device_management/graph_beta/windows_enrollment_status_page/mocks/responders.go
filter:="isof('microsoft.graph.windowsAppX') or isof('microsoft.graph.windowsMobileMSI') or isof('microsoft.graph.windowsUniversalAppX') or isof('microsoft.graph.officeSuiteApp') or isof('microsoft.graph.windowsMicrosoftEdgeApp') or isof('microsoft.graph.winGetApp') or isof('microsoft.graph.win32LobApp') or isof('microsoft.graph.win32CatalogApp')"
tflog.Error(ctx, "Failed to retrieve mobile apps for validation", map[string]any{
71
-
"error": err.Error(),
72
-
})
73
-
returnfmt.Errorf("failed to validate mobile app IDs: unable to retrieve available apps from Microsoft Graph")
74
-
}
51
+
for_, appId:=rangeappIdStrings {
52
+
appIdValue:=appId.ValueString()
75
53
76
-
// Create a map of valid app IDs for quick lookup
77
-
validAppIds:=make(map[string]string) // ID -> DisplayName
78
-
validAppTypes:=make(map[string]string) // ID -> AppType
54
+
// Query the specific app by ID
55
+
app, err:=client.
56
+
DeviceAppManagement().
57
+
MobileApps().
58
+
ByMobileAppId(appIdValue).
59
+
Get(ctx, nil)
60
+
61
+
iferr!=nil {
62
+
tflog.Error(ctx, "Failed to retrieve mobile app for validation", map[string]any{
63
+
"appId": appIdValue,
64
+
"error": err.Error(),
65
+
})
66
+
returnfmt.Errorf("supplied app ID '%s' does not match any valid Windows app types. Valid app types include: windowsAppX, windowsMobileMSI, windowsUniversalAppX, officeSuiteApp, windowsMicrosoftEdgeApp, winGetApp, win32LobApp, win32CatalogApp", appIdValue)
// Validate the app type using SDK type assertions
70
+
isValidType:=false
71
+
varappTypeNamestring
72
+
73
+
switchapp.(type) {
74
+
case*graphmodels.WindowsAppX:
75
+
isValidType=true
76
+
appTypeName="windowsAppX"
77
+
case*graphmodels.WindowsMobileMSI:
78
+
isValidType=true
79
+
appTypeName="windowsMobileMSI"
80
+
case*graphmodels.WindowsUniversalAppX:
81
+
isValidType=true
82
+
appTypeName="windowsUniversalAppX"
83
+
case*graphmodels.OfficeSuiteApp:
84
+
isValidType=true
85
+
appTypeName="officeSuiteApp"
86
+
case*graphmodels.WindowsMicrosoftEdgeApp:
87
+
isValidType=true
88
+
appTypeName="windowsMicrosoftEdgeApp"
89
+
case*graphmodels.WinGetApp:
90
+
isValidType=true
91
+
appTypeName="winGetApp"
92
+
case*graphmodels.Win32LobApp:
93
+
isValidType=true
94
+
appTypeName="win32LobApp"
95
+
case*graphmodels.Win32CatalogApp:
96
+
isValidType=true
97
+
appTypeName="win32CatalogApp"
98
+
default:
99
+
ifodataType:=app.GetOdataType(); odataType!=nil {
100
+
appTypeName=*odataType
101
+
} else {
102
+
appTypeName="unknown"
85
103
}
86
104
}
87
-
}
88
105
89
-
// Validate each provided app ID
90
-
for_, appId:=rangeappIdStrings {
91
-
appIdValue:=appId.ValueString()
92
-
displayName, exists:=validAppIds[appIdValue]
106
+
if!isValidType {
107
+
returnfmt.Errorf("supplied app ID '%s' has type '%s' which is not a valid Windows app type. Valid app types include: windowsAppX, windowsMobileMSI, windowsUniversalAppX, officeSuiteApp, windowsMicrosoftEdgeApp, winGetApp, win32LobApp, win32CatalogApp", appIdValue, appTypeName)
108
+
}
93
109
94
-
if!exists {
95
-
returnfmt.Errorf("supplied app ID '%s' does not match any valid Windows app types. Valid app types include: windowsAppX, windowsMobileMSI, windowsUniversalAppX, officeSuiteApp, windowsMicrosoftEdgeApp, winGetApp, win32LobApp, win32CatalogApp", appIdValue)
110
+
displayName:=""
111
+
ifapp.GetDisplayName() !=nil {
112
+
displayName=*app.GetDisplayName()
96
113
}
97
114
98
115
tflog.Debug(ctx, "Validated mobile app", map[string]any{
99
116
"appId": appIdValue,
100
117
"displayName": displayName,
101
-
"appType": validAppTypes[appIdValue],
118
+
"appType": appTypeName,
102
119
})
103
120
}
104
121
105
-
tflog.Debug(ctx, fmt.Sprintf("Validated %d mobile app IDs against %d available Windows apps", len(appIdStrings), len(validAppIds)))
122
+
tflog.Debug(ctx, fmt.Sprintf("Successfully validated %d mobile app IDs", len(appIdStrings)))
0 commit comments