@@ -48,31 +48,53 @@ function Get-FabricSQLDatabase {
48
48
49
49
[CmdletBinding ()]
50
50
param (
51
- [Parameter (Mandatory = $true )]
51
+ [Parameter (Mandatory = $true , ParameterSetName = ' WorkspaceId ' )]
52
52
[string ]$WorkspaceId ,
53
53
54
+ [Parameter (Mandatory = $true , ParameterSetName = ' WorkspaceObject' , ValueFromPipeline = $true )]
55
+ $Workspace ,
56
+
54
57
[Alias (" Name" , " DisplayName" )]
55
58
[string ]$SQLDatabaseName ,
56
59
57
60
[Alias (" Id" )]
58
61
[string ]$SQLDatabaseId
59
62
)
60
63
61
- Test-TokenExpired
62
-
63
- Write-Verbose " You can either use SQLDatabaseName or SQLDatabaseID not both. If both are used throw error "
64
- if ( $PSBoundParameters .ContainsKey ( " SQLDatabaseName" ) - and $PSBoundParameters .ContainsKey ( " SQLDatabaseId" )) {
65
- throw " Parameters SQLDatabaseName and SQLDatabaseId cannot be used together "
64
+ begin {
65
+ Test-TokenExpired
66
+ if ( $PSBoundParameters .ContainsKey ( " SQLDatabaseName" ) -and $PSBoundParameters .ContainsKey ( " SQLDatabaseId " )) {
67
+ throw " Parameters SQLDatabaseName and SQLDatabaseId cannot be used together "
68
+ }
66
69
}
67
70
68
- # Create SQLDatabase API
69
- $uri = " $ ( $FabricSession.BaseApiUrl ) /workspaces/$workspaceId /SqlDatabases"
70
- if ($SQLDatabaseId ) {
71
- $uri = " $uri /$SQLDatabaseId "
71
+ process {
72
+ if ($PSCmdlet.ParameterSetName -eq ' WorkspaceObject' ) {
73
+ $WorkspaceId = $Workspace.id
74
+ }
75
+
76
+ # Create SQLDatabase API
77
+ $uri = " $ ( $FabricSession.BaseApiUrl ) /workspaces/$WorkspaceId /SqlDatabases"
78
+ if ($SQLDatabaseId ) {
79
+ $uri = " $uri /$SQLDatabaseId "
80
+ }
81
+ $response = Invoke-FabricRestMethod - Uri $uri
82
+ # #$databases.Where({$_.displayName -eq $body.displayName}).id
83
+
84
+ # Step: Validate the response code
85
+ if ($statusCode -ne 200 ) {
86
+ Write-Message - Message " Unexpected response code: $statusCode from the API." - Level Error
87
+ Write-Message - Message " Error: $ ( $response.message ) " - Level Error
88
+ Write-Message - Message " Error Details: $ ( $response.moreDetails ) " - Level Error
89
+ Write-Message " Error Code: $ ( $response.errorCode ) " - Level Error
90
+ return $null
91
+ }
92
+
93
+ $response = $response.value
94
+ if ($SQLDatabaseName ) {
95
+ # Filter the SQLDatabase by name
96
+ $response = $response | Where-Object { $_.displayName -eq $SQLDatabaseName }
97
+ }
98
+ return $response
72
99
}
73
- $result = Invoke-RestMethod - Headers $FabricSession.HeaderParams - Uri $uri
74
- # #$databases.Where({$_.displayName -eq $body.displayName}).id
75
-
76
- return $result.value
77
-
78
100
}
0 commit comments