UNPKG

@symanticreative/vendure-admin-client

Version:

A TypeScript GraphQL client for Vendure Admin API to create custom dashboards

83 lines 3.29 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { Injectable } from '../core/di/injectable.decorator'; import { LOGIN_MUTATION, LOGOUT_MUTATION, GET_CURRENT_USER } from '../graphql/auth.queries'; import { gql } from '@apollo/client'; /** * Repository for authentication operations */ let AuthRepository = class AuthRepository { constructor(graphqlClient) { this.graphqlClient = graphqlClient; } /** * Login to the Vendure Admin API * @param credentials - Authentication credentials * @returns Promise resolving to auth response */ async login(credentials) { try { const { data } = await this.graphqlClient.getApolloClient().mutate({ mutation: gql(LOGIN_MUTATION), variables: { username: credentials.email, password: credentials.password, rememberMe: credentials.rememberMe || false } }); if (data.login.errorCode) { throw new Error(`Login failed: ${data.login.message}`); } // Mock response until proper JWT handling is implemented const authResponse = { token: `mock-token-${Date.now()}`, refreshToken: credentials.rememberMe ? `mock-refresh-token-${Date.now()}` : undefined, expires: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(), user: data.login }; // Update tokens in GraphQL client this.graphqlClient.setAuthToken(authResponse.token); if (authResponse.refreshToken) { this.graphqlClient.setRefreshToken(authResponse.refreshToken); } return authResponse; } catch (error) { console.error('Login error:', error); throw error; } } /** * Logout from the Vendure Admin API * @returns Promise resolving to void */ async logout() { if (this.graphqlClient.isAuthenticated()) { try { await this.graphqlClient.mutate(LOGOUT_MUTATION); } catch (error) { console.error('Logout error:', error); } } this.graphqlClient.setAuthToken(''); this.graphqlClient.setRefreshToken(''); } /** * Get the current authenticated user * @returns Promise resolving to current user */ async getCurrentUser() { const result = await this.graphqlClient.query(GET_CURRENT_USER); return result.me; } }; AuthRepository = __decorate([ Injectable() ], AuthRepository); export { AuthRepository }; //# sourceMappingURL=auth.repository.js.map