imagesearch-20200212/main.tea (294 lines of code) (raw):

import OSS; import OpenPlatform; import RPCUtil; import RPC; import OSSUtil; import Util; import FileForm; import EndpointUtil; extends RPC; init(config: RPC.Config){ super(config); @endpointRule = ''; checkConfig(config); @endpoint = getEndpoint('imagesearch', @regionId, @endpointRule, @network, @suffix, @endpointMap, @endpoint); } model SearchImageByNameRequest = { categoryId?: integer(name='CategoryId'), instanceName: string(name='InstanceName'), productId: string(name='ProductId'), picName: string(name='PicName'), num?: integer(name='Num'), start?: integer(name='Start'), filter?: string(name='Filter'), } model SearchImageByNameResponse = { requestId: string(name='RequestId'), success: boolean(name='Success'), code: integer(name='Code'), msg: string(name='Msg'), auctions: [ { categoryId: integer(name='CategoryId'), productId: string(name='ProductId'), picName: string(name='PicName'), customContent: string(name='CustomContent'), sortExprValues: string(name='SortExprValues'), intAttr: integer(name='IntAttr'), strAttr: string(name='StrAttr'), } ](name='Auctions'), head: { docsReturn: integer(name='DocsReturn'), docsFound: integer(name='DocsFound'), searchTime: integer(name='SearchTime'), }(name='Head'), picInfo: { categoryId: integer(name='CategoryId'), region: string(name='Region'), allCategories: [ { id: integer(name='Id'), name: string(name='Name'), } ](name='AllCategories'), }(name='PicInfo'), } async function searchImageByName(request: SearchImageByNameRequest, runtime: Util.RuntimeOptions): SearchImageByNameResponse { Util.validateModel(request); return doRequest('SearchImageByName', 'HTTPS', 'POST' , '2020-02-12', 'AK', null, request, runtime); } model SearchImageByPicRequest = { categoryId?: integer(name='CategoryId'), instanceName: string(name='InstanceName'), picContent: string(name='PicContent'), crop?: boolean(name='Crop'), region?: string(name='Region'), num?: integer(name='Num'), start?: integer(name='Start'), filter?: string(name='Filter'), } model SearchImageByPicResponse = { requestId: string(name='RequestId'), success: boolean(name='Success'), code: integer(name='Code'), msg: string(name='Msg'), auctions: [ { categoryId: integer(name='CategoryId'), productId: string(name='ProductId'), picName: string(name='PicName'), customContent: string(name='CustomContent'), sortExprValues: string(name='SortExprValues'), intAttr: integer(name='IntAttr'), strAttr: string(name='StrAttr'), } ](name='Auctions'), head: { docsReturn: integer(name='DocsReturn'), docsFound: integer(name='DocsFound'), searchTime: integer(name='SearchTime'), }(name='Head'), picInfo: { categoryId: integer(name='CategoryId'), region: string(name='Region'), allCategories: [ { id: integer(name='Id'), name: string(name='Name'), } ](name='AllCategories'), }(name='PicInfo'), } async function searchImageByPic(request: SearchImageByPicRequest, runtime: Util.RuntimeOptions): SearchImageByPicResponse { Util.validateModel(request); return doRequest('SearchImageByPic', 'HTTPS', 'POST' , '2020-02-12', 'AK', null, request, runtime); } model SearchImageByPicAdvanceRequest = { picContentObject: readable(name='PicContentObject'), categoryId?: integer(name='CategoryId'), instanceName: string(name='InstanceName'), crop?: boolean(name='Crop'), region?: string(name='Region'), num?: integer(name='Num'), start?: integer(name='Start'), filter?: string(name='Filter'), } async function searchImageByPicAdvance(request: SearchImageByPicAdvanceRequest, runtime: Util.RuntimeOptions): SearchImageByPicResponse { // Step 0: init client var accessKeyId = @credential.getAccessKeyId(); var accessKeySecret = @credential.getAccessKeySecret(); var authConfig = new RPC.Config{ accessKeyId = accessKeyId, accessKeySecret = accessKeySecret, type = 'access_key', endpoint = 'openplatform.aliyuncs.com', protocol = @protocol, regionId = @regionId, }; var authClient = new OpenPlatform(authConfig); var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{ product = 'ImageSearch', regionId = @regionId, }; var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{}; var ossConfig = new OSS.Config{ accessKeySecret = accessKeySecret, type = 'access_key', protocol = @protocol, regionId = @regionId, }; var ossClient : OSS = null; var fileObj = new FileForm.FileField{}; var ossHeader = new OSS.PostObjectRequest.header{}; var uploadRequest = new OSS.PostObjectRequest{}; var ossRuntime = new OSSUtil.RuntimeOptions{}; RPCUtil.convert(runtime, ossRuntime); var searchImageByPicreq = new SearchImageByPicRequest{}; RPCUtil.convert(request, searchImageByPicreq); authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime); ossConfig.accessKeyId = authResponse.accessKeyId; ossConfig.endpoint = RPCUtil.getEndpoint(authResponse.endpoint, authResponse.useAccelerate, @endpointType); ossClient = new OSS(ossConfig); fileObj = new FileForm.FileField{ filename = authResponse.objectKey, content = request.picContentObject, contentType = '', }; ossHeader = new OSS.PostObjectRequest.header{ accessKeyId = authResponse.accessKeyId, policy = authResponse.encodedPolicy, signature = authResponse.signature, key = authResponse.objectKey, file = fileObj, successActionStatus = '201', }; uploadRequest = new OSS.PostObjectRequest{ bucketName = authResponse.bucket, header = ossHeader, }; ossClient.postObject(uploadRequest, ossRuntime); searchImageByPicreq.picContent = `http://${authResponse.bucket}.${authResponse.endpoint}/${authResponse.objectKey}`; var searchImageByPicResp = searchImageByPic(searchImageByPicreq, runtime); return searchImageByPicResp; } model DeleteImageRequest = { instanceName: string(name='InstanceName'), productId: string(name='ProductId'), picName?: string(name='PicName'), } model DeleteImageResponse = { requestId: string(name='RequestId'), success: boolean(name='Success'), message: string(name='Message'), code: integer(name='Code'), } async function deleteImage(request: DeleteImageRequest, runtime: Util.RuntimeOptions): DeleteImageResponse { Util.validateModel(request); return doRequest('DeleteImage', 'HTTPS', 'POST' , '2020-02-12', 'AK', null, request, runtime); } model AddImageRequest = { instanceName: string(name='InstanceName'), categoryId?: integer(name='CategoryId'), productId: string(name='ProductId'), picName: string(name='PicName'), picContent: string(name='PicContent'), crop?: boolean(name='Crop'), region?: string(name='Region'), customContent?: string(name='CustomContent'), intAttr?: integer(name='IntAttr'), strAttr?: string(name='StrAttr'), } model AddImageResponse = { requestId: string(name='RequestId'), success: boolean(name='Success'), message: string(name='Message'), code: integer(name='Code'), picInfo: { categoryId: integer(name='CategoryId'), region: string(name='Region'), }(name='PicInfo'), } async function addImage(request: AddImageRequest, runtime: Util.RuntimeOptions): AddImageResponse { Util.validateModel(request); return doRequest('AddImage', 'HTTPS', 'POST' , '2020-02-12', 'AK', null, request, runtime); } model AddImageAdvanceRequest = { picContentObject: readable(name='PicContentObject'), instanceName: string(name='InstanceName'), categoryId?: integer(name='CategoryId'), productId: string(name='ProductId'), picName: string(name='PicName'), crop?: boolean(name='Crop'), region?: string(name='Region'), customContent?: string(name='CustomContent'), intAttr?: integer(name='IntAttr'), strAttr?: string(name='StrAttr'), } async function addImageAdvance(request: AddImageAdvanceRequest, runtime: Util.RuntimeOptions): AddImageResponse { // Step 0: init client var accessKeyId = @credential.getAccessKeyId(); var accessKeySecret = @credential.getAccessKeySecret(); var authConfig = new RPC.Config{ accessKeyId = accessKeyId, accessKeySecret = accessKeySecret, type = 'access_key', endpoint = 'openplatform.aliyuncs.com', protocol = @protocol, regionId = @regionId, }; var authClient = new OpenPlatform(authConfig); var authRequest = new OpenPlatform.AuthorizeFileUploadRequest{ product = 'ImageSearch', regionId = @regionId, }; var authResponse = new OpenPlatform.AuthorizeFileUploadResponse{}; var ossConfig = new OSS.Config{ accessKeySecret = accessKeySecret, type = 'access_key', protocol = @protocol, regionId = @regionId, }; var ossClient : OSS = null; var fileObj = new FileForm.FileField{}; var ossHeader = new OSS.PostObjectRequest.header{}; var uploadRequest = new OSS.PostObjectRequest{}; var ossRuntime = new OSSUtil.RuntimeOptions{}; RPCUtil.convert(runtime, ossRuntime); var addImagereq = new AddImageRequest{}; RPCUtil.convert(request, addImagereq); authResponse = authClient.authorizeFileUploadWithOptions(authRequest, runtime); ossConfig.accessKeyId = authResponse.accessKeyId; ossConfig.endpoint = RPCUtil.getEndpoint(authResponse.endpoint, authResponse.useAccelerate, @endpointType); ossClient = new OSS(ossConfig); fileObj = new FileForm.FileField{ filename = authResponse.objectKey, content = request.picContentObject, contentType = '', }; ossHeader = new OSS.PostObjectRequest.header{ accessKeyId = authResponse.accessKeyId, policy = authResponse.encodedPolicy, signature = authResponse.signature, key = authResponse.objectKey, file = fileObj, successActionStatus = '201', }; uploadRequest = new OSS.PostObjectRequest{ bucketName = authResponse.bucket, header = ossHeader, }; ossClient.postObject(uploadRequest, ossRuntime); addImagereq.picContent = `http://${authResponse.bucket}.${authResponse.endpoint}/${authResponse.objectKey}`; var addImageResp = addImage(addImagereq, runtime); return addImageResp; } function getEndpoint(productId: string, regionId: string, endpointRule: string, network: string, suffix: string, endpointMap: map[string]string, endpoint: string) throws: string{ if (!Util.empty(endpoint)) { return endpoint; } if (!Util.isUnset(endpointMap) && !Util.empty(endpointMap[regionId])) { return endpointMap[regionId]; } return EndpointUtil.getEndpointRules(productId, regionId, endpointRule, network, suffix); }