diff --git a/.env.example b/.env.example index 8e05d9e..b7379ff 100755 --- a/.env.example +++ b/.env.example @@ -3,6 +3,12 @@ HOST= NODE_ENV= APP_KEY= APP_NAME= +BASE_URL= +API_VERSION= + +GITHUB_TOKEN= +GITHUB_SOURCE= +DISCORD_ID= DB_CONNECTION= @@ -20,11 +26,6 @@ REDIS_DB= REDIS_HOST= REDIS_PASSWORD= -GITHUB_TOKEN= -GITHUB_SOURCE= -BASE_URL= -API_VERSION= - CACHE_VIEWS= SMTP_HOST= @@ -34,9 +35,7 @@ SMTP_PASSWORD= GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= - GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= - TWITTER_CLIENT_ID= TWITTER_CLIENT_SECRET= diff --git a/app/Controllers/Http/AuthController.ts b/app/Controllers/Http/AuthController.ts index 6bdfb99..9a45dae 100755 --- a/app/Controllers/Http/AuthController.ts +++ b/app/Controllers/Http/AuthController.ts @@ -95,7 +95,7 @@ export default class AuthController { const githubUser = await github.user() const user = await this.createUser(githubUser) - await auth.use('web').login(user) + await auth.use('web').login(user, true) return response.status(200).send({ user: user }) @@ -124,7 +124,7 @@ export default class AuthController { const googleUser = await google.user() const user = await this.createUser(googleUser) - await auth.use('web').login(user) + await auth.use('web').login(user, true) return response.status(200).send({ user: user }) diff --git a/app/Controllers/Http/ProfileController.ts b/app/Controllers/Http/ProfileController.ts index b1324f2..b4db79a 100755 --- a/app/Controllers/Http/ProfileController.ts +++ b/app/Controllers/Http/ProfileController.ts @@ -1,4 +1,5 @@ import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext"; +import {getDiscordActivity} from "App/Tasks/GetDiscordActivity"; export default class ProfileController { @@ -30,7 +31,7 @@ export default class ProfileController { "Software dev" ], technologies: { - web_app: ["VueJs", "NuxtJs", "Sass", "Tailwind", "WindiCss"], + web_app: ["VueJs", "NuxtJs", "Sass", "TailwindCss", "WindiCss"], desktop_app: ["ElectronJs"], mobile_app: ["React Native", "Vue Native"], back_end: { @@ -45,4 +46,12 @@ export default class ProfileController { }, }) } + + //todo get discord Activity + public async discord({response}: HttpContextContract) { + const activity = await getDiscordActivity() + return response.status(200).send({ + status: activity + }) + } } diff --git a/app/Middleware/Auth.ts b/app/Middleware/Auth.ts index 33bbf26..da7e55d 100755 --- a/app/Middleware/Auth.ts +++ b/app/Middleware/Auth.ts @@ -1,6 +1,5 @@ import {HttpContextContract} from '@ioc:Adonis/Core/HttpContext' import {AuthenticationException} from '@adonisjs/auth/build/standalone' -import Logger from "@ioc:Adonis/Core/Logger"; /** * Auth middleware is meant to restrict un-authenticated access to a given route @@ -34,9 +33,7 @@ export default class AuthMiddleware { for (let guard of guards) { guardLastAttempted = guard - Logger.info('Trying to connect with ' + guard) if (await auth.use(guard).check()) { - Logger.info(auth.use(guard).isLoggedIn) /** * Instruct auth to use the given guard as the default guard for * the rest of the request, since the user authenticated diff --git a/app/Tasks/GetDiscordActivity.ts b/app/Tasks/GetDiscordActivity.ts index 57f4b45..7b543ac 100755 --- a/app/Tasks/GetDiscordActivity.ts +++ b/app/Tasks/GetDiscordActivity.ts @@ -1,3 +1,6 @@ -export async function UpdateGitHubReadMe(): Promise { +import axios, {AxiosResponse} from "axios"; +import Env from "@ioc:Adonis/Core/Env"; +export async function getDiscordActivity(): Promise { + return await axios.get(`https://api.lanyard.rest/v1/users/${Env.get('DISCORD_ID')}`) } diff --git a/config/database.ts b/config/database.ts index 4e5ab15..77535ae 100755 --- a/config/database.ts +++ b/config/database.ts @@ -6,7 +6,7 @@ */ import Env from '@ioc:Adonis/Core/Env' -import { DatabaseConfig } from '@ioc:Adonis/Lucid/Database' +import {DatabaseConfig} from '@ioc:Adonis/Lucid/Database' const databaseConfig: DatabaseConfig = { /* @@ -43,7 +43,7 @@ const databaseConfig: DatabaseConfig = { database: Env.get('MYSQL_DB_NAME'), }, healthCheck: true, - debug: false, + debug: true, }, }, diff --git a/config/session.ts b/config/session.ts index 39fd63c..fe191f3 100755 --- a/config/session.ts +++ b/config/session.ts @@ -6,7 +6,7 @@ */ import Env from '@ioc:Adonis/Core/Env' -import { SessionConfig } from '@ioc:Adonis/Addons/Session' +import {SessionConfig} from '@ioc:Adonis/Addons/Session' const sessionConfig: SessionConfig = { @@ -36,7 +36,7 @@ const sessionConfig: SessionConfig = { | The name of the cookie that will hold the session id. | */ - cookieName: 'adonis-session', + cookieName: 'artapi-session', /* |-------------------------------------------------------------------------- diff --git a/contracts/hash.ts b/contracts/hash.ts index ae1c87e..c9b68b1 100755 --- a/contracts/hash.ts +++ b/contracts/hash.ts @@ -6,13 +6,8 @@ */ declare module '@ioc:Adonis/Core/Hash' { - import { HashDrivers } from '@ioc:Adonis/Core/Hash' interface HashersList { - bcrypt: { - config: BcryptConfig, - implementation: BcryptContract, - }, argon: { config: ArgonConfig, implementation: ArgonContract, diff --git a/env.ts b/env.ts index 8f2d2db..a16ebe6 100755 --- a/env.ts +++ b/env.ts @@ -18,10 +18,17 @@ export default Env.rules({ //App HOST: Env.schema.string(), - PORT: Env.schema.number(), - APP_KEY: Env.schema.string(), - APP_NAME: Env.schema.string(), - NODE_ENV: Env.schema.enum(['development', 'production', 'testing'] as const), + PORT: Env.schema.number(), + APP_KEY: Env.schema.string(), + APP_NAME: Env.schema.string(), + NODE_ENV: Env.schema.enum(['development', 'production', 'testing'] as const), + BASE_URL: Env.schema.string(), + API_VERSION: Env.schema.string(), + + //Utils + DISCORD_ID: Env.schema.string(), + GITHUB_TOKEN: Env.schema.string(), + GITHUB_SOURCE: Env.schema.string({format: 'url'}), //Redis REDIS_CONNECTION: Env.schema.enum(['local'] as const), @@ -44,12 +51,6 @@ export default Env.rules({ //Views CACHE_VIEWS: Env.schema.boolean(), - //Utils - GITHUB_TOKEN: Env.schema.string(), - GITHUB_SOURCE: Env.schema.string({ format: 'url' }), - BASE_URL: Env.schema.string(), - API_VERSION: Env.schema.string(), - //Mails SMTP_HOST: Env.schema.string({ format: 'host' }), SMTP_PORT: Env.schema.number(), @@ -59,10 +60,8 @@ export default Env.rules({ //Socials Authentication GOOGLE_CLIENT_ID: Env.schema.string(), GOOGLE_CLIENT_SECRET: Env.schema.string(), - TWITTER_CLIENT_ID: Env.schema.string(), TWITTER_CLIENT_SECRET: Env.schema.string(), - GITHUB_CLIENT_ID: Env.schema.string(), GITHUB_CLIENT_SECRET: Env.schema.string(), }) diff --git a/start/routes.ts b/start/routes.ts index a43a41c..8c6f083 100755 --- a/start/routes.ts +++ b/start/routes.ts @@ -41,11 +41,12 @@ Route.get('/states', 'StatesController.get') Route.get('/projects', 'ProjectsController.get') Route.group(() => { - Route.post('form', 'FormsController.send') - Route.post('states/:state', 'StatesController.set') + Route.get('/discord', 'ProfileController.discord') + Route.post('/form', 'FormsController.send') + Route.post('/states/:state', 'StatesController.set') - Route.resource('users', 'UsersController') - Route.resource('files', 'FileController').only(['store', 'destroy']) + Route.resource('/users', 'UsersController') + Route.resource('/files', 'FileController').only(['store', 'destroy']) Route.post('/locations', 'LocationsController.store') Route.post('/projects', 'ProjectsController.store') @@ -54,17 +55,17 @@ Route.group(() => { Route.get('/:slug', 'PostsController.getLikes') Route.post('/:slug/like', 'PostsController.like') Route.post('/:slug/unlike', 'PostsController.unlike') - }).prefix('posts') + }).prefix('/posts') - Route.get('subscribers', 'SubscribersController.get') - Route.post('subscribers', 'SubscribersController.store') + Route.get('/subscribers', 'SubscribersController.get') + Route.post('/subscribers', 'SubscribersController.store') - Route.get('guestbook', 'GuestBookController.get') - Route.post('guestbook', 'GuestBookController.store') + Route.get('/guestbook', 'GuestBookController.get') + Route.post('/guestbook', 'GuestBookController.store') Route.group(() => { Route.get('/', 'FileController.index') - Route.get('/:filename', async ({ response, params }) => { + Route.get('/:filename', async ({response, params}) => { response.download(Application.makePath('storage', params.filename)) }) }).prefix('/files') @@ -82,13 +83,13 @@ Route.group(() => { Route.get('/github/callback', 'AuthController.github') Route.get('/google/callback', 'AuthController.google') - Route.get('/twitter', async ({ ally }) => { + Route.get('/twitter', async ({ally}) => { return ally.use('twitter').redirect() }) - Route.get('/github', async ({ ally }) => { + Route.get('/github', async ({ally}) => { return ally.use('github').redirect() }) - Route.get('/google', async ({ ally }) => { + Route.get('/google', async ({ally}) => { return ally.use('google').redirect() }) -}).prefix('auth') +}).prefix('/auth')