Fifciu / crr-api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Crr API

Simple API for small SPA Functions: register/login user, auth by JWT Token, websocket livechat, buying/extending the pass (no paying simulation)

#Endpoints POST /api/user/register Body: email, name, password Returns if succeed:

{
    "message": "Konto zostało utworzone",
    "status": true,
    "user": {
        "id": 5,
        "name": "Tomasz Dzielnik",
        "email": "raxxxasdasdasdndacc@gmail.com",
        "password": "",
        "ticketExpires": "0001-01-01T00:00:00Z",
        "createdAt": "2019-03-23T21:32:19.826466592+01:00",
        "lastVisit": "2019-03-23T20:32:19.828382725Z",
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOjV9.kosw1yonr7zSNkz1xq0OHFT2X-WpIO9JH6gWs4ApsXo"
    }
}

Returns if failed:

{
    "message": "Email jest już zajęty",
    "status": false
}

POST /api/user/login Body: email, password Returns if succeed:

{
    "message": "Zalogowano",
    "status": true,
    "user": {
        "id": 4,
        "name": "Tomasz Dzielnik",
        "email": "raasdasdasdndacc@gmail.com",
        "password": "",
        "ticketExpires": "0001-01-01T00:00:00Z",
        "createdAt": "2019-03-23T19:12:13+01:00",
        "lastVisit": "2019-03-23T20:32:46.597097726Z",
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOjR9.sz7T_Jlg7jCC6ogiBHmZMUAVXn6rTkEaA9F3TVEh5u8"
    }
}

Returns if failed:

{
    "message": "Błędne hasło",
    "status": false
}

GET /api/user/refresh Headers: Authorization: Basic Returns if succeed:

{
    "message": "Odświeżono",
    "status": true,
    "user": {
        "id": 4,
        "name": "Tomasz Dzielnik",
        "email": "raasdasdasdndacc@gmail.com",
        "password": "",
        "ticketExpires": "0001-01-01T00:00:00Z",
        "createdAt": "2019-03-23T21:33:01+01:00",
        "lastVisit": "2019-03-23T21:33:01+01:00",
        "token": ""
    }
}

Returns if failed:

{
    "message": "Brak tokena",
    "status": false
}

POST /api/ticket/buy Extend ticket expires date +30 from current value By default value is null, so first call will set time.Now()+30days Headers: Authorization: Basic Returns if succeed:

{
    "message": "Zakupiono bilet",
    "status": true,
    "ticketExpires": "2019-04-22T19:41:45.070670823Z"
}

GET /api/chat/history Returns each message on chat Headers: Authorization: Basic Returns if succeed:

{
    "message": "Pobrano",
    "messages": [
        {
            "id": 1,
            "userId": 2,
            "name": "Tomasz Dzielnik",
            "message": "Siema!",
            "createdAt": "2019-03-23T11:46:30+01:00"
        },
        {
            "id": 2,
            "userId": 3,
            "name": "Tomasz Dzielnik",
            "message": "Hejo!",
            "createdAt": "2019-03-23T11:46:30+01:00"
        },
        {
            "id": 3,
            "userId": 2,
            "name": "Tomasz Dzielnik",
            "message": "Co tam?",
            "createdAt": "2019-03-23T19:29:48+01:00"
        },
        {
            "id": 4,
            "userId": 2,
            "name": "Tomasz Dzielnik",
            "message": "Halo",
            "createdAt": "2019-03-23T19:29:52+01:00"
        },
        {
            "id": 5,
            "userId": 2,
            "name": "Tomasz Dzielnik",
            "message": "Odbjuuur?",
            "createdAt": "2019-03-23T19:29:56+01:00"
        },
        {
            "id": 6,
            "userId": 2,
            "name": "Tomasz Dzielnik",
            "message": "Ejjj",
            "createdAt": "2019-03-23T19:29:59+01:00"
        }
    ],
    "status": true
}

WEBSOCKET /api/chat/live
Use like:
ws://localhost:8000/api/chat?token=<PASTE_HERE_JWT_TOKEN>
It allows to connect with websocket and use livechat.

About


Languages

Language:Go 70.4%Language:Shell 28.3%Language:Dockerfile 1.4%