Compare commits
12 Commits
Author | SHA1 | Date |
---|---|---|
Nicolai Ort | e89e07d0fc | |
Nicolai Ort | c28843c405 | |
Nicolai Ort | 4834a6698b | |
Nicolai Ort | 69afd4d587 | |
Nicolai Ort | 24d152fdc8 | |
Nicolai Ort | 4279e43743 | |
Nicolai Ort | d837654617 | |
Nicolai Ort | 0767943721 | |
Nicolai Ort | ca87774767 | |
Nicolai Ort | f693f2cde9 | |
Nicolai Ort | d70c5b1bbc | |
Nicolai Ort | 71e3d0efe2 |
21
CHANGELOG.md
21
CHANGELOG.md
|
@ -2,13 +2,30 @@
|
|||
|
||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
||||
|
||||
#### [v0.10.1](https://git.odit.services/lfk/backend/compare/v0.10.0...v0.10.1)
|
||||
|
||||
- 🧾New changelog file version [CI SKIP] [skip ci] [`69afd4d`](https://git.odit.services/lfk/backend/commit/69afd4d5877401eb46df430f43a7feb273abda1e)
|
||||
- 🚀Bumped version to v0.10.1 [`24d152f`](https://git.odit.services/lfk/backend/commit/24d152fdc8fe17fffa2f2a718d7145ba8a91d79c)
|
||||
- 🧾New changelog file version [CI SKIP] [skip ci] [`4279e43`](https://git.odit.services/lfk/backend/commit/4279e4374304887e8db40eab77763b20bbce91a1)
|
||||
- Removed duplicate openapi statement [`4834a66`](https://git.odit.services/lfk/backend/commit/4834a6698b0958602421c1478a95fec7edda910b)
|
||||
- Merge pull request 'Selfservice donations reformatting feature/187-selfservice_donation' (#188) from feature/187-selfservice_donation into dev [`d837654`](https://git.odit.services/lfk/backend/commit/d837654617f7de5d055ffb06c65e2cd52f65c604)
|
||||
- New class: ResponseSelfServiceDonor [`d70c5b1`](https://git.odit.services/lfk/backend/commit/d70c5b1bbc9f02782f8755b6929e2d3458e10221)
|
||||
- Switched selfservice donation.donor from string to object [`0767943`](https://git.odit.services/lfk/backend/commit/0767943721b6964d542f580c541e744f86444ac6)
|
||||
- Adjusted runner property names [`ca87774`](https://git.odit.services/lfk/backend/commit/ca87774767807a2c4bc869b0de95cc73832a8405)
|
||||
- 🧾New changelog file version [CI SKIP] [skip ci] [`71e3d0e`](https://git.odit.services/lfk/backend/commit/71e3d0efe2cbde47aea0f26cb5a8b5cd3312707d)
|
||||
- Added new responsetype for new class [`f693f2c`](https://git.odit.services/lfk/backend/commit/f693f2cde9a04147155aea4de5d52e1d19d722ca)
|
||||
|
||||
#### [v0.10.0](https://git.odit.services/lfk/backend/compare/v0.9.2...v0.10.0)
|
||||
|
||||
> 1 April 2021
|
||||
|
||||
- Merge pull request 'Release 0.10.0' (#186) from dev into main [`b517dff`](https://git.odit.services/lfk/backend/commit/b517dff8a82c960836d9f0be90fd89f3ba2fae7d)
|
||||
- 🚀Bumped version to v0.10.0 [`dc3071f`](https://git.odit.services/lfk/backend/commit/dc3071f7d2be298f0bb02d86ec67ed1125cd3b49)
|
||||
- 🧾New changelog file version [CI SKIP] [skip ci] [`5fb355f`](https://git.odit.services/lfk/backend/commit/5fb355f450f19e96d3671b1a46e94d564495942b)
|
||||
- Merge pull request 'Mail locales feature/184-mail_locales' (#185) from feature/184-mail_locales into dev [`33c13de`](https://git.odit.services/lfk/backend/commit/33c13de32c68a3d9e87e4fd9ad12a815ed8c9fde)
|
||||
- Added locale to mail related runner endpoints [`7af883f`](https://git.odit.services/lfk/backend/commit/7af883f27198206af542bcaff4686221d3788e87)
|
||||
- Added locale to mail related runner endpoints [`f543307`](https://git.odit.services/lfk/backend/commit/f5433076b01c743ed9af085fccadb8f1edc26419)
|
||||
- 🧾New changelog file version [CI SKIP] [skip ci] [`5fb355f`](https://git.odit.services/lfk/backend/commit/5fb355f450f19e96d3671b1a46e94d564495942b)
|
||||
- 🧾New changelog file version [CI SKIP] [skip ci] [`114c246`](https://git.odit.services/lfk/backend/commit/114c246aceba566cc0dd6daab51a77b951b031cc)
|
||||
- Merge pull request 'Mail locales feature/184-mail_locales' (#185) from feature/184-mail_locales into dev [`33c13de`](https://git.odit.services/lfk/backend/commit/33c13de32c68a3d9e87e4fd9ad12a815ed8c9fde)
|
||||
- Added locale to mail related user endpoints [`1be073a`](https://git.odit.services/lfk/backend/commit/1be073a4fa39f0332a46f567ee6af10a9137844c)
|
||||
- 🧾New changelog file version [CI SKIP] [skip ci] [`6aafe4a`](https://git.odit.services/lfk/backend/commit/6aafe4a6ae7d253ab39220e551c52ae067cc481a)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@odit/lfk-backend",
|
||||
"version": "0.10.0",
|
||||
"version": "0.10.1",
|
||||
"main": "src/app.ts",
|
||||
"repository": "https://git.odit.services/lfk/backend",
|
||||
"author": {
|
||||
|
|
|
@ -87,7 +87,7 @@ export class AuthController {
|
|||
@ResponseSchema(UserNotFoundError, { statusCode: 404 })
|
||||
@ResponseSchema(UsernameOrEmailNeededError, { statusCode: 406 })
|
||||
@ResponseSchema(MailSendingError, { statusCode: 500 })
|
||||
@OpenAPI({ description: "Request a password reset token. <br> This will provide you with a reset token that you can use by posting to /api/auth/reset/{token}.", parameters: [{ in: "query", name: "locale", schema: { type: "string", enum: ["de", "en"] } }] })
|
||||
@OpenAPI({ description: "Request a password reset token. <br> This will provide you with a reset token that you can use by posting to /api/auth/reset/{token}." })
|
||||
async getResetToken(@Body({ validate: true }) passwordReset: CreateResetToken, @QueryParam("locale") locale: string = "en") {
|
||||
const reset_token: string = await passwordReset.toResetToken();
|
||||
await Mailer.sendResetMail(passwordReset.email, reset_token, locale);
|
||||
|
|
|
@ -119,7 +119,7 @@ export class RunnerSelfServiceController {
|
|||
@Post('/runners/forgot')
|
||||
@ResponseSchema(RunnerNotFoundError, { statusCode: 404 })
|
||||
@OnUndefined(ResponseEmpty)
|
||||
@OpenAPI({ description: 'Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs).', parameters: [{ in: "query", name: "locale", schema: { type: "string", enum: ["de", "en"] } }] })
|
||||
@OpenAPI({ description: 'Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs).' })
|
||||
async requestNewToken(@QueryParam('mail') mail: string, @QueryParam("locale") locale: string = "en") {
|
||||
if (!mail) {
|
||||
throw new RunnerNotFoundError();
|
||||
|
@ -145,7 +145,7 @@ export class RunnerSelfServiceController {
|
|||
@Post('/runners/register')
|
||||
@ResponseSchema(ResponseSelfServiceRunner)
|
||||
@ResponseSchema(RunnerEmailNeededError, { statusCode: 406 })
|
||||
@OpenAPI({ description: 'Create a new selfservice runner in the citizen org. <br> This endpoint shoud be used to allow "everyday citizen" to register themselves. <br> You have to provide a mail address, b/c the future we\'ll implement email verification.', parameters: [{ in: "query", name: "locale", schema: { type: "string", enum: ["de", "en"] } }] })
|
||||
@OpenAPI({ description: 'Create a new selfservice runner in the citizen org. <br> This endpoint shoud be used to allow "everyday citizen" to register themselves. <br> You have to provide a mail address, b/c the future we\'ll implement email verification.' })
|
||||
async registerRunner(@Body({ validate: true }) createRunner: CreateSelfServiceCitizenRunner, @QueryParam("locale") locale: string = "en") {
|
||||
let runner = await createRunner.toEntity();
|
||||
|
||||
|
@ -165,7 +165,7 @@ export class RunnerSelfServiceController {
|
|||
@Post('/runners/register/:token')
|
||||
@ResponseSchema(ResponseSelfServiceRunner)
|
||||
@ResponseSchema(RunnerOrganizationNotFoundError, { statusCode: 404 })
|
||||
@OpenAPI({ description: 'Create a new selfservice runner in a provided org. <br> The orgs get provided and authorized via api tokens that can be optained via the /organizations endpoint.', parameters: [{ in: "query", name: "locale", schema: { type: "string", enum: ["de", "en"] } }] })
|
||||
@OpenAPI({ description: 'Create a new selfservice runner in a provided org. <br> The orgs get provided and authorized via api tokens that can be optained via the /organizations endpoint.' })
|
||||
async registerOrganizationRunner(@Param('token') token: string, @Body({ validate: true }) createRunner: CreateSelfServiceRunner, @QueryParam("locale") locale: string = "en") {
|
||||
const org = await this.getOrgansisation(token);
|
||||
|
||||
|
|
|
@ -35,4 +35,5 @@ export enum ResponseObjectType {
|
|||
USER = 'USER',
|
||||
USERGROUP = 'USERGROUP',
|
||||
USERPERMISSIONS = 'USERPERMISSIONS',
|
||||
SELFSERVICEDONOR = 'SELFSERVICEDONOR'
|
||||
}
|
|
@ -2,6 +2,7 @@ import { IsInt, IsNotEmpty, IsPositive } from 'class-validator';
|
|||
import { DistanceDonation } from '../entities/DistanceDonation';
|
||||
import { ResponseObjectType } from '../enums/ResponseObjectType';
|
||||
import { IResponse } from './IResponse';
|
||||
import { ResponseSelfServiceDonor } from './ResponseSelfServiceDonor';
|
||||
|
||||
/**
|
||||
* Defines the runner selfservice donation response.
|
||||
|
@ -18,7 +19,7 @@ export class ResponseSelfServiceDonation implements IResponse {
|
|||
* The donation's donor.
|
||||
*/
|
||||
@IsNotEmpty()
|
||||
donor: string;
|
||||
donor: ResponseSelfServiceDonor;
|
||||
|
||||
/**
|
||||
* The donation's amount in the smalles unit of your currency (default: euro cent).
|
||||
|
@ -35,9 +36,7 @@ export class ResponseSelfServiceDonation implements IResponse {
|
|||
amountPerDistance: number;
|
||||
|
||||
public constructor(donation: DistanceDonation) {
|
||||
if (!donation.donor.middlename) { this.donor = donation.donor.firstname + " " + donation.donor.lastname; }
|
||||
else { this.donor = donation.donor.firstname + " " + donation.donor.middlename + " " + donation.donor.lastname; }
|
||||
|
||||
this.donor = new ResponseSelfServiceDonor(donation.donor);
|
||||
this.amountPerDistance = donation.amountPerDistance;
|
||||
this.amount = donation.amount;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
import { IsInt, IsString } from "class-validator";
|
||||
import { Donor } from '../entities/Donor';
|
||||
import { ResponseObjectType } from '../enums/ResponseObjectType';
|
||||
import { IResponse } from './IResponse';
|
||||
|
||||
/**
|
||||
* Defines the donor selfservice response.
|
||||
* Why? B/C runner's are not allowed to view all information available to admin users.
|
||||
*/
|
||||
export class ResponseSelfServiceDonor implements IResponse {
|
||||
/**
|
||||
* The responseType.
|
||||
* This contains the type of class/entity this response contains.
|
||||
*/
|
||||
responseType: ResponseObjectType = ResponseObjectType.SELFSERVICEDONOR;
|
||||
|
||||
/**
|
||||
* The participant's id.
|
||||
*/
|
||||
@IsInt()
|
||||
id: number;
|
||||
|
||||
/**
|
||||
* The participant's first name.
|
||||
*/
|
||||
@IsString()
|
||||
firstname: string;
|
||||
|
||||
/**
|
||||
* The participant's middle name.
|
||||
*/
|
||||
@IsString()
|
||||
middlename?: string;
|
||||
|
||||
/**
|
||||
* The participant's last name.
|
||||
*/
|
||||
@IsString()
|
||||
lastname: string;
|
||||
|
||||
/**
|
||||
* Creates a ResponseSelfServiceDonor object from a runner.
|
||||
* @param donor The donor the response shall be build for.
|
||||
*/
|
||||
public constructor(donor: Donor) {
|
||||
this.id = donor.id;
|
||||
this.firstname = donor.firstname;
|
||||
this.middlename = donor.middlename;
|
||||
this.lastname = donor.lastname;
|
||||
}
|
||||
}
|
|
@ -38,10 +38,10 @@ export class ResponseSelfServiceRunner extends ResponseParticipant implements IR
|
|||
group: string;
|
||||
|
||||
/**
|
||||
* The runner's associated donations.
|
||||
* The runner's associated distance donations.
|
||||
*/
|
||||
@IsString()
|
||||
donations: ResponseSelfServiceDonation[]
|
||||
distanceDonations: ResponseSelfServiceDonation[]
|
||||
|
||||
/**
|
||||
* The runner's self-service jwt for auth.
|
||||
|
@ -60,7 +60,7 @@ export class ResponseSelfServiceRunner extends ResponseParticipant implements IR
|
|||
this.distance = runner.distance;
|
||||
this.donationAmount = runner.distanceDonationAmount;
|
||||
this.group = this.getTeamString(runner.group);
|
||||
this.donations = this.getDonations(runner.distanceDonations);
|
||||
this.distanceDonations = this.getDonations(runner.distanceDonations);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue