Remove GuestBook

This commit is contained in:
2021-08-20 11:26:35 +02:00
parent d86ff565fb
commit 4a14426547
15 changed files with 3 additions and 401 deletions

View File

@@ -1,6 +1,5 @@
import {HttpContextContract} from '@ioc:Adonis/Core/HttpContext'
import User from "App/Models/User";
import {AllyUserContract} from "@ioc:Adonis/Addons/Ally";
export default class AuthController {
@@ -42,132 +41,4 @@ export default class AuthController {
user: user
})
}
public async twitter ({ ally, auth, response }: HttpContextContract) {
const twitter = ally.use('twitter')
if (twitter.accessDenied()) {
return response.status(403).send({
message: 'Access Denied!'
})
}
if (twitter.stateMisMatch()) {
return response.status(405).send({
message: 'Request expired. Retry again!'
})
}
if (twitter.hasError()) {
return response.status(500).send({
message: twitter.getError()
})
}
const twitterUser = await twitter.user()
const user = await this.createUser(twitterUser)
await auth.use('web').login(user, true)
return response.status(200).send({
user: user
})
}
public async discord ({ ally, auth, response }: HttpContextContract) {
const discord = ally.use('discord')
if (discord.accessDenied()) {
return response.status(403).send({
message: 'Access Denied!'
})
}
if (discord.stateMisMatch()) {
return response.status(405).send({
message: 'Request expired. Retry again!'
})
}
if (discord.hasError()) {
return response.status(500).send({
message: discord.getError()
})
}
const discordUser = await discord.user()
const user = await this.createUser(discordUser)
await auth.use('web').login(user, true)
return response.status(200).send({
user: user
})
}
public async github ({ ally, auth, response }: HttpContextContract) {
const github = ally.use('github').stateless()
if (github.accessDenied()) {
return response.status(403).send({
message: 'Access Denied!'
})
}
if (github.stateMisMatch()) {
return response.status(405).send({
message: 'Request expired. Retry again!'
})
}
if (github.hasError()) {
return response.status(500).send({
message: github.getError()
})
}
const githubUser = await github.user()
const user = await this.createUser(githubUser)
const authUser: User = await auth.use('web').login(user, true)
return response.status(200).send({
authUser: authUser,
user: user
})
}
public async google ({ ally, auth, response, }: HttpContextContract) {
const google = ally.use('google')
if (google.accessDenied()) {
return response.status(403).send({
message: 'Access Denied!'
})
}
if (google.stateMisMatch()) {
return response.status(405).send({
message: 'Request expired. Retry again!'
})
}
if (google.hasError()) {
return response.status(500).send({
message: google.getError()
})
}
const googleUser = await google.user()
const user = await this.createUser(googleUser)
await auth.use('web').login(user, true)
return response.status(200).send({
user: user
})
}
public async createUser (allyUser: AllyUserContract<any>): Promise<User> {
return await User.firstOrCreate({
email: allyUser.email!,
}, {
email: allyUser.email!,
username: allyUser.name,
isConfirmed: allyUser.emailVerificationState === 'verified'
})
}
}

View File

@@ -1,54 +0,0 @@
import {HttpContextContract} from "@ioc:Adonis/Core/HttpContext";
import GuestValidator from "App/Validators/guestbook/GuestValidator";
import GuestbookMessage from "App/Models/GuestbookMessage";
import User from "App/Models/User";
export default class GuestBookController {
public async index ({ response }: HttpContextContract) {
const guestbook_messages = await GuestbookMessage
.query()
.preload('user')
.orderBy('created_at', 'desc')
return response.status(200).send({
guestbook_messages
})
}
public async store ({ request, response }: HttpContextContract) {
const data = await request.validate(GuestValidator)
let user = await User.findByOrFail('email', data.email)
const guestbook_message = user.related('guestbook_message').updateOrCreate({
userId: user.id,
message: data.message
}, {
userId: user.id,
message: data.message
})
return response.status(200).send({
guestbook_message
})
}
public async show ({ params, response }: HttpContextContract) {
return response.status(200).send({
guestbook_message: await GuestbookMessage.findOrFail(params.id)
})
}
public async destroy ({ params, response }: HttpContextContract) {
const guestbook_message = await GuestbookMessage.findOrFail(params.id)
await guestbook_message.delete()
return response.status(200).send({
message: 'GuestBookMessage successfully deleted!'
})
}
public async exists ({ params, response }: HttpContextContract) {
const email = await params.email
const guestbook_message = await GuestbookMessage.findBy('email', email)
return response.status(200).send({
signed: guestbook_message !== null
})
}
}

View File

@@ -1,23 +0,0 @@
import {DateTime} from 'luxon'
import {BaseModel, BelongsTo, belongsTo, column} from '@ioc:Adonis/Lucid/Orm'
import User from "App/Models/User";
export default class GuestbookMessage extends BaseModel {
@column({isPrimary: true})
public id: number
@belongsTo(() => User)
public user: BelongsTo<typeof User>
@column()
public userId: number
@column()
public message: string
@column.dateTime({ autoCreate: true })
public createdAt: DateTime
@column.dateTime({ autoCreate: true, autoUpdate: true })
public updatedAt: DateTime
}

View File

@@ -1,7 +1,6 @@
import {DateTime} from 'luxon'
import Hash from '@ioc:Adonis/Core/Hash'
import {BaseModel, beforeSave, column, hasOne, HasOne,} from '@ioc:Adonis/Lucid/Orm'
import GuestbookMessage from "App/Models/GuestbookMessage";
import {BaseModel, beforeSave, column} from '@ioc:Adonis/Lucid/Orm'
export default class User extends BaseModel {
@column({isPrimary: true})
@@ -25,9 +24,6 @@ export default class User extends BaseModel {
@column()
public rememberMeToken?: string
@hasOne(() => GuestbookMessage)
public guestbook_message: HasOne<typeof GuestbookMessage>
@column.dateTime({autoCreate: true})
public createdAt: DateTime

View File

@@ -1,21 +0,0 @@
import {HttpContextContract} from '@ioc:Adonis/Core/HttpContext'
import {rules, schema} from '@ioc:Adonis/Core/Validator'
export default class GuestValidator {
public messages = {
required: 'The field {{field}} is required',
'email.email': 'The email is not correct'
}
public schema = schema.create({
message: schema.string({}, [
rules.required()
]),
email: schema.string({}, [
rules.email()
])
})
constructor (protected ctx: HttpContextContract) {
}
}