Skip to content
Snippets Groups Projects
player.service.ts 1.79 KiB
Newer Older
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {Observable} from 'rxjs';
import {CreatePlayer} from '../models/create-player';
import {Player} from '../models/player';
import {Team} from '../models/team';
import {RecruitNewPlayer} from '../models/recruit-new-player';
import {RecruitVeteran} from '../models/recruit-veteran';
Tomas Madeja's avatar
Tomas Madeja committed

@Injectable({
  providedIn: 'root'
})
export class PlayerService {

  getAllFreeUrl: string = 'http://localhost:8080/pa165/api/public/player/free';
  getAllUrl: string = 'http://localhost:8080/pa165/api/public/player/all';
  getForTeamUrl: string = 'http://localhost:8080/pa165/api/public/player/team/'
  createNewUrl: string = 'http://localhost:8080/pa165/api/manage/team/player/recruit';
  recruitUrl: string = 'http://localhost:8080/pa165/api/manage/team/player/transfer';
  fireUrl: string = 'http://localhost:8080/pa165/api/manage/team/player/fire/';
  constructor(private http: HttpClient) {
  }
  getPlayers(): Observable<Player[]> {
    return this.http.get<Player[]>(this.getAllUrl);
  getFreePlayers(): Observable<Player[]> {
    return this.http.get<Player[]>(this.getAllFreeUrl);
  getPlayersForTeam(id: number): Observable<Player[]> {
    return this.http.get<Player[]>(this.getForTeamUrl + id);
Tomas Madeja's avatar
Tomas Madeja committed
  }
  recruitPlayer(player: CreatePlayer, team: Team): void {
    let newPlayer: RecruitNewPlayer = {name: player.name, teamId: team.id};
    this.http.post<RecruitNewPlayer>(this.createNewUrl, newPlayer).subscribe();
  recruitVeteranPlayer(player: Player, team: Team): void {
    let newPlayer: RecruitVeteran = {playerId: player.id, teamId: team.id};
    this.http.post<RecruitVeteran>(this.recruitUrl, newPlayer).subscribe();
  firePlayer(id: number): void {
    this.http.delete(this.fireUrl + id).subscribe();
Tomas Madeja's avatar
Tomas Madeja committed
}