const profile_routes = {
    prefix: '/api/v1/profile',

    middleware: [
        'auth:APIRoute',
    ],

    get: {
        '/:user_id': [ // user_id | 'me'
            ['middleware::api:Permission', { check: 'v1:profile:get' }],
            'controller::api:v1:Profile.fetch',
        ],
        '/:user_id/notify': [ // user_id | 'me'
            ['middleware::api:Permission', { check: 'v1:profile:get' }],
            'controller::api:v1:Profile.fetch_notify',
        ],
        '/:user_id/photo': [
            ['middleware::api:Permission', { check: 'v1:profile:photo:get' }],
            'controller::api:v1:Profile.get_photo',
        ],
    },

    post: {
        '/:user_id/photo': [
            ['middleware::api:Permission', { check: 'v1:profile:photo:update' }],
            ['middleware::upload:UploadFile', { tag: 'v1:profile:photo' }],
            'controller::api:v1:Profile.update_photo',
        ],
        '/:user_id/notify/test': [ // user_id | 'me'
            ['middleware::api:Permission', { check: 'v1:profile:get' }],
            'controller::api:v1:Profile.test_notify',
        ],
    },

    patch: {
        '/:user_id': [ // user_id | 'me'
            ['middleware::api:Permission', { check: 'v1:profile:update' }],
            'controller::api:v1:Profile.update',
        ],
        '/:user_id/notify': [ // user_id | 'me'
            ['middleware::api:Permission', { check: 'v1:profile:update' }],
            'controller::api:v1:Profile.update_notify',
        ],
    },
}

module.exports = exports = profile_routes
