Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support the customized error responses in deserializer #2978

Merged
merged 17 commits into from
Jan 13, 2025
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
{
"name": "[TypeSpec] Smoke Test Debug",
"request": "launch",
"cwd": "${workspaceFolder}/packages/typespec-test/test/customWrapper",
"cwd": "${workspaceFolder}/packages/typespec-test/test/todo_non_branded",
"runtimeArgs": ["tsp", "compile", "./spec"],
"runtimeExecutable": "npx",
"skipFiles": ["<node_internals>/**"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,26 @@ export interface EncryptionKeyDetails {
keyVersion: string;
}

// @public
export interface ErrorAdditionalInfo {
readonly info?: Record<string, any>;
readonly type?: string;
}

// @public
export interface ErrorDetail {
readonly additionalInfo?: ErrorAdditionalInfo[];
readonly code?: string;
readonly details?: ErrorDetail[];
readonly message?: string;
readonly target?: string;
}

// @public
export interface ErrorResponse {
error?: ErrorDetail;
}

// @public
export interface IPRules {
action: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
DataProduct,
dataProductSerializer,
dataProductDeserializer,
errorResponseDeserializer,
DataProductUpdate,
dataProductUpdateSerializer,
AccountSas,
Expand Down Expand Up @@ -77,7 +78,9 @@ export async function _listBySubscriptionDeserialize(
): Promise<_DataProductListResult> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return _dataProductListResultDeserializer(result.body);
Expand Down Expand Up @@ -127,7 +130,9 @@ export async function _listByResourceGroupDeserialize(
): Promise<_DataProductListResult> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
MaryGao marked this conversation as resolved.
Show resolved Hide resolved
throw error;
}

return _dataProductListResultDeserializer(result.body);
Expand Down Expand Up @@ -183,7 +188,9 @@ export async function _listRolesAssignmentsDeserialize(
): Promise<ListRoleAssignments> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return listRoleAssignmentsDeserializer(result.body);
Expand Down Expand Up @@ -240,7 +247,9 @@ export async function _removeUserRoleDeserialize(
): Promise<void> {
const expectedStatuses = ["204"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return;
Expand Down Expand Up @@ -295,7 +304,9 @@ export async function _addUserRoleDeserialize(
): Promise<RoleAssignmentDetail> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return roleAssignmentDetailDeserializer(result.body);
Expand Down Expand Up @@ -350,7 +361,9 @@ export async function _rotateKeyDeserialize(
): Promise<void> {
const expectedStatuses = ["204"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return;
Expand Down Expand Up @@ -407,7 +420,9 @@ export async function _generateStorageAccountSasTokenDeserialize(
): Promise<AccountSasToken> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return accountSasTokenDeserializer(result.body);
Expand Down Expand Up @@ -461,7 +476,9 @@ export async function _$deleteDeserialize(
): Promise<void> {
const expectedStatuses = ["202", "204", "200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return;
Expand Down Expand Up @@ -524,7 +541,9 @@ export async function _updateDeserialize(
): Promise<DataProduct> {
const expectedStatuses = ["200", "202"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return dataProductDeserializer(result.body);
Expand Down Expand Up @@ -581,7 +600,9 @@ export async function _getDeserialize(
): Promise<DataProduct> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return dataProductDeserializer(result.body);
Expand Down Expand Up @@ -634,7 +655,9 @@ export async function _createDeserialize(
): Promise<DataProduct> {
const expectedStatuses = ["200", "201"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return dataProductDeserializer(result.body);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
DataProductsCatalogsListBySubscriptionOptionalParams,
} from "../index.js";
import {
errorResponseDeserializer,
DataProductsCatalog,
dataProductsCatalogDeserializer,
_DataProductsCatalogListResult,
Expand Down Expand Up @@ -50,7 +51,9 @@ export async function _listBySubscriptionDeserialize(
): Promise<_DataProductsCatalogListResult> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return _dataProductsCatalogListResultDeserializer(result.body);
Expand Down Expand Up @@ -100,7 +103,9 @@ export async function _listByResourceGroupDeserialize(
): Promise<_DataProductsCatalogListResult> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return _dataProductsCatalogListResultDeserializer(result.body);
Expand Down Expand Up @@ -149,7 +154,9 @@ export async function _getDeserialize(
): Promise<DataProductsCatalog> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return dataProductsCatalogDeserializer(result.body);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
DataTypesUpdateOptionalParams,
} from "../index.js";
import {
errorResponseDeserializer,
DataType,
dataTypeSerializer,
dataTypeDeserializer,
Expand Down Expand Up @@ -66,7 +67,9 @@ export async function _listByDataProductDeserialize(
): Promise<_DataTypeListResult> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return _dataTypeListResultDeserializer(result.body);
Expand Down Expand Up @@ -129,7 +132,9 @@ export async function _generateStorageContainerSasTokenDeserialize(
): Promise<ContainerSasToken> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return containerSasTokenDeserializer(result.body);
Expand Down Expand Up @@ -190,7 +195,9 @@ export async function _deleteDataDeserialize(
): Promise<void> {
const expectedStatuses = ["202", "204", "200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return;
Expand Down Expand Up @@ -256,7 +263,9 @@ export async function _$deleteDeserialize(
): Promise<void> {
const expectedStatuses = ["202", "204", "200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return;
Expand Down Expand Up @@ -328,7 +337,9 @@ export async function _updateDeserialize(
): Promise<DataType> {
const expectedStatuses = ["200", "202"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return dataTypeDeserializer(result.body);
Expand Down Expand Up @@ -389,7 +400,9 @@ export async function _getDeserialize(
): Promise<DataType> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return dataTypeDeserializer(result.body);
Expand Down Expand Up @@ -446,7 +459,9 @@ export async function _createDeserialize(
): Promise<DataType> {
const expectedStatuses = ["200", "201"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return dataTypeDeserializer(result.body);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
OperationsListOptionalParams,
} from "../index.js";
import {
errorResponseDeserializer,
_OperationListResult,
_operationListResultDeserializer,
Operation,
Expand Down Expand Up @@ -42,7 +43,9 @@ export async function _listDeserialize(
): Promise<_OperationListResult> {
const expectedStatuses = ["200"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}

return _operationListResultDeserializer(result.body);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ export {
SystemData,
KnownCreatedByType,
CreatedByType,
ErrorResponse,
ErrorDetail,
ErrorAdditionalInfo,
DataProductUpdate,
DataProductUpdateProperties,
AccountSas,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ export {
SystemData,
KnownCreatedByType,
CreatedByType,
ErrorResponse,
ErrorDetail,
ErrorAdditionalInfo,
DataProductUpdate,
DataProductUpdateProperties,
AccountSas,
Expand Down
Loading
Loading