/CarFinderApi

API for CarFinderClient. Please see https://github.com/CarFinder/CarFinderClient for a detailed description.

Primary LanguageTypeScript

Build Status

Coverage Status

CarFinder API


Purpose

This document provides a guildlines for CarFinder API.


API Reference

Definition

Note: Every request should contain api/ prefix in URL.

Route HTTP Medthod URL Params Success Response Error Response Description
user/register/ POST n/a CREATED: 201 CONFLICT: 409 Creates a new user
user/confirm/ POST n/a OK: 200 UNAUTHORIZED: 401 Confirms a new user creation
user/signin/ POST n/a OK: 200 UNAUTHORIZED: 401 Authorizes an user
user/forgot/ POST n/a OK: 200 UNAUTHORIZED: 401 Sends a confirmation email to an user to restore password
user/restore/ POST n/a OK: 200 UNAUTHORIZED: 401 Restores user password
user/update-user-data/ POST n/a OK: 200 UNAUTHORIZED: 401 Updates user personal information
user/update-user-settings/ POST n/a OK: 200 UNAUTHORIZED: 401 Updates user settings
user/update-user-image/ POST n/a OK: 200 UNAUTHORIZED: 401 Updates user avatar
filter/marks/ GET n/a OK: 200 INTERNAL SERVER ERROR: 500 Returns an array of all car marks
filter/bodyTypes/ GET n/a OK: 200 INTERNAL SERVER ERROR: 500 Returns an array of all car body types
filter/bodyTypes/ GET n/a OK: 200 INTERNAL SERVER ERROR: 500 Returns an array of all car body types
filter/models/ POST n/a OK: 200 INTERNAL SERVER ERROR: 500 Returns an array of all models for a specified mark
filter/saved/ GET n/a OK: 200 BAD REQUEST: 400 Returns an array of all saved filters for a current user
filter/saved/ POST n/a OK: 200 BAD REQUEST: 400 Creates new saved filter for a current user
filter/saved/ DELETE all OK: 200 BAD REQUEST: 400 Deletes all saved filters for a current user
filter/saved/ DELETE :id OK: 200 BAD REQUEST: 400 Deletes a specified saved filter for a current user
posts/ POST n/a OK: 200 INTERNAL SERVER ERROR: 500 Returns a list of car ads for specified filter parameters
posts/saved GET n/a OK: 200 INTERNAL SERVER ERROR: 500 Returns a list of new car ads for all saved filter parameters for a current user

Detailed Information

Users

  • Sign up

    • URL: /api/user/register/
    • Method: POST
    • URL Params: None
    • Data Params:
      {
          name: String;
          email: String;
          password: String;
      }
    • Success Response:
    • Code: 200
    • Content: None
    • Error Response:
    • Code: 409
    • Content: Error Message
  • Confirm Email

    • URL: /api/user/confirm/
    • Method: POST
    • URL Params: None
    • Data Params:
      {
          token: String;
      }
    • Success Response:
    • Code: 200
    • Content: { token }
    • Error Response:
    • Code: 401
    • Content: Error Message
  • Sign in

    • URL: /api/user/signin/
    • Method: POST
    • URL Params: None
    • Data Params:
      {
          email: String;
          password: String;
      }
    • Success Response:
    • Code: 200
    • Content: None
    • Error Response:
    • Code: 401
    • Content: Error Message
  • Forgot Password

    • URL: /api/user/forgot/
    • Method: POST
    • URL Params: None
    • Data Params:
      {
          email: String;
      }
    • Success Response:
    • Code: 200
    • Content: None
    • Error Response:
    • Code: 401
    • Content: Error Message
  • Restore Password

    • URL: /api/user/restore/
    • Method: POST
    • URL Params: None
    • Data Params:
      {
          password: String;
          token: String;
      }
    • Success Response:
    • Code: 200
    • Content: None
    • Error Response:
    • Code: 401
    • Content: Error Message
  • Update User Data

    • URL: /api/user/update-user-data/
    • Method: POST
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params:
      {
          name: String;
          email: String;
      }
    • Success Response:
    • Code: 200
    • Content: { token }
    • Error Response:
    • Code: 401
    • Content: Error Message
  • Update User Settings

    • URL: /api/user/update-user-settings/
    • Method: POST
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params:
      {
          interfaceLanguage: String;
          subscription: Boolean;
      }
    • Success Response:
    • Code: 200
    • Content: { token }
    • Error Response:
    • Code: 401
    • Content: Error Message
  • Update User Image

    • URL: /api/user/update-user-image/
    • Method: POST
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params:
      {
          image: String;
          type: String;
      }
    • Success Response:
    • Code: 200
    • Content: { token }
    • Error Response:
    • Code: 401
    • Content: Error Message

