🏠 Homepage
-
Initialize a mongodb instance:
docker run --name mongo -e MONGO_INITDB_DATABASE=myapp -e MONGO_INITDB_ROOT_USERNAME=<USER> -e MONGO_INITDB_ROOT_PASSWORD=<PASSWORD> -d mongo
-
Install
ts-node
:npm i -g ts-node
-
Define .env based on .env.example
-
Run the app
ts-node src/index.ts
URL | Body (POST) | Success Response | Auth* |
---|---|---|---|
GET /login | NewUser | LoginResponse | Not required |
GET /me | - | User | Required |
GET /products | - | Product[] | Required |
GET /products/:id | - | Product | Required |
GET /vouchers/ | - | Voucher[] | Required |
POST /vouchers/ | NewVoucher | Voucher | Required |
GET /bloodDonations/ | - | BloodDonation[] | Required |
POST /bloodDonations/ | NewBloodDonation | BloodDonation | Required |
POST /redeem/ | { code: string } | boolean | Not required |
Endpoints that requires authentication must receive an Authorization
header in the following format:
Authorization: Bearer <JWT TOKEN RECEIVED ON LOGIN RESPONSE>
type NewUser {
email: string
familyName: string
givenName: string
googleId: string
imageUrl: string
name: string
}
type User {
_id: string
name: string
imageUrl: string
email: string
bloodType: string?
level: number
createdAt: Date
points: number
}
type LoginResponse {
user: User
token: string
}
type Company {
name: string
}
type Product {
_id: string
name: string
discount: number
imageUrl: string
company: Company
price: number
points: number
}
type Voucher {
_id: string
product: Product
expiresAt: Date
code: string
}
type NewVoucher {
productId: string
}
type BloodDonation {
_id: string
imageUrl: string
verified: bool
createdAt: Date
}
type NewBloodDonation {
image: string // base64
}
npm run test
- Github: @dygufa
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
This project is ISC licensed.
This README was generated with ❤️ by readme-md-generator