# ☢️ Ядро
Вот мы и дошли до ядра...
# И так ядро что это такое?
Ядро - это главный и единственный путь доступа этакий entrypoint
для доступа в экосистему Handy.
# Главные части платформы
- Сервисы (Datawarehouse, UTMURL, и т.д.)
- Доверенные клиенты (Боты)
- Пользователи (Обычные клиенты)
- Компании
# Начало Работы локально
# GraphQL
# Вот подборка ресурсов для изучения технологии
# GraphQL Playground
# Авторизация
Мы используем Firebase Authentication для авторизации пользователей.
# Авторизация нативных компонентов
Вам понадобятся токены доступа для запроса авторизации у Firebase. За этим можно обратится к Михаилу.
# Пример создания клиента ядра в Javascript (Web/Node.js)
import { ApolloClient } from "apollo-client";
import { InMemoryCache } from "apollo-cache-inmemory";
import { HttpLink } from "apollo-link-http";
import * as firebase from "firebase/app";
import "firebase/auth";
// Or using `require`
// const firebase = require("firebase");
// require("firebase/auth");
// TODO: Replace the following with your app's Firebase project configuration
const firebaseConfig = {
// ...
};
// TODO: Do User Auth
// https://firebase.google.com/docs/auth/web/password-auth
// https://firebase.google.com/docs/auth/web/google-signin
// https://firebase.google.com/docs/auth/web/phone-auth
// https://firebase.google.com/docs/auth/web/facebook-login
// https://firebase.google.com/docs/auth/web/apple
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
const getToken = async () => await firebase.auth().currentUser.getIdToken(true);
const cache = new InMemoryCache();
const link = new HttpLink({
uri: "https://secureplatform.handy.ai/graphql",
});
const authLink = setContext(async (_, { headers }) => {
return {
headers: {
...headers,
token: await getToken(),
},
};
});
const client = new ApolloClient({
// Provide required constructor fields
cache: cache,
link: authLink.concat(link),
name: "some-client-name",
version: "1.3",
queryDeduplication: false,
defaultOptions: {
watchQuery: {
fetchPolicy: "no-cors",
},
},
});
# Документация запросов к ядру
Документация есть в самом Playground
# Где указывать поля??!
Ну например мутация myCompany
, как указать компанию?
Поля связанные с пользователем или компанией подтягиваются автоматически блягодаря авторизации.