gooddata-js v13.5.0

File: src/ldm.ts

                        // (C) 2020 GoodData Corporation
                        import { XhrModule } from "./xhr";
                        
                        export class LdmModule {
                            constructor(private xhr: XhrModule) {}
                        
                            /**
                             * Get closest connecting attributes in the LDM by calling the "attributeupperbound" endpoint
                             *
                             * @method getCommonAttributes
                             * @param {String} projectId A project identifier
                             * @param {Array} attributeUris Input list of attribute URIs
                             * @return {Promise} Resolves with result list of attribute URIs
                             */
                            public getCommonAttributes(projectId: string, attributeUris: ReadonlyArray<string>): Promise<string[]> {
                                return this.xhr
                                    .post(`/gdc/md/${projectId}/ldm/attributeupperbound`, {
                                        body: {
                                            attributeUpperBounds: {
                                                attributes: attributeUris,
                                            },
                                        },
                                    })
                                    .then(response => response.getData())
                                    .then(data => {
                                        if (data.attributeUpperBoundsResponse) {
                                            return data.attributeUpperBoundsResponse.upperbounds;
                                        }
                                    });
                            }
                        }