Filters

  • Get Car Marks

    • URL: /api/filter/marks/
    • Method: GET
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params: None
    • Success Response:
    • Code: 200
    • Content:
    {
        [
            {
                _id: String;
                name: String;
            },
            ...
        ]
    }
    • Error Response:
    • Code: 500
    • Content: Error Message
  • Get Car Body Types

    • URL: /api/filter/bodyTypes/
    • Method: GET
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params: None
    • Success Response:
    • Code: 200
    • Content:
    {
        [
            {
                _id: String;
                name: String;
            },
            ...
        ]
    }
    • Error Response:
    • Code: 500
    • Content: Error Message
  • Get Car Models

    • URL: /api/filter/models/
    • Method: POST
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params:
      {
          markId: String;
      }
    • Success Response:
    • Code: 200
    • Content:
    {
        [
            {
                _id: String;
                name: String;
            },
            ...
        ]
    }
    • Error Response:
    • Code: 500
    • Content: Error Message
  • Get Saved Filters

    • URL: /api/filter/saved/
    • Method: GET
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params: None
    • Success Response:
    • Code: 200
    • Content:
    {
        [
            {
                _id: String;
                name: String;
                url: String;
                userId: String;
                markId: String;
                bodyTypeId: [String, ...];
                modelId: [String, ...];
                priceFrom: Number;
                priceTo: Number;
                yearFrom: Number;
                yearTo: Number;
                kmsFrom: Number;
                kmsTo: Number;
            },
            ...
        ]
    }
    • Error Response:
    • Code: 400
    • Content: Error Message
  • Create New Saved Filter

    • URL: /api/filter/saved/
    • Method: POST
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params:
      {
          name: String;
          url: String;
          markId: String;
          bodyTypeId: [String, ...];
          modelId: [String, ...];
          priceFrom: Number;
          priceTo: Number;
          yearFrom: Number;
          yearTo: Number;
          kmsFrom: Number;
          kmsTo: Number;
      }
    • Success Response:
    • Code: 200
    • Content: None
    • Error Response:
    • Code: 401
    • Content: Error Message
  • Delete All Saved Filters

    • URL: /api/filter/saved/all
    • Method: DELETE
    • Headers: authorization: Bearer ${token}
    • URL Params: all
    • Data Params: None
    • Success Response:
    • Code: 200
    • Content: None
    • Error Response:
    • Code: 401
    • Content: Error Message
  • Delete Saved Filter By Id

    • URL: /api/filter/saved/:id
    • Method: DELETE
    • Headers: authorization: Bearer ${token}
    • URL Params: :id
    • Data Params: None
    • Success Response:
    • Code: 200
    • Content: None
    • Error Response:
    • Code: 401
    • Content: Error Message

Ads

  • Get Car Ads

    • URL: /api/posts/
    • Method: POST
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params:
      {
          filter: {
              markId: String;
              bodyTypeId: [String, ...];
              modelId: [String, ...];
              priceFrom: Number;
              priceTo: Number;
              yearFrom: Number;
              yearTo: Number;
              kmsFrom: Number;
              kmsTo: Number;
          },
          limit: Number;
          skip: Number;
          sort: {
              year: -1 || 1;
              price: -1 || 1;
              kms: -1 || 1;
          }
      }
    • Success Response:
    • Code: 200
    • Content:
    {
        [
            {
                _id: String;
                mark: String;
                model: String;
                bodyType: String;
                description: String;
                images: [String, ...];
                price: Number;
                kms: Number;
                year: Number;
                sourceName: String;
                sourceUrl: String;
            },
            ...
        ]
    }
    • Error Response:
    • Code: 500
    • Content: Error Message
  • Get Car Ads For Saved Filters

    • URL: /api/posts/saved
    • Method: GET
    • Headers: authorization: Bearer ${token}
    • URL Params: None
    • Data Params: None
    • Success Response:
    • Code: 200
    • Content:
    {
        filterId: String;
        filterName: String;
        filterUrl: String;
        ads: [
                {
                    _id: String;
                    mark: String;
                    model: String;
                    bodyType: String;
                    description: String;
                    images: [String, ...];
                    price: Number;
                    kms: Number;
                    year: Number;
                    sourceName: String;
                    sourceUrl: String;
                },
                ...
        ]
    }
    • Error Response:
    • Code: 500
    • Content: Error Message

Technologies

  • TypeScript
  • Koa / Node.js
  • MongoDB
  • Mocha, Chai

Authors