Přeskočit na hlavní obsah

Megio API

Megio API je JavaScript & TypeScript knihovna, kterou lze použít pro REST API komunikaci s Megio panelem. Knihovna obsahuje veškeré potřebné metody - autentizace, vytváření dat, čtení, úprava, mazání, práce s oprávněními, apod. Striktní typovost této knihovny vám poskytne výbornou podporu v IDE. Díky této podpoře nebudete muset zkoumat celé REST API Megio panelu, ale metody se vám budou samy nabízet přímo při psaní kódu.

Instalace

yarn add megio-api

Příklad použití

import { megio, setup } from 'megio-api'

// Nastavení endpointu a error handleru
setup('http://localhost:8090/', errorHandler)

// Přepsání výchozího error handleru, jenž se volá při
// chybě v HTTP odpovědi (status < 200 || status > 299)
function errorHandler(response: Response, errors: string[]) {
console.log(response.status, errors)
}

// Přihlášení uživatele pomocí emailu
const resp = await megio.auth.loginByEmail('jz@strategio.dev', 'Test1234', 'user')
console.log(resp) // Promise<IRespLoginByEmail>

Typy pro TS

import type { ... } from 'megio-api/types'
import type { ... } from 'megio-api/types/auth'
import type { ... } from 'megio-api/types/resources'
import type { ... } from 'megio-api/types/collections'

Metody pro práci s API

import { megio } from 'megio-api'

// Pošle request na Megio API
const resp = await megio.fetch(customUri, customJsonBody)

// Přihlášení a odhlášení
const resp = await megio.auth.loginByEmail(...params)
const resp = await megio.auth.revokeToken(...params)

// Práce s kolekcemi
const resp = await megio.collections.create(...params)
const resp = await megio.collections.update(...params)
const resp = await megio.collections.read(...params)
const resp = await megio.collections.readAll(...params)
const resp = await megio.collections.delete(...params)

// Extra metody pro kolekce
const resp = await megio.collectionsExtra.navbar(...params)
const resp = await megio.collectionsExtra.creatingForm(...params)
const resp = await megio.collectionsExtra.updatingForm(...params)

// Správa oprávnění a resources
const resp = await megio.resources.readAll(...params)
const resp = await megio.resources.update(...params)
const resp = await megio.resources.createRole(...params)
const resp = await megio.resources.updateRole(...params)
const resp = await megio.resources.removeRole(...params)

Metody pro práci s uživatelem

// Uživatel
megio.auth.logout() // Odhlášení
megio.auth.user.get() // Informace o přihlášeném uživateli

// Role
megio.auth.user.getRoles()
megio.auth.user.hasRole('role')

// Resources
megio.auth.user.getResources()
megio.auth.user.hasResource('res-x')
megio.auth.user.hasAllOfResources(['res-x', 'res-y'])
megio.auth.user.hasAnyOfResources(['res-x', 'res-y'])

Registrace storage adaptéru

import { megio, setup } from 'megio-api'
import type { IStorage } from 'megio-api/types'

const storageData = new Map<string, string>()

const storage: IStorage = {
getItem: (key: string) => storageData.get(key) || null,
setItem: (key: string, value: string) => storageData.set(key, value),
removeItem: (key: string) => storageData.delete(key)
}

setup('http://localhost:8090/', () => {}, storage)

// Po přihlášení se token uloží do definovaného storage
const resp = await megio.auth.loginByEmail('jz@strategio.dev', 'Test1234', 'user')