Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,7 @@ export function _createSend(
export async function _createDeserialize(
result: PathUncheckedResponse,
): Promise<DataProduct> {
const expectedStatuses = ["200", "201"];
const expectedStatuses = ["200", "201", "202"];
if (!expectedStatuses.includes(result.status)) {
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
Expand All @@ -738,17 +738,22 @@ export function create(
resource: DataProduct,
options: DataProductsCreateOptionalParams = { requestOptions: {} },
): PollerLike<OperationState<DataProduct>, DataProduct> {
return getLongRunningPoller(context, _createDeserialize, ["200", "201"], {
updateIntervalInMs: options?.updateIntervalInMs,
abortSignal: options?.abortSignal,
getInitialResponse: () =>
_createSend(
context,
resourceGroupName,
dataProductName,
resource,
options,
),
resourceLocationConfig: "azure-async-operation",
}) as PollerLike<OperationState<DataProduct>, DataProduct>;
return getLongRunningPoller(
context,
_createDeserialize,
["200", "201", "202"],
{
updateIntervalInMs: options?.updateIntervalInMs,
abortSignal: options?.abortSignal,
getInitialResponse: () =>
_createSend(
context,
resourceGroupName,
dataProductName,
resource,
options,
),
resourceLocationConfig: "azure-async-operation",
},
) as PollerLike<OperationState<DataProduct>, DataProduct>;
}
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ export function _createSend(
export async function _createDeserialize(
result: PathUncheckedResponse,
): Promise<DataType> {
const expectedStatuses = ["200", "201"];
const expectedStatuses = ["200", "201", "202"];
if (!expectedStatuses.includes(result.status)) {
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
Expand All @@ -519,18 +519,23 @@ export function create(
resource: DataType,
options: DataTypesCreateOptionalParams = { requestOptions: {} },
): PollerLike<OperationState<DataType>, DataType> {
return getLongRunningPoller(context, _createDeserialize, ["200", "201"], {
updateIntervalInMs: options?.updateIntervalInMs,
abortSignal: options?.abortSignal,
getInitialResponse: () =>
_createSend(
context,
resourceGroupName,
dataProductName,
dataTypeName,
resource,
options,
),
resourceLocationConfig: "azure-async-operation",
}) as PollerLike<OperationState<DataType>, DataType>;
return getLongRunningPoller(
context,
_createDeserialize,
["200", "201", "202"],
{
updateIntervalInMs: options?.updateIntervalInMs,
abortSignal: options?.abortSignal,
getInitialResponse: () =>
_createSend(
context,
resourceGroupName,
dataProductName,
dataTypeName,
resource,
options,
),
resourceLocationConfig: "azure-async-operation",
},
) as PollerLike<OperationState<DataType>, DataType>;
}
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,10 @@ const deserializeMap: Record<string, DeserializationHelper> = {
"PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}":
{ deserializer: _updateDeserialize, expectedStatuses: ["200", "202"] },
"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}":
{ deserializer: _createDeserialize, expectedStatuses: ["200", "201"] },
{
deserializer: _createDeserialize,
expectedStatuses: ["200", "201", "202"],
},
"POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/dataTypes/{dataTypeName}/deleteData":
{
deserializer: _deleteDataDeserialize,
Expand All @@ -118,7 +121,7 @@ const deserializeMap: Record<string, DeserializationHelper> = {
"PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/dataTypes/{dataTypeName}":
{
deserializer: _createDeserializeDataTypes,
expectedStatuses: ["200", "201"],
expectedStatuses: ["200", "201", "202"],
},
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ export function _createOrReplaceSend(
export async function _createOrReplaceDeserialize(
result: PathUncheckedResponse,
): Promise<SAPUser> {
const expectedStatuses = ["201", "200"];
const expectedStatuses = ["201", "200", "202"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
}
Expand All @@ -157,7 +157,7 @@ export function createOrReplace(
return getLongRunningPoller(
context,
_createOrReplaceDeserialize,
["201", "200"],
["201", "200", "202"],
{
updateIntervalInMs: options?.updateIntervalInMs,
abortSignal: options?.abortSignal,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ export function _createOrReplaceSend(
export async function _createOrReplaceDeserialize(
result: PathUncheckedResponse,
): Promise<SAPUser> {
const expectedStatuses = ["201", "200"];
const expectedStatuses = ["201", "200", "202"];
if (!expectedStatuses.includes(result.status)) {
throw createRestError(result);
}
Expand All @@ -244,7 +244,7 @@ export function createOrReplace(
return getLongRunningPoller(
context,
_createOrReplaceDeserialize,
["201", "200"],
["201", "200", "202"],
{
updateIntervalInMs: options?.updateIntervalInMs,
abortSignal: options?.abortSignal,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,11 @@ interface DeserializationHelper {
const deserializeMap: Record<string, DeserializationHelper> = {
"PUT /budgets/widgets/createOrReplace/users/{name}": {
deserializer: _createOrReplaceDeserialize,
expectedStatuses: ["201", "200"],
expectedStatuses: ["201", "200", "202"],
},
"PUT /widgets/widgets/createOrReplace/users/{name}": {
deserializer: _createOrReplaceDeserializeSapWidgets,
expectedStatuses: ["201", "200"],
expectedStatuses: ["201", "200", "202"],
},
};

Expand Down
10 changes: 3 additions & 7 deletions packages/typespec-ts/src/modular/helpers/operationHelpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1550,14 +1550,10 @@ export function getPropertyFullName(
* @param operation The operation
*/
export function getExpectedStatuses(operation: ServiceOperation): string {
const statusCodes = operation.operation.responses.map((x) => x.statusCodes);
let statusCodes = operation.operation.responses.map((x) => x.statusCodes);
// LROs may call the same path but with GET to get the operation status.
if (
isLroOnlyOperation(operation) &&
operation.operation.verb !== "get" &&
!statusCodes.includes(200)
) {
statusCodes.push(200);
if (isLroOnlyOperation(operation) && operation.operation.verb !== "get") {
statusCodes = Array.from(new Set([...statusCodes, 200, 202]));
}

return `[${statusCodes.map((x) => `"${x}"`).join(", ")}]`;
Expand Down
Loading
Loading