Merge branch 'dev' into feature/93-user_endpoints
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/pr Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/pr Build is passing
				
			This commit is contained in:
		@@ -1,5 +1,6 @@
 | 
			
		||||
import { IsInt, IsNotEmpty, IsPositive } from "class-validator";
 | 
			
		||||
import { ChildEntity, Column, ManyToOne } from "typeorm";
 | 
			
		||||
import { ResponseDistanceDonation } from '../responses/ResponseDistanceDonation';
 | 
			
		||||
import { Donation } from "./Donation";
 | 
			
		||||
import { Runner } from "./Runner";
 | 
			
		||||
 | 
			
		||||
@@ -31,7 +32,7 @@ export class DistanceDonation extends Donation {
 | 
			
		||||
   * Get's calculated from the runner's distance ran and the amount donated per kilometer.
 | 
			
		||||
   */
 | 
			
		||||
  public get amount(): number {
 | 
			
		||||
    let calculatedAmount = -1;
 | 
			
		||||
    let calculatedAmount = 0;
 | 
			
		||||
    try {
 | 
			
		||||
      calculatedAmount = this.amountPerDistance * (this.runner.distance / 1000);
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
@@ -43,7 +44,7 @@ export class DistanceDonation extends Donation {
 | 
			
		||||
  /**
 | 
			
		||||
   * Turns this entity into it's response class.
 | 
			
		||||
   */
 | 
			
		||||
  public toResponse() {
 | 
			
		||||
    return new Error("NotImplemented");
 | 
			
		||||
  public toResponse(): ResponseDistanceDonation {
 | 
			
		||||
    return new ResponseDistanceDonation(this);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ import {
 | 
			
		||||
  IsNotEmpty
 | 
			
		||||
} from "class-validator";
 | 
			
		||||
import { Entity, ManyToOne, PrimaryGeneratedColumn, TableInheritance } from "typeorm";
 | 
			
		||||
import { ResponseDonation } from '../responses/ResponseDonation';
 | 
			
		||||
import { Donor } from './Donor';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -31,12 +32,13 @@ export abstract class Donation {
 | 
			
		||||
   * The donation's amount in cents (or whatever your currency's smallest unit is.).
 | 
			
		||||
   * The exact implementation may differ for each type of donation.
 | 
			
		||||
   */
 | 
			
		||||
  abstract amount: number;
 | 
			
		||||
  public abstract get amount(): number;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Turns this entity into it's response class.
 | 
			
		||||
   */
 | 
			
		||||
  public toResponse() {
 | 
			
		||||
    return new Error("NotImplemented");
 | 
			
		||||
  public toResponse(): ResponseDonation {
 | 
			
		||||
    return new ResponseDonation(this);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { IsBoolean } from "class-validator";
 | 
			
		||||
import { IsBoolean, IsInt } from "class-validator";
 | 
			
		||||
import { ChildEntity, Column, OneToMany } from "typeorm";
 | 
			
		||||
import { ResponseDonor } from '../responses/ResponseDonor';
 | 
			
		||||
import { Donation } from './Donation';
 | 
			
		||||
@@ -24,6 +24,15 @@ export class Donor extends Participant {
 | 
			
		||||
  @OneToMany(() => Donation, donation => donation.donor, { nullable: true })
 | 
			
		||||
  donations: Donation[];
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Returns the total donations of a donor based on his linked donations.
 | 
			
		||||
  */
 | 
			
		||||
  @IsInt()
 | 
			
		||||
  public get donationAmount(): number {
 | 
			
		||||
    if (!this.donations) { return 0; }
 | 
			
		||||
    return this.donations.reduce((sum, current) => sum + current.amount, 0);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Turns this entity into it's response class.
 | 
			
		||||
   */
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
import { IsInt, IsPositive } from "class-validator";
 | 
			
		||||
import { ChildEntity, Column } from "typeorm";
 | 
			
		||||
import { ResponseDonation } from '../responses/ResponseDonation';
 | 
			
		||||
import { Donation } from "./Donation";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -11,16 +12,33 @@ export class FixedDonation extends Donation {
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * The donation's amount in cents (or whatever your currency's smallest unit is.).
 | 
			
		||||
   * This is the "real" value used by fixed donations.
 | 
			
		||||
   */
 | 
			
		||||
  @Column()
 | 
			
		||||
  @IsInt()
 | 
			
		||||
  @IsPositive()
 | 
			
		||||
  amount: number;
 | 
			
		||||
  private _amount: number;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * The donation's amount in cents (or whatever your currency's smallest unit is.).
 | 
			
		||||
   */
 | 
			
		||||
  @IsInt()
 | 
			
		||||
  @IsPositive()
 | 
			
		||||
  public get amount(): number {
 | 
			
		||||
    return this._amount;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * The donation's amount in cents (or whatever your currency's smallest unit is.).
 | 
			
		||||
   */
 | 
			
		||||
  public set amount(value: number) {
 | 
			
		||||
    this._amount = value;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Turns this entity into it's response class.
 | 
			
		||||
   */
 | 
			
		||||
  public toResponse() {
 | 
			
		||||
    return new Error("NotImplemented");
 | 
			
		||||
  public toResponse(): ResponseDonation {
 | 
			
		||||
    return new ResponseDonation(this);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user