✨ Add user register mutation

🔥 Remove a bunch of legacy code
This commit is contained in:
nikolark committed 2022-02-19 15:26:30 +01:00
1 parent a47de48243
commit b5c9094b64
34 files changed
+46 -7544

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
import strawberry
import strawberry_django
from django.contrib.auth import get_user_model
from django.db import transaction
from strawberry_django import auto
from main import models
from main.api.types.users import User
DjangoUser = get_user_model()
@strawberry_django.input(DjangoUser)
class UserInput:
email: auto
first_name: auto
last_name: auto
@strawberry.mutation
@transaction.atomic
def register_mutation(input: UserInput) -> User:
user = DjangoUser.objects.create_user(
first_name=input.first_name, last_name=input.last_name, email=input.email, username=input.email
)
models.UserProfile.objects.create(user=user)
return user
@strawberry.type
class UsersMutations:
register = register_mutation
+2 -1
View File
@@ -1,6 +1,7 @@
import strawberry
from main.api.mutations.shop import ShopMutations
from main.api.mutations.users import UsersMutations
from main.api.queries.inventory import InventoryQueries
from main.api.queries.shop import ShopQueries
from main.api.queries.users import UsersQueries
@@ -12,7 +13,7 @@ class Query(InventoryQueries, ShopQueries, UsersQueries):
@strawberry.type
class Mutation(ShopMutations):
class Mutation(ShopMutations, UsersMutations):
pass
+1 -24
View File
@@ -1,29 +1,6 @@
from django import forms
from django.contrib.auth.models import User
from main.models import InventoryTransaction, Product, UserProfile
from main.utils import format_username
class SimpleCreateUserForm(forms.Form):
first_name = forms.CharField(required=True, label="Fornavn")
last_name = forms.CharField(required=True, label="Etternavn")
email = forms.EmailField(required=True, label="E-post")
def save(self, commit=True):
username = format_username(self.cleaned_data["first_name"], self.cleaned_data["last_name"])
user = User.objects.create_user(username, email=self.cleaned_data["email"])
user.first_name = self.cleaned_data["first_name"]
user.last_name = self.cleaned_data["last_name"]
profile = UserProfile.objects.create(user=user)
profile.image = self._get_facebook_url()
if commit:
user.save()
profile.save()
return user
from main.models import InventoryTransaction, Product
class InventoryTransactionForm(forms.ModelForm):
-7
View File
@@ -1,18 +1,11 @@
from django.contrib.staticfiles.views import serve
from django.urls import re_path
from main.views.reports import inventory, inventory_add, report
from main.views.users import create_user
urlpatterns = [
# TODO: migrate to SPA
# Users
re_path(r"^user/create/$", create_user, name="create-user"),
# Reports
re_path(r"^inventory/$", inventory, name="inventory"),
re_path(r"^inventory/add/$", inventory_add, name="inventory-add"),
re_path(r"^report$", report, name="report"),
]
# Root level service-worker.js
urlpatterns += [re_path(r"^service-worker\.js$", serve, kwargs={"path": "dist/service-worker.js"})]
-21
View File
@@ -1,21 +0,0 @@
from django.contrib import messages
from django.shortcuts import redirect, render
from main.forms import SimpleCreateUserForm
def create_user(request):
if request.method == "POST":
form = SimpleCreateUserForm(data=request.POST)
if form.is_valid():
user = form.save()
messages.success(request, f"Hurra! {user.first_name}{user.last_name} er lagt til")
return redirect("create-user")
else:
messages.error(request, "Feil med skjemaet, se under.")
form = SimpleCreateUserForm(data=request.POST)
else:
form = SimpleCreateUserForm()
return render(request, "registration/create_user.html", {"form": form})