0.8.15 • Published 4 days ago

rsl-api-10-2 v0.8.15

Weekly downloads
-
License
-
Repository
github
Last release
4 days ago

Getting started

Introduction

The rsl-api package is here to assist you in the development of your JavaScript project, providing all the necessary queries, mutations, and types for your project.

Installation

npm install rsl-api

ApolloClient Initialization

Before starting, make sure you correctly initialize your apollo client with the corresponding HttpOptions. This package gives you a simple and efficient way to define your Apollo Client.

For a advanced ApolloClient, please refer to the Apollo Graphql Documentation.

export const initClient = (option: HttpOptions, responseLoggerHandler?: (operation: Operation) => void) : ApolloClient<NormalizedCacheObject>
Parameter valueTypeDescriptionDefault value
httpOptionsHttpOptionsRequired - ApolloClient HttpOptions
responseLoggerHandler(operation: Operation) => voidOptional - Response Logger Handlerundefined

The responseLoggerHandler parameter allow you to handle all executed GraphQL operations.

HttpOptions Configuration

This package also gives you a easy way to get basics HttpOptions if you don't know what to put in.

export const getBaseHttpOptions = (uri: string): HttpOptions => {
  return {
    uri: uri,
    headers: {
      "Content-Type": "application/json",
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Credentials": true,
    },
  };
};

Example of usage using ReactJS

// apollo/client Package
import { ApolloProvider, useQuery, Operation } from "@apollo/client";

// rsl-api Package
import { initClient, getBaseHttpOptions } from "rsl-api";
import { getCartQuery } from "rsl-api/lib/queries";

// Custom Hooks
import { useSession } from "@hooks";

// Apollo Client HttpOptions
const httpOptions = {
  uri: "https://yourdomain.com/rsl/graphql",
  headers: {
    "Content-Type": "application/json;charset=utf-8",
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Credentials": true,
  },
};
//or
//const httpOptions = getBaseHttpOptions("https://yourdomain.com/rsl/graphql");

// Apollo Client
const responseLoggerHandler = (operation) => {
  //if url parameter "debug" equal "true", then display the operation in the console
  new URLSearchParams(window.location.search).get("debug") === "true" &&
    console.info(operation);
};

const client = initClient(httpOptions, responseLoggerHandler);

<ApolloProvider client={client}>
  <MyCartComponent />
</ApolloProvider>;

const MyCartComponent = () => {
  const { session } = useSession();
  const { data, error, loading } = useQuery(getCartQuery(), {
    variables: { session: { name: session } },
  });

  if (error) return <div>{error.message}</div>;

  return loading ? (
    <div>Query loading...</div>
  ) : (
    <div>
      {data?.getCart?.cart?.reservations?.map((r, i) => {
        return <div>...</div>;
      })}
    </div>
  );
};

Errors

ErrorTypeSolution
CORSserverEnable CORS from our Infrastructure department
0.8.15

4 days ago

0.7.60

2 months ago

0.7.48

2 months ago

0.6.77

4 months ago

0.6.46

4 months ago

0.6.23

5 months ago

0.5.93

6 months ago

0.5.82

6 months ago

0.5.58

7 months ago

0.6.16

5 months ago

0.6.3

6 months ago

0.4.96

8 months ago

0.5.25

7 months ago

0.4.37

9 months ago

0.4.5

9 months ago

0.3.92

9 months ago

0.0.394

9 months ago

0.0.393

9 months ago

0.0.392

9 months ago

0.0.387

10 months ago

0.0.383

10 months ago