mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-07 05:55:44 +01:00
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:
committed by
GitHub
parent
2cd46ce8a0
commit
e1239aff92
@@ -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`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user