Vodopad API types to use together with openapi-fetch
npm install @fluencelabs/vodopad-apiIn https://github.com/fluencelabs/vodopad root directory
``shell`
just start
Generate JWT on http://demo.web3auth.io
After login, see the JWT Token in View User Info under idToken
`json`
{
"type": "module",
"scripts": {
"start": "tsx main.ts"
},
"devDependencies": {
"@fluencelabs/vodopad-api": "^0.0.3-files-2",
"openapi-fetch": "^0.13.0",
"tsx": "^4.19.2"
}
}
`typescript
import type { paths } from '@fluencelabs/vodopad-api'
import createClient from 'openapi-fetch'
const client = createClient
let jwt = eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlRZT2dnXy01RU9FYmxhWS1WVlJZcVZhREFncHRuZktWNDUzNU1aUEMwdzAifQ.eyJpYXQiOjE3MzIxNDAxNTMsImF1ZCI6IkJOSV9wWlpwb0g0dHF6YkRETUt3ZkxPV3VqVGlmX2tlazRoOVFFTjI3MUd1MEpoZVlEUEVVSE5LTWw1Tm53NVBHT2pLLVNPeHAxUnBVZEc5VEp1Zk1aayIsIm5vbmNlIjoiMDNjYzE3ZWEwMzgxMGQ5YzMzZWJjYmJkNzBmNmU2YjI2MmNjNjIyNjk5MmVlMjEzYmE3NDJiYmY1MjliY2IxNDdiIiwiaXNzIjoiaHR0cHM6Ly9hcGktYXV0aC53ZWIzYXV0aC5pbyIsIndhbGxldHMiOlt7InB1YmxpY19rZXkiOiIwM2E5Y2RjMzJmNDNhZmFkZWNiNTc0Y2Q1M2ZmNzc5YTA3OTNkMjQ2ZTJlMTM1Nzg4NzUwYTQ4ZmI5OTdjMmFkZWYiLCJ0eXBlIjoid2ViM2F1dGhfYXBwX2tleSIsImN1cnZlIjoic2VjcDI1NmsxIn0seyJwdWJsaWNfa2V5IjoiMDNlZGU0OTNiZTdjODZhZjA2MDAyZjYxNmI1ZjUwMGExNzEzYjM2YmVmZDlhOTk1NDJiODhiNjZjOGJkMWU4OTc3IiwidHlwZSI6IndlYjNhdXRoX3RocmVzaG9sZF9rZXkiLCJjdXJ2ZSI6InNlY3AyNTZrMSJ9XSwiZW1haWwiOiIweGR4ZHlAZ21haWwuY29tIiwibmFtZSI6ImZvbGV4IiwicHJvZmlsZUltYWdlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSWpvZ0ZsYW56TFhRbGxZX21obHotcEE0YW1LUGNDaHJuOFRfSW1McGNIeHpQdHU4ST1zOTYtYyIsInZlcmlmaWVyIjoid2ViM2F1dGgiLCJ2ZXJpZmllcklkIjoiMHhkeGR5QGdtYWlsLmNvbSIsImFnZ3JlZ2F0ZVZlcmlmaWVyIjoid2ViM2F1dGgtZ29vZ2xlLXNhcHBoaXJlIiwiZXhwIjoxNzMyMjI2NTUzfQ.wTKjl-60H2_nGd8dJ3ORfA6K17FppVFXjGSUa4k8G3YkfKu_qwcEJ4fO7Lx7VZndb6AyQRqW65se6XQdogiupg
let user_response = await client.POST('/users', {
body: {
walletPublicKey: '03a9cdc32f43afadecb574cd53ff779a0793d246e2e135788750a48fb997c2adef',
typeOfLogin: 'google'
},
params: {
header: {
Authorization: Bearer ${jwt},
},
},
})
let user = user_response.data
console.log('user:', user)
// the same as just using fetch, but typechecked
let api_key_response = await client.POST('/api_keys/jwt', {
body: {
scopes: [],
},
params: {
header: {
Authorization: Bearer ${jwt},
},
},
})
let apiKey = api_key_response.data?.apiKey
console.log('API key:', apiKey)
``