Skip to content

Latest commit

 

History

History
130 lines (98 loc) · 2.91 KB

README.md

File metadata and controls

130 lines (98 loc) · 2.91 KB

Welcome to vidare-api 👋

Version Documentation Maintenance License: ISC

How to run

  1. 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

  2. Install ts-node: npm i -g ts-node

  3. Define .env based on .env.example

  4. Run the app ts-node src/index.ts

Endpoints

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>

Types

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
}

Run tests

npm run test

Author

🤝 Contributing

Contributions, issues and feature requests are welcome!

Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

📝 License

This project is ISC licensed.


This README was generated with ❤️ by readme-md-generator