feat(donations): Implement response type to indicate possible missing donor
This commit is contained in:
		
							
								
								
									
										58
									
								
								src/models/responses/ResponseAnonymousDonation.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/models/responses/ResponseAnonymousDonation.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| import { IsInt, IsPositive } from "class-validator"; | ||||
| import { Donation } from '../entities/Donation'; | ||||
| import { DonationStatus } from '../enums/DonationStatus'; | ||||
| import { ResponseObjectType } from '../enums/ResponseObjectType'; | ||||
| import { IResponse } from './IResponse'; | ||||
|  | ||||
| /** | ||||
|  * Defines the donation response. | ||||
| */ | ||||
| export class ResponseAnonymousDonation implements IResponse { | ||||
|  | ||||
|     /** | ||||
|     * The responseType. | ||||
|     * This contains the type of class/entity this response contains. | ||||
|     */ | ||||
|     responseType: ResponseObjectType = ResponseObjectType.DONATION; | ||||
|  | ||||
|     /** | ||||
|     * The donation's payment status. | ||||
|     * Provides you with a quick indicator of it's payment status. | ||||
|     */ | ||||
|     status: DonationStatus; | ||||
|  | ||||
|     /** | ||||
|      * The donation's id. | ||||
|      */ | ||||
|     @IsInt() | ||||
|     @IsPositive() | ||||
|     id: number; | ||||
|  | ||||
|     /** | ||||
|      * The donation's amount in the smalles unit of your currency (default: euro cent). | ||||
|      */ | ||||
|     @IsInt() | ||||
|     amount: number; | ||||
|  | ||||
|     /** | ||||
|      * The donation's paid amount in the smalles unit of your currency (default: euro cent). | ||||
|      */ | ||||
|     @IsInt() | ||||
|     paidAmount: number; | ||||
|  | ||||
|     /** | ||||
|      * Creates a ResponseDonation object from a scan. | ||||
|      * @param donation The donation the response shall be build for. | ||||
|      */ | ||||
|     public constructor(donation: Donation) { | ||||
|         this.id = donation.id; | ||||
|         this.amount = donation.amount; | ||||
|         this.paidAmount = donation.paidAmount || 0; | ||||
|         if (this.paidAmount < this.amount) { | ||||
|             this.status = DonationStatus.OPEN; | ||||
|         } | ||||
|         else { | ||||
|             this.status = DonationStatus.PAID; | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user