UNPKG

@agravity/private

Version:

The Agravity GlobalDAM API which allowes authenticated user to access the Agravity GlobalDAM Backend

644 lines (579 loc) 27.2 kB
/** * Agravity OpenAPI Documentation - Private Functions * * Contact: office@agravity.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ /* tslint:disable:no-unused-variable member-ordering */ import { Inject, Injectable, Optional } from '@angular/core'; import { HttpClient, HttpHeaders, HttpParams, HttpResponse, HttpEvent, HttpParameterCodec, HttpContext } from '@angular/common/http'; import { CustomHttpParameterCodec } from '../encoder'; import { Observable } from 'rxjs'; // @ts-ignore import { AgravityInfoResponse } from '../model/agravityInfoResponse.agravity'; // @ts-ignore import { ExcelExportTableEntity } from '../model/excelExportTableEntity.agravity'; // @ts-ignore import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; import { AgravityConfiguration } from '../configuration'; export interface HttpDataExportAssetsAsExcelRequestParams { /** Used to specify what to be returned. Valid values are: collection_type_ids, collection_ids and asset_ids. When providing multiple values separate it with comma (\&#39;,\&#39;). */ ids?: string; /** In which language the assets should be exported. */ language?: string; } export interface HttpDataExportItemsAsExcelRequestParams { /** Used to specify what to be retured. Valid values are: asset, workspace, collection_type and/or only certain collection types (IDs) for exporting. When providing multiple values separate it with comma (\&#39;,\&#39;). */ filter?: string; } export interface HttpDataExportTranslationsAsExcelRequestParams { /** Used to specify what to be returned. Valid values are: asset, workspace, collection_type, collection, ct_item, download_format and/or only certain collection types (IDs) for exporting. When providing multiple values separate it with comma (\&#39;,\&#39;). */ filter?: string; } export interface HttpDataExportTranslationsCancelRequestParams { /** The ID of translation export */ id: string; } export interface HttpDataExportTranslationsCheckStatusRequestParams { /** The ID of translation export */ id: string; } @Injectable({ providedIn: 'root' }) export class DataImportExportManagementService { protected basePath = 'http://localhost:7071/api'; public defaultHeaders = new HttpHeaders(); public configuration = new AgravityConfiguration(); public encoder: HttpParameterCodec; constructor( protected httpClient: HttpClient, @Optional() @Inject(BASE_PATH) basePath: string | string[], @Optional() configuration: AgravityConfiguration ) { if (configuration) { this.configuration = configuration; } if (typeof this.configuration.basePath !== 'string') { const firstBasePath = Array.isArray(basePath) ? basePath[0] : undefined; if (firstBasePath != undefined) { basePath = firstBasePath; } if (typeof basePath !== 'string') { basePath = this.basePath; } this.configuration.basePath = basePath; } this.encoder = this.configuration.encoder || new CustomHttpParameterCodec(); } // @ts-ignore private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams { if (typeof value === 'object' && value instanceof Date === false) { httpParams = this.addToHttpParamsRecursive(httpParams, value); } else { httpParams = this.addToHttpParamsRecursive(httpParams, value, key); } return httpParams; } private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams { if (value == null) { return httpParams; } if (typeof value === 'object') { if (Array.isArray(value)) { (value as any[]).forEach((elem) => (httpParams = this.addToHttpParamsRecursive(httpParams, elem, key))); } else if (value instanceof Date) { if (key != null) { httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10)); } else { throw Error('key may not be null if value is Date'); } } else { Object.keys(value).forEach((k) => (httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k))); } } else if (key != null) { httpParams = httpParams.append(key, value); } else { throw Error('key may not be null if value is not object or array'); } return httpParams; } /** * This endpoint creates an excel export of an asset list. * @param requestParameters * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ public httpDataExportAssetsAsExcel( requestParameters?: HttpDataExportAssetsAsExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<ExcelExportTableEntity>; public httpDataExportAssetsAsExcel( requestParameters?: HttpDataExportAssetsAsExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpResponse<ExcelExportTableEntity>>; public httpDataExportAssetsAsExcel( requestParameters?: HttpDataExportAssetsAsExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpEvent<ExcelExportTableEntity>>; public httpDataExportAssetsAsExcel( requestParameters?: HttpDataExportAssetsAsExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<any> { const ids = requestParameters?.ids; const language = requestParameters?.language; let localVarQueryParameters = new HttpParams({ encoder: this.encoder }); if (ids !== undefined && ids !== null) { localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, <any>ids, 'ids'); } if (language !== undefined && language !== null) { localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, <any>language, 'language'); } let localVarHeaders = this.defaultHeaders; let localVarCredential: string | undefined; // authentication (msal_auth) required localVarCredential = this.configuration.lookupCredential('msal_auth'); if (localVarCredential) { localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); } let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; if (localVarHttpHeaderAcceptSelected === undefined) { // to determine the Accept header const httpHeaderAccepts: string[] = ['application/json']; localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); } if (localVarHttpHeaderAcceptSelected !== undefined) { localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); } let localVarHttpContext: HttpContext | undefined = options && options.context; if (localVarHttpContext === undefined) { localVarHttpContext = new HttpContext(); } let localVarTransferCache: boolean | undefined = options && options.transferCache; if (localVarTransferCache === undefined) { localVarTransferCache = true; } let responseType_: 'text' | 'json' | 'blob' = 'json'; if (localVarHttpHeaderAcceptSelected) { if (localVarHttpHeaderAcceptSelected.startsWith('text')) { responseType_ = 'text'; } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { responseType_ = 'json'; } else { responseType_ = 'blob'; } } let localVarPath = `/data/excel/export/assets`; return this.httpClient.request<ExcelExportTableEntity>('get', `${this.configuration.basePath}${localVarPath}`, { context: localVarHttpContext, params: localVarQueryParameters, responseType: <any>responseType_, withCredentials: this.configuration.withCredentials, headers: localVarHeaders, observe: observe, transferCache: localVarTransferCache, reportProgress: reportProgress }); } /** * This endpoint creates an excel export of the db * @param requestParameters * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ public httpDataExportItemsAsExcel( requestParameters?: HttpDataExportItemsAsExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<AgravityInfoResponse>; public httpDataExportItemsAsExcel( requestParameters?: HttpDataExportItemsAsExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpResponse<AgravityInfoResponse>>; public httpDataExportItemsAsExcel( requestParameters?: HttpDataExportItemsAsExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpEvent<AgravityInfoResponse>>; public httpDataExportItemsAsExcel( requestParameters?: HttpDataExportItemsAsExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<any> { const filter = requestParameters?.filter; let localVarQueryParameters = new HttpParams({ encoder: this.encoder }); if (filter !== undefined && filter !== null) { localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, <any>filter, 'filter'); } let localVarHeaders = this.defaultHeaders; let localVarCredential: string | undefined; // authentication (msal_auth) required localVarCredential = this.configuration.lookupCredential('msal_auth'); if (localVarCredential) { localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); } let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; if (localVarHttpHeaderAcceptSelected === undefined) { // to determine the Accept header const httpHeaderAccepts: string[] = ['application/json']; localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); } if (localVarHttpHeaderAcceptSelected !== undefined) { localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); } let localVarHttpContext: HttpContext | undefined = options && options.context; if (localVarHttpContext === undefined) { localVarHttpContext = new HttpContext(); } let localVarTransferCache: boolean | undefined = options && options.transferCache; if (localVarTransferCache === undefined) { localVarTransferCache = true; } let responseType_: 'text' | 'json' | 'blob' = 'json'; if (localVarHttpHeaderAcceptSelected) { if (localVarHttpHeaderAcceptSelected.startsWith('text')) { responseType_ = 'text'; } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { responseType_ = 'json'; } else { responseType_ = 'blob'; } } let localVarPath = `/data/excel/export`; return this.httpClient.request<AgravityInfoResponse>('get', `${this.configuration.basePath}${localVarPath}`, { context: localVarHttpContext, params: localVarQueryParameters, responseType: <any>responseType_, withCredentials: this.configuration.withCredentials, headers: localVarHeaders, observe: observe, transferCache: localVarTransferCache, reportProgress: reportProgress }); } /** * This endpoint creates an excel export of translations of db entities * @param requestParameters * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ public httpDataExportTranslationsAsExcel( requestParameters?: HttpDataExportTranslationsAsExcelRequestParams, observe?: 'body', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<ExcelExportTableEntity>; public httpDataExportTranslationsAsExcel( requestParameters?: HttpDataExportTranslationsAsExcelRequestParams, observe?: 'response', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpResponse<ExcelExportTableEntity>>; public httpDataExportTranslationsAsExcel( requestParameters?: HttpDataExportTranslationsAsExcelRequestParams, observe?: 'events', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpEvent<ExcelExportTableEntity>>; public httpDataExportTranslationsAsExcel( requestParameters?: HttpDataExportTranslationsAsExcelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<any> { const filter = requestParameters?.filter; let localVarQueryParameters = new HttpParams({ encoder: this.encoder }); if (filter !== undefined && filter !== null) { localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, <any>filter, 'filter'); } let localVarHeaders = this.defaultHeaders; let localVarCredential: string | undefined; // authentication (msal_auth) required localVarCredential = this.configuration.lookupCredential('msal_auth'); if (localVarCredential) { localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); } let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; if (localVarHttpHeaderAcceptSelected === undefined) { // to determine the Accept header const httpHeaderAccepts: string[] = ['application/json']; localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); } if (localVarHttpHeaderAcceptSelected !== undefined) { localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); } let localVarHttpContext: HttpContext | undefined = options && options.context; if (localVarHttpContext === undefined) { localVarHttpContext = new HttpContext(); } let localVarTransferCache: boolean | undefined = options && options.transferCache; if (localVarTransferCache === undefined) { localVarTransferCache = true; } let responseType_: 'text' | 'json' | 'blob' = 'json'; if (localVarHttpHeaderAcceptSelected) { if (localVarHttpHeaderAcceptSelected.startsWith('text')) { responseType_ = 'text'; } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { responseType_ = 'json'; } else { responseType_ = 'blob'; } } let localVarPath = `/data/excel/export/translations`; return this.httpClient.request<ExcelExportTableEntity>('get', `${this.configuration.basePath}${localVarPath}`, { context: localVarHttpContext, params: localVarQueryParameters, responseType: <any>responseType_, withCredentials: this.configuration.withCredentials, headers: localVarHeaders, observe: observe, transferCache: localVarTransferCache, reportProgress: reportProgress }); } /** * This endpoint retrieves the status and if populated the url to the excel export * @param requestParameters * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ public httpDataExportTranslationsCancel( requestParameters?: HttpDataExportTranslationsCancelRequestParams, observe?: 'body', reportProgress?: boolean, options?: { httpHeaderAccept?: undefined; context?: HttpContext; transferCache?: boolean } ): Observable<any>; public httpDataExportTranslationsCancel( requestParameters?: HttpDataExportTranslationsCancelRequestParams, observe?: 'response', reportProgress?: boolean, options?: { httpHeaderAccept?: undefined; context?: HttpContext; transferCache?: boolean } ): Observable<HttpResponse<any>>; public httpDataExportTranslationsCancel( requestParameters?: HttpDataExportTranslationsCancelRequestParams, observe?: 'events', reportProgress?: boolean, options?: { httpHeaderAccept?: undefined; context?: HttpContext; transferCache?: boolean } ): Observable<HttpEvent<any>>; public httpDataExportTranslationsCancel( requestParameters?: HttpDataExportTranslationsCancelRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: { httpHeaderAccept?: undefined; context?: HttpContext; transferCache?: boolean } ): Observable<any> { const id = requestParameters?.id; if (id === null || id === undefined) { throw new Error('Required parameter id was null or undefined when calling httpDataExportTranslationsCancel.'); } let localVarHeaders = this.defaultHeaders; let localVarCredential: string | undefined; // authentication (msal_auth) required localVarCredential = this.configuration.lookupCredential('msal_auth'); if (localVarCredential) { localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); } let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; if (localVarHttpHeaderAcceptSelected === undefined) { // to determine the Accept header const httpHeaderAccepts: string[] = []; localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); } if (localVarHttpHeaderAcceptSelected !== undefined) { localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); } let localVarHttpContext: HttpContext | undefined = options && options.context; if (localVarHttpContext === undefined) { localVarHttpContext = new HttpContext(); } let localVarTransferCache: boolean | undefined = options && options.transferCache; if (localVarTransferCache === undefined) { localVarTransferCache = true; } let responseType_: 'text' | 'json' | 'blob' = 'json'; if (localVarHttpHeaderAcceptSelected) { if (localVarHttpHeaderAcceptSelected.startsWith('text')) { responseType_ = 'text'; } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { responseType_ = 'json'; } else { responseType_ = 'blob'; } } let localVarPath = `/data/excel/export/translations/${this.configuration.encodeParam({ name: 'id', value: id, in: 'path', style: 'simple', explode: false, dataType: 'string', dataFormat: undefined })}`; return this.httpClient.request<any>('delete', `${this.configuration.basePath}${localVarPath}`, { context: localVarHttpContext, responseType: <any>responseType_, withCredentials: this.configuration.withCredentials, headers: localVarHeaders, observe: observe, transferCache: localVarTransferCache, reportProgress: reportProgress }); } /** * This endpoint retrieves the status and if populated the url to the excel export. * @param requestParameters * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ public httpDataExportTranslationsCheckStatus( requestParameters?: HttpDataExportTranslationsCheckStatusRequestParams, observe?: 'body', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<ExcelExportTableEntity>; public httpDataExportTranslationsCheckStatus( requestParameters?: HttpDataExportTranslationsCheckStatusRequestParams, observe?: 'response', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpResponse<ExcelExportTableEntity>>; public httpDataExportTranslationsCheckStatus( requestParameters?: HttpDataExportTranslationsCheckStatusRequestParams, observe?: 'events', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpEvent<ExcelExportTableEntity>>; public httpDataExportTranslationsCheckStatus( requestParameters?: HttpDataExportTranslationsCheckStatusRequestParams, observe: any = 'body', reportProgress: boolean = false, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<any> { const id = requestParameters?.id; if (id === null || id === undefined) { throw new Error('Required parameter id was null or undefined when calling httpDataExportTranslationsCheckStatus.'); } let localVarHeaders = this.defaultHeaders; let localVarCredential: string | undefined; // authentication (msal_auth) required localVarCredential = this.configuration.lookupCredential('msal_auth'); if (localVarCredential) { localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); } let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; if (localVarHttpHeaderAcceptSelected === undefined) { // to determine the Accept header const httpHeaderAccepts: string[] = ['application/json']; localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); } if (localVarHttpHeaderAcceptSelected !== undefined) { localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); } let localVarHttpContext: HttpContext | undefined = options && options.context; if (localVarHttpContext === undefined) { localVarHttpContext = new HttpContext(); } let localVarTransferCache: boolean | undefined = options && options.transferCache; if (localVarTransferCache === undefined) { localVarTransferCache = true; } let responseType_: 'text' | 'json' | 'blob' = 'json'; if (localVarHttpHeaderAcceptSelected) { if (localVarHttpHeaderAcceptSelected.startsWith('text')) { responseType_ = 'text'; } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { responseType_ = 'json'; } else { responseType_ = 'blob'; } } let localVarPath = `/data/excel/export/translations/${this.configuration.encodeParam({ name: 'id', value: id, in: 'path', style: 'simple', explode: false, dataType: 'string', dataFormat: undefined })}`; return this.httpClient.request<ExcelExportTableEntity>('get', `${this.configuration.basePath}${localVarPath}`, { context: localVarHttpContext, responseType: <any>responseType_, withCredentials: this.configuration.withCredentials, headers: localVarHeaders, observe: observe, transferCache: localVarTransferCache, reportProgress: reportProgress }); } /** * This endpoint puts a excel file on the translations import blob container * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ public httpDataImportTranslationsAsExcel( observe?: 'body', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<AgravityInfoResponse>; public httpDataImportTranslationsAsExcel( observe?: 'response', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpResponse<AgravityInfoResponse>>; public httpDataImportTranslationsAsExcel( observe?: 'events', reportProgress?: boolean, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<HttpEvent<AgravityInfoResponse>>; public httpDataImportTranslationsAsExcel( observe: any = 'body', reportProgress: boolean = false, options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean } ): Observable<any> { let localVarHeaders = this.defaultHeaders; let localVarCredential: string | undefined; // authentication (msal_auth) required localVarCredential = this.configuration.lookupCredential('msal_auth'); if (localVarCredential) { localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); } let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; if (localVarHttpHeaderAcceptSelected === undefined) { // to determine the Accept header const httpHeaderAccepts: string[] = ['application/json']; localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); } if (localVarHttpHeaderAcceptSelected !== undefined) { localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); } let localVarHttpContext: HttpContext | undefined = options && options.context; if (localVarHttpContext === undefined) { localVarHttpContext = new HttpContext(); } let localVarTransferCache: boolean | undefined = options && options.transferCache; if (localVarTransferCache === undefined) { localVarTransferCache = true; } let responseType_: 'text' | 'json' | 'blob' = 'json'; if (localVarHttpHeaderAcceptSelected) { if (localVarHttpHeaderAcceptSelected.startsWith('text')) { responseType_ = 'text'; } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { responseType_ = 'json'; } else { responseType_ = 'blob'; } } let localVarPath = `/data/excel/import/translations`; return this.httpClient.request<AgravityInfoResponse>('post', `${this.configuration.basePath}${localVarPath}`, { context: localVarHttpContext, responseType: <any>responseType_, withCredentials: this.configuration.withCredentials, headers: localVarHeaders, observe: observe, transferCache: localVarTransferCache, reportProgress: reportProgress }); } }