in lib/common_generator.js [589:637]
visitYield(ast, level) {
assert.equal(ast.type, 'yield');
let property = '';
if (ast.expr && ast.expr.left && ast.expr.left.propertyPath) {
property = ast.expr.left.propertyPath.pop();
}
if (_name(property) === 'doSSERequest') {
const args = ast.expr.args;
this.emit(`TeaRequest teaRequest = REQUEST.copy()`, level);
this.emit('.setStyle(RequestStyle.');
this.emit(`${_string(args[0].value).toUpperCase()}`);
this.emit(').setAction("');
this.emit(`${_string(args[1].value)}`);
this.emit('").setMethod(HttpMethod.');
this.emit(`${_string(args[2].value).toUpperCase()}`);
this.emit(').setPathRegex("');
this.emit(`${_string(args[3].value)}`);
this.emit('").setBodyType(BodyType.');
this.emit(`${_string(args[4].value).toUpperCase()}`);
this.emit(').setBodyIsForm(');
this.emit(`${args[5].value}`);
if (typeof args[6].value.string !== 'undefined' && args[6].value.string !== '') {
this.emit(').setReqBodyType(BodyType.');
this.emit(`${_string(args[6].value).toUpperCase()}`);
}
this.emitln(`).formModel(${_name(args[7].id)});`);
let modelName = _name(ast.expectedType);
this.emitln(`${modelName}Iterator iterator = ${modelName}Iterator.create();`, level);
this.ctx.iterators.push({
iteratorType: ast.expectedType,
iteratorStyle: SSE,
});
this.emitln(`ClientExecutionParams params = new ClientExecutionParams().withInput(${_name(args[7].id)}).withRequest(teaRequest).withHttpResponseHandler(new SSEHttpResponseHandler(iterator));`, level);
var id = _name(ast.expr.left.id);
if (id.indexOf('@') > -1) {
id = `this.${id.substr(1)}`;
}
this.emitln(`${id}.execute(params);`, level);
this.emitln('return new ResponseIterable<>(iterator);', level);
return;
}
this.emit('return ', level);
if (!ast.expr) {
this.emit(';\n');
return;
}
this.visitExpr(ast.expr, level);
this.emit(';\n');
}