Files
InvoiceShelf/resources/scripts-v2/api/services/auth.service.ts
Darko Gjorgjijoski a46cca5cd8 Complete scripts-v2 TypeScript migration — all imports resolved,
build passes

Create all missing components (modals, dropdowns, icons, tabs, mail
drivers, customer partials), fix all @/scripts/ imports to @v2/,
wire up vite entry point and blade template. 382 files, 48883 lines.

- 27 settings components: modals (tax, payment, custom field, note,
  category, role, exchange rate, unit, mail test), dropdowns (6),
  customization tabs (4), mail driver forms (4)
- 22 icon components: 5 utility icons, 4 dashboard icons, 13 editor
  toolbar icons with typed barrel export
- 3 customer components: info, chart placeholder, custom fields single
- Fixed usePopper composable, client/format-money import patterns
- Zero remaining @/scripts/ imports in scripts-v2/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 09:30:00 +02:00

82 lines
2.0 KiB
TypeScript

import { client } from '../client'
import { API } from '../endpoints'
import type { User } from '@v2/types/domain/user'
import type { ApiResponse } from '@v2/types/api'
export interface LoginPayload {
email: string
password: string
remember?: boolean
}
export interface LoginResponse {
token: string
user: User
}
export interface ForgotPasswordPayload {
email: string
}
export interface ResetPasswordPayload {
email: string
password: string
password_confirmation: string
token: string
}
export interface InvitationDetails {
email: string
company_name: string
invited_by: string
}
export interface RegisterWithInvitationPayload {
name: string
email: string
password: string
password_confirmation: string
token: string
}
export const authService = {
async refreshCsrfCookie(): Promise<void> {
await client.get(API.CSRF_COOKIE)
},
async login(payload: LoginPayload): Promise<ApiResponse<LoginResponse>> {
await client.get(API.CSRF_COOKIE)
const { data } = await client.post(API.LOGIN, payload)
return data
},
async logout(): Promise<void> {
await client.post(API.LOGOUT)
},
async forgotPassword(payload: ForgotPasswordPayload): Promise<ApiResponse<{ success: boolean }>> {
const { data } = await client.post(API.FORGOT_PASSWORD, payload)
return data
},
async resetPassword(payload: ResetPasswordPayload): Promise<ApiResponse<{ success: boolean }>> {
const { data } = await client.post(API.RESET_PASSWORD, payload)
return data
},
async check(): Promise<ApiResponse<{ success: boolean }>> {
const { data } = await client.get(API.AUTH_CHECK)
return data
},
async getInvitationDetails(token: string): Promise<ApiResponse<InvitationDetails>> {
const { data } = await client.get(`${API.INVITATION_DETAILS}/${token}/details`)
return data
},
async registerWithInvitation(payload: RegisterWithInvitationPayload): Promise<ApiResponse<User>> {
const { data } = await client.post(API.REGISTER_WITH_INVITATION, payload)
return data
},
}