File

src/app/_services/trafics/transaction/transaction.service.ts

Index

Properties
Methods

Constructor

constructor(httpClient: HttpClient)
Parameters :
Name Type Optional
httpClient HttpClient No

Methods

create
create(transaction: ITransaction)
Parameters :
Name Type Optional
transaction ITransaction No
delete
delete(transaction_id: number)
Parameters :
Name Type Optional
transaction_id number No
Returns : Observable<void>
Private errorHandler
errorHandler(error: any)
Parameters :
Name Type Optional
error any No
Returns : any
find
find(transaction_id: number)
Parameters :
Name Type Optional
transaction_id number No
getAll
getAll()
getDataTable
getDataTable()
update
update(transaction_id: number, transaction: ITransaction)
Parameters :
Name Type Optional
transaction_id number No
transaction ITransaction No

Properties

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));
  }
}

results matching ""

    No results matching ""