src/app/_services/trafics/transaction/transaction.service.ts
Properties |
|
Methods |
|
constructor(httpClient: HttpClient)
|
||||||
Parameters :
|
create | ||||||
create(transaction: ITransaction)
|
||||||
Parameters :
Returns :
Observable<ITransaction>
|
delete | ||||||
delete(transaction_id: number)
|
||||||
Parameters :
Returns :
Observable<void>
|
Private errorHandler | ||||||
errorHandler(error: any)
|
||||||
Parameters :
Returns :
any
|
find | ||||||
find(transaction_id: number)
|
||||||
Parameters :
Returns :
Observable<ITransaction>
|
getAll |
getAll()
|
Returns :
Observable<ITransaction[]>
|
getDataTable |
getDataTable()
|
Returns :
Observable<IMerchantData>
|
update | |||||||||
update(transaction_id: number, transaction: ITransaction)
|
|||||||||
Parameters :
Returns :
Observable<ITransaction>
|
httpOptions |
Type : object
|
Default value : {
headers: new HttpHeaders({
'Content-Type': 'application/json',
}),
}
|
Private HtUrl |
Default value : `${environment.apiBaseUrl}/api/tableau_bord/1`
|
Private TUrl |
Default value : `${environment.apiBaseUrl}/transactions`
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable, catchError, throwError } from 'rxjs';
import {
ITransaction,
IMerchantData,
} from 'src/app/_interfaces/trafics/transaction/transaction';
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root',
})
export class TransactionService {
private HtUrl = `${environment.apiBaseUrl}/api/tableau_bord/1`;
private TUrl = `${environment.apiBaseUrl}/transactions`;
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
}),
};
constructor(private httpClient: HttpClient) {}
// Get all transactions
getAll(): Observable<ITransaction[]> {
return this.httpClient
.get<ITransaction[]>(this.TUrl)
.pipe(catchError(this.errorHandler));
}
// Get merchant data for a table
getDataTable(): Observable<IMerchantData> {
return this.httpClient
.get<IMerchantData>(this.HtUrl)
.pipe(catchError(this.errorHandler));
}
// Create a new transaction
create(transaction: ITransaction): Observable<ITransaction> {
return this.httpClient
.post<ITransaction>(this.TUrl, transaction, this.httpOptions)
.pipe(catchError(this.errorHandler));
}
// Find a transaction by id
find(transaction_id: number): Observable<ITransaction> {
const url = `${this.TUrl}/${transaction_id}`;
return this.httpClient
.get<ITransaction>(url)
.pipe(catchError(this.errorHandler));
}
// Update an existing transaction
update(
transaction_id: number,
transaction: ITransaction
): Observable<ITransaction> {
const url = `${this.TUrl}/${transaction_id}`;
return this.httpClient
.put<ITransaction>(url, transaction, this.httpOptions)
.pipe(catchError(this.errorHandler));
}
// Delete a transaction
delete(transaction_id: number): Observable<void> {
const url = `${this.TUrl}/${transaction_id}`;
return this.httpClient
.delete<void>(url, this.httpOptions)
.pipe(catchError(this.errorHandler));
}
// Error handler
private errorHandler(error: any) {
let errorMessage = '';
if (error.error instanceof ErrorEvent) {
errorMessage = error.error.message;
} else {
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
}
return throwError(() => new Error(errorMessage));
}
}