Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions car/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Generated by Django 4.1 on 2026-05-16 14:02

import django.core.validators
from django.db import migrations, models


class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='Car',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('manufacturer', models.CharField(max_length=64)),
('model', models.CharField(max_length=64)),
('horse_powers', models.PositiveSmallIntegerField(validators=[django.core.validators.MaxValueValidator(1914), django.core.validators.MinValueValidator(1)])),
('is_broken', models.BooleanField()),
('problem_description', models.TextField(blank=True, null=True)),
],
),
]
46 changes: 45 additions & 1 deletion car/serializers.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
from django.core.validators import MinValueValidator, MaxValueValidator
from rest_framework import serializers

from car.models import Car


class CarSerializer(serializers.Serializer):
pass
id = serializers.IntegerField(read_only=True)
manufacturer = serializers.CharField(max_length=64)
model = serializers.CharField(max_length=64)
horse_powers = serializers.IntegerField(
validators=[
MaxValueValidator(1914),
MinValueValidator(1)
]
)
is_broken = serializers.BooleanField()
problem_description = serializers.CharField(
allow_null=True,
allow_blank=True,
required=False
)

def create(self, validated_data) -> Car:
return Car.objects.create(**validated_data)

def update(self, instance, validated_data) -> Car:
instance.manufacturer = validated_data.get(
"manufacturer",
instance.manufacturer
)
instance.model = validated_data.get(
"model",
instance.model
)
instance.horse_powers = validated_data.get(
"horse_powers",
instance.horse_powers
)
instance.is_broken = validated_data.get(
"is_broken",
instance.is_broken
)
instance.problem_description = validated_data.get(
"problem_description",
instance.problem_description
)
instance.save()
return instance
15 changes: 15 additions & 0 deletions keylog.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
SERVER_HANDSHAKE_TRAFFIC_SECRET af3a67df09cbb0d7e96cfab69f87d02e0c90897f4992ea6462eb755b78cbf0c1 8eb3eb8c51f112a3f6481915a2b98d51ff5d785119697dcae7b122dd3908c0e9
EXPORTER_SECRET af3a67df09cbb0d7e96cfab69f87d02e0c90897f4992ea6462eb755b78cbf0c1 c78b546b04cbc2b96426888fce21333655fde07deb68eae7a8205a3c63e1a77d
SERVER_TRAFFIC_SECRET_0 af3a67df09cbb0d7e96cfab69f87d02e0c90897f4992ea6462eb755b78cbf0c1 c764635a68fc1fd55db188b483b9c6d800f4b85f4269271c8b3e7cb1a7326460
CLIENT_HANDSHAKE_TRAFFIC_SECRET af3a67df09cbb0d7e96cfab69f87d02e0c90897f4992ea6462eb755b78cbf0c1 287ba389db3b39250209ddf2ad05535ca20d390117108add1e0711be2a054275
CLIENT_TRAFFIC_SECRET_0 af3a67df09cbb0d7e96cfab69f87d02e0c90897f4992ea6462eb755b78cbf0c1 d2c19de67c6d51d60542298de7bdfd89c2c7e6afee69f7f36be54d9ab327c515
SERVER_HANDSHAKE_TRAFFIC_SECRET 56e16dee349fb59f1cf647898a241caa93d272b07f4388807938d1baf4a7b67c 8a0c213508bf8dfda51ef3affd545265c91bdea8314bccfe65a868e8a0db7a53
EXPORTER_SECRET 56e16dee349fb59f1cf647898a241caa93d272b07f4388807938d1baf4a7b67c 3a00e0f25370d74debbd558edf961284952762932439f2dbcba66a57a53d093e
SERVER_TRAFFIC_SECRET_0 56e16dee349fb59f1cf647898a241caa93d272b07f4388807938d1baf4a7b67c d865dd921f7d979c3ff4b5d032f6bc4a421f83b3e163f2763cc2870befb0bf68
CLIENT_HANDSHAKE_TRAFFIC_SECRET 56e16dee349fb59f1cf647898a241caa93d272b07f4388807938d1baf4a7b67c 145cc030b0e8b40fd6fd0aa6efba093a98150931cf278aa559987dec5b0971a1
CLIENT_TRAFFIC_SECRET_0 56e16dee349fb59f1cf647898a241caa93d272b07f4388807938d1baf4a7b67c e40bfc5cdcab9ce649f166b531985348d698e3e42dfa27a0619a49f7e9320ad0
SERVER_HANDSHAKE_TRAFFIC_SECRET 0d8f3fc58d4d66cb9bf8471a40f78c2de88d7f067d2bc0b4a7cc40f4349217df c2f3545eb9eb267211a50b69246372993594669abe42198bfbdbdb275437cc3d
EXPORTER_SECRET 0d8f3fc58d4d66cb9bf8471a40f78c2de88d7f067d2bc0b4a7cc40f4349217df a1b5bb82a465a205bd454c05d31bfe3ab119025992e0c3af0829ee92867c04b5
SERVER_TRAFFIC_SECRET_0 0d8f3fc58d4d66cb9bf8471a40f78c2de88d7f067d2bc0b4a7cc40f4349217df 2e1f53dafab457b6ed2484f94413148ef84c0fce057057f1c5d19f79893ec490
CLIENT_HANDSHAKE_TRAFFIC_SECRET 0d8f3fc58d4d66cb9bf8471a40f78c2de88d7f067d2bc0b4a7cc40f4349217df 38b8fe706988ee5c58a4fdac1a5b3cc56018b588f77753ef54c2588da2f9735c
CLIENT_TRAFFIC_SECRET_0 0d8f3fc58d4d66cb9bf8471a40f78c2de88d7f067d2bc0b4a7cc40f4349217df 2053d7a50e5f4826a7cb52efc9f460361053e1ffe1774c4ce9d781dfc7ab0df5
16 changes: 14 additions & 2 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,21 @@
import io

from rest_framework.parsers import JSONParser
from rest_framework.renderers import JSONRenderer

from car.models import Car
from car.serializers import CarSerializer


def serialize_car_object(car: Car) -> bytes:
pass
serializer = CarSerializer(car)
json = JSONRenderer().render(serializer.data)
return json


def deserialize_car_object(json: bytes) -> Car:
pass
stream = io.BytesIO(json)
data = JSONParser().parse(stream)
serializer = CarSerializer(data=data)
serializer.is_valid(raise_exception=True)
return serializer.save()
Loading