Skip to content

Instantly share code, notes, and snippets.

View BrockHerion's full-sized avatar
🏠
Working from home

Brock Herion BrockHerion

🏠
Working from home
View GitHub Profile
@BrockHerion
BrockHerion / schema.ts
Created April 11, 2024 12:05
Example of a Drizzle schema with TypeScript regions
import { pgTable, serial, text, varchar, integer } from 'drizzle-orm/pg-core';
//#region Users
export const user = pgTable("user", {
id: serial('id').primaryKey(),
email: varchar("email", { length: 255 }).unique().notNull(),
password: varchar("password", { length: 255 }).notNull()
});
@BrockHerion
BrockHerion / Header.tsx
Created December 14, 2021 17:00
Close on click out
useEffect(() => {
const checkClickedOutside = (ev: MouseEvent) => {
console.log("Click");
if (
isDropdownOpen &&
ref.current &&
!ref.current.contains(ev.target as Node)
) {
setDropdownOpen(false);
}
@BrockHerion
BrockHerion / tests.py
Created August 27, 2020 01:49
Tests for role based auth
import json
from django.urls import include, path, reverse
from rest_framework import status
from rest_framework.test import APITestCase, APIClient, URLPatternsTestCase
from .models import User
# Create your tests here.
class UserTest(APITestCase, URLPatternsTestCase):
""" Test module for User """
@BrockHerion
BrockHerion / urls.py
Created August 27, 2020 01:16
Main urls.py file
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/auth/', include('api.urls'))
]
@BrockHerion
BrockHerion / urls.py
Created August 27, 2020 01:13
URLs for Django Rest
from django.urls import path
from rest_framework_simplejwt import views as jwt_views
from .views import (
UserRegistrationView,
UserLoginView,
UserListView
)
urlpatterns = [
@BrockHerion
BrockHerion / views.py
Created August 27, 2020 01:03
All Users View
class UserListView(APIView):
serializer_class = UserListSerializer
permission_classes = (IsAuthenticated,)
def get(self, request):
user = request.user
if user.role != 1:
response = {
'success': False,
'status_code': status.HTTP_403_FORBIDDEN,
@BrockHerion
BrockHerion / views.py
Created August 27, 2020 01:00
Login View
class AuthUserLoginView(APIView):
serializer_class = UserLoginSerializer
permission_classes = (AllowAny, )
def post(self, request):
serializer = self.serializer_class(data=request.data)
valid = serializer.is_valid(raise_exception=True)
if valid:
status_code = status.HTTP_200_OK
@BrockHerion
BrockHerion / views.py
Created August 27, 2020 00:58
Registration, Login, and All Users Views
from rest_framework import status
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.permissions import AllowAny, IsAuthenticated
from .serializers import (
UserRegistrationSerializer,
UserLoginSerializer,
UserListSerializer
)
@BrockHerion
BrockHerion / serializers.py
Last active August 27, 2020 02:26
Normal User serializer
class UserListSerializer(serializers.ModelSerializer):
class Meta:
model = AuthUser
fields = (
'email',
'role'
)
@BrockHerion
BrockHerion / serializers.py
Last active August 27, 2020 00:59
User Login Serializer
from rest_framework import serializers
from rest_framework_simplejwt.tokens import RefreshToken
class UserLoginSerializer(serializers.Serializer):
email = serializers.EmailField()
password = serializers.CharField(max_length=128, write_only=True)
access = serializers.CharField(read_only=True)
refresh = serializers.CharField(read_only=True)
role = serializers.CharField(read_only=True)