implement react-query for edge-cases (#1711)

When initially implementing react-query, we focussed on core features. This pull request now replaces the remaining apiClient usages in ui-components and ui-webapp with react-query hooks.
This commit is contained in:
Konstantin Schaper
2021-06-28 13:19:03 +02:00
committed by GitHub
parent 2cd46ce8a0
commit e1239aff92
50 changed files with 1101 additions and 1116 deletions

View File

@@ -21,14 +21,32 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
import { HalRepresentation } from "@scm-manager/ui-types";
import { HalRepresentation, Link } from "@scm-manager/ui-types";
import { MissingLinkError } from "./errors";
export const requiredLink = (object: HalRepresentation, name: string) => {
export const requiredLink = (object: HalRepresentation, name: string, subName?: string): string => {
const link = object._links[name];
if (!link) {
throw new MissingLinkError(`could not find link with name ${name}`);
}
if (Array.isArray(link)) {
if (subName) {
const subLink = link.find((l: Link) => l.name === subName);
if (subLink) {
return subLink.href;
}
throw new Error(`could not return href, sub-link ${subName} in ${name} does not exist`);
}
throw new Error(`could not return href, link ${name} is a multi link`);
}
return link.href;
};
export const objectLink = (object: HalRepresentation, name: string) => {
const link = object._links[name];
if (!link) {
return null;
}
if (Array.isArray(link)) {
throw new Error(`could not return href, link ${name} is a multi link`);
}