import { Injectable } from '@angular/core'; import { HttpWrapperService } from './http-wrapper.service'; import { ApiResult } from '../resources/utility_models/api_result'; import { SoldTicketFilter, TournamentTicketSlice, UserTicketInterest, TournamentTicketInterest, TicketPaymentConfirmation, TicketGiftingPayload, TicketInvite } from 'tournee.businesslogic'; import { SoldTournamentTicket } from 'tournee.businesslogic'; @Injectable() export class TournamentTicketsService { constructor(private http: HttpWrapperService) {} register_interest(ticket: TournamentTicketSlice) { return this.http.securePut>('/tickets/interest', { tournament_id: ticket.tournament_id, ticket_id: ticket.ticket_id, slice_slug: ticket.slice_slug }); } my_interests() { return this.http.secureGet>>('/tickets/interest'); } my_purchased(filter: SoldTicketFilter) { return this.http.secureGet>>('/tickets/mine/' + filter.send_object()); } tournament_interests(tournament_id: string) { return this.http.secureGet>>('/tickets/interest/tournament/' + tournament_id); } cancel_interest(interest: UserTicketInterest) { return this.http.secureDelete>>('/tickets/interest/' + interest.id); } assign_interest(interest: TournamentTicketInterest, quantity: number, amount_paid: number) { return this.http.securePost('/tickets/from/interest', { quantity: quantity, amount_paid: amount_paid, ticket_id: interest.ticket_id, user_id : interest.attendee_id }); } apply_manual_payment(ticket: SoldTournamentTicket, amount_paid: number) { return this.http.securePost>>('/tickets/' + ticket.sold_ticket_id + '/manual', { amount_paid : amount_paid }); } begin_paypal_payment(quantity: number, amount: number, sold_ticket_id: string, ticket_id: string, slice_slug: string, url : string) { return this.http.securePost>('/tickets/payments/paypal', { quantity: quantity, amount: amount, sold_ticket_id: sold_ticket_id, ticket_id: ticket_id, slice_slug: slice_slug, url : url }); } confirm_paypal_payment(payment_id, token, payer_id) { return this.http.securePut>('/tickets/payments/paypal/confirm', { payment_id : payment_id, token: token, payer_id : payer_id }); } cancel_paypal_payment(token) { return this.http.secureDelete>('/tickets/payments/paypal/cancel/' + token); } get_sold_tickets(filter: SoldTicketFilter) { return this.http.secureGet>>('/tickets/sold/' + filter.send_object()); } manual_refund(ticket: SoldTournamentTicket) { return this.http.secureDelete('/tickets/sold/' + ticket.sold_ticket_id + '/manual'); } no_refund(ticket: SoldTournamentTicket) { return this.http.secureDelete('/tickets/sold/' + ticket.sold_ticket_id + '/none'); } gift_ticket(payload: TicketGiftingPayload) { return this.http.securePut('/tickets/gift', payload); } request_refund(sold_ticket_id: string) { return this.http.securePut('/tickets/sold/' + sold_ticket_id + '/refund'); } send_invite(tournament_id: string, data: TicketInvite) { return this.http.securePost>>('/tickets/invites/' + tournament_id, data); } get_invites(tournament_id: string) { return this.http.secureGet>>('/tickets/invites/' + tournament_id); } }