Skip to content

Commit e013acd

Browse files
Merge pull request #6 from 4GeeksAcademy/ft001-base-de-datos
Ft001 base de datos
2 parents 6b0da17 + c27860e commit e013acd

File tree

7 files changed

+624
-14
lines changed

7 files changed

+624
-14
lines changed

Diff for: migrations/versions/a08fba8a0180_.py

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
"""empty message
2+
3+
Revision ID: a08fba8a0180
4+
Revises:
5+
Create Date: 2025-03-05 14:44:28.016416
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
11+
12+
# revision identifiers, used by Alembic.
13+
revision = 'a08fba8a0180'
14+
down_revision = None
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade():
20+
# ### commands auto generated by Alembic - please adjust! ###
21+
op.create_table('accessories',
22+
sa.Column('id', sa.Integer(), nullable=False),
23+
sa.Column('name', sa.String(length=100), nullable=False),
24+
sa.Column('brand', sa.String(length=100), nullable=False),
25+
sa.Column('description', sa.Text(), nullable=True),
26+
sa.Column('animal_type', sa.String(length=50), nullable=False),
27+
sa.Column('pathologies', sa.Text(), nullable=True),
28+
sa.Column('price', sa.Float(), nullable=False),
29+
sa.Column('url', sa.String(length=255), nullable=True),
30+
sa.PrimaryKeyConstraint('id')
31+
)
32+
op.create_table('foods',
33+
sa.Column('id', sa.Integer(), nullable=False),
34+
sa.Column('name', sa.String(length=100), nullable=False),
35+
sa.Column('brand', sa.String(length=100), nullable=False),
36+
sa.Column('description', sa.Text(), nullable=True),
37+
sa.Column('ingredients', sa.Text(), nullable=False),
38+
sa.Column('weight', sa.Float(), nullable=False),
39+
sa.Column('price', sa.Float(), nullable=False),
40+
sa.Column('age', sa.String(), nullable=False),
41+
sa.Column('animal_type', sa.String(length=50), nullable=False),
42+
sa.Column('size', sa.String(length=30), nullable=True),
43+
sa.Column('pathologies', sa.Text(), nullable=True),
44+
sa.Column('url', sa.String(length=255), nullable=True),
45+
sa.PrimaryKeyConstraint('id')
46+
)
47+
op.create_table('user',
48+
sa.Column('id', sa.Integer(), nullable=False),
49+
sa.Column('name', sa.String(length=80), nullable=False),
50+
sa.Column('email', sa.String(length=120), nullable=False),
51+
sa.Column('password', sa.String(length=80), nullable=False),
52+
sa.Column('is_active', sa.Boolean(), nullable=False),
53+
sa.PrimaryKeyConstraint('id'),
54+
sa.UniqueConstraint('email')
55+
)
56+
op.create_table('pet',
57+
sa.Column('id', sa.Integer(), nullable=False),
58+
sa.Column('name', sa.String(length=100), nullable=False),
59+
sa.Column('size', sa.String(length=100), nullable=True),
60+
sa.Column('breed', sa.String(length=100), nullable=True),
61+
sa.Column('age', sa.String(), nullable=False),
62+
sa.Column('animal_type', sa.String(), nullable=False),
63+
sa.Column('pathologies', sa.Text(), nullable=False),
64+
sa.Column('user_id', sa.Integer(), nullable=True),
65+
sa.Column('url', sa.String(length=255), nullable=True),
66+
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
67+
sa.PrimaryKeyConstraint('id')
68+
)
69+
# ### end Alembic commands ###
70+
71+
72+
def downgrade():
73+
# ### commands auto generated by Alembic - please adjust! ###
74+
op.drop_table('pet')
75+
op.drop_table('user')
76+
op.drop_table('foods')
77+
op.drop_table('accessories')
78+
# ### end Alembic commands ###

Diff for: requirements.txt

+1
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ sqlalchemy==1.3.23
2424
urllib3==1.26.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
2525
werkzeug==1.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
2626
wtforms==2.3.3
27+

Diff for: requirements.txt.save

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
-i https://pypi.org/simple
2+
alembic==1.5.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
3+
certifi==2020.12.5
4+
click==7.1.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
5+
cloudinary==1.24.0
6+
flask==1.1.2
7+
flask-admin==1.5.7
8+
flask-cors==3.0.10
9+
flask-migrate==2.6.0
10+
flask-sqlalchemy==2.4.4
11+
flask-swagger==0.2.14
12+
gunicorn==20.0.4
13+
itsdangerous==1.1.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
14+
jinja2==2.11.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
15+
mako==1.1.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
16+
markupsafe==1.1.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
17+
psycopg2-binary==2.8.6
18+
python-dateutil==2.8.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
19+
python-dotenv==0.15.0
20+
python-editor==1.0.4
21+
pyyaml==5.4.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
22+
six==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
23+
sqlalchemy==1.3.23
24+
urllib3==1.26.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
25+
werkzeug==1.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
26+
wtforms==2.

Diff for: src/api/admin.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
import os
33
from flask_admin import Admin
4-
from .models import db, User
4+
from .models import db, User, Food, Accessories, Pet
55
from flask_admin.contrib.sqla import ModelView
66

77
def setup_admin(app):
@@ -12,6 +12,8 @@ def setup_admin(app):
1212

1313
# Add your models here, for example this is how we add a the User model to the admin
1414
admin.add_view(ModelView(User, db.session))
15-
15+
admin.add_view(ModelView(Food, db.session))
16+
admin.add_view(ModelView(Accessories, db.session))
17+
admin.add_view(ModelView(Pet, db.session))
1618
# You can duplicate that line to add mew models
1719
# admin.add_view(ModelView(YourModelName, db.session))

Diff for: src/api/commands.py

+134-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
import click
3-
from api.models import db, User
3+
from api.models import db, User, Food, Accessories, Pet
44

55
"""
66
In this file, you can add as many commands as you want using the @app.cli.command decorator
@@ -20,15 +20,145 @@ def insert_test_users(count):
2020
print("Creating test users")
2121
for x in range(1, int(count) + 1):
2222
user = User()
23+
user.name = "name"+ str(x)
2324
user.email = "test_user" + str(x) + "@test.com"
2425
user.password = "123456"
26+
user.address = "asd"
27+
user.phone = 12324
2528
user.is_active = True
2629
db.session.add(user)
2730
db.session.commit()
2831
print("User: ", user.email, " created.")
2932

3033
print("All test users created")
3134

32-
@app.cli.command("insert-test-data")
33-
def insert_test_data():
34-
pass
35+
@app.cli.command("insert_data_catfood")
36+
def insert_data_catfood():
37+
catfood = Food()
38+
catfood.name = "KA AYURVEDA Only Fish Gatos Sin Gluten"
39+
catfood.brand="Feral"
40+
catfood.description = "asd"
41+
catfood.ingredients = "ads"
42+
catfood.weight = 1.
43+
catfood.price = 1.
44+
catfood.animal_type = "asd"
45+
catfood.age = "sd"
46+
catfood.pathologies = "asd"
47+
db.session.add(catfood)
48+
db.session.commit()
49+
50+
51+
52+
53+
@app.cli.command("insert_data_dogfood")
54+
def insert_data_food():
55+
dogfood = Food()
56+
dogfood.name = "Special Care hepatic/renal"
57+
dogfood.brand="nfnatcane"
58+
dogfood.description = "asd"
59+
dogfood.ingredients = "ads"
60+
dogfood.price = 1.
61+
dogfood.pathologies = "renal"
62+
dogfood.animal_type = "perro"
63+
dogfood.age = "senior"
64+
dogfood.size = "medium"
65+
dogfood.weight = 1.
66+
db.session.add(dogfood)
67+
db.session.commit()
68+
69+
dogfood = Food()
70+
dogfood.name = "CARE DIGESTIVE (DOG)"
71+
dogfood.brand="ownat"
72+
dogfood.description = "asd"
73+
dogfood.ingredients = "ads"
74+
dogfood.price = 1.
75+
dogfood.pathologies = "renal"
76+
dogfood.animal_type = "perro"
77+
dogfood.age = "senior"
78+
dogfood.size = "medium"
79+
dogfood.weight = 1.
80+
db.session.add(dogfood)
81+
db.session.commit()
82+
83+
84+
85+
@app.cli.command("insert_data_exoticfood")
86+
def insert_data_exoticfood():
87+
exoticfood = Food()
88+
exoticfood.name = "critical care"
89+
exoticfood.brand="oxbow"
90+
exoticfood.description = "asd"
91+
exoticfood.ingredients = "ads"
92+
exoticfood.price = 1.
93+
exoticfood.pathologies = "asd"
94+
exoticfood.animal_type = "asd"
95+
exoticfood.age = "asd"
96+
exoticfood.weight = 1.
97+
db.session.add(exoticfood)
98+
db.session.commit()
99+
100+
101+
102+
@app.cli.command("insert_data_accessories")
103+
def insert_data_accessories():
104+
accessories= Accessories()
105+
accessories.name = "critical care"
106+
accessories.brand="oxbow"
107+
accessories.description = "asd"
108+
accessories.price = 1.
109+
accessories.animal_type = ""
110+
accessories.pathologies = ""
111+
accessories.url = ""
112+
db.session.add(accessories)
113+
db.session.commit()
114+
115+
116+
@app.cli.command("insert_data_pet")
117+
def insert_data_pet():
118+
pet= Pet()
119+
pet.name = "asd"
120+
pet.size=""
121+
pet.breed= "asd"
122+
pet.age= "cachorro"
123+
pet.animal_type = "gato"
124+
pet.pathologies="obesidad, diabetes"
125+
pet.user_id = 1
126+
db.session.add(pet)
127+
db.session.commit()
128+
129+
pet= Pet()
130+
pet.name = "recoleto"
131+
pet.size="medium"
132+
pet.breed= "asd"
133+
pet.age="senior"
134+
pet.animal_type = "perro"
135+
pet.pathologies="renal"
136+
pet.user_id = 1
137+
db.session.add(pet)
138+
db.session.commit()
139+
140+
pet= Pet()
141+
pet.name = "asd"
142+
pet.size="oxbow"
143+
pet.breed= "asd"
144+
pet.age= "2"
145+
pet.animal_type = "cobaya"
146+
pet.pathologies="escorbuto"
147+
db.session.add(pet)
148+
db.session.commit()
149+
150+
pet= Pet()
151+
pet.name = "asd"
152+
pet.size="oxbow"
153+
pet.breed= "asd"
154+
pet.age= "60"
155+
pet.animal_type = "loro"
156+
pet.pathologies=""
157+
db.session.add(pet)
158+
db.session.commit()
159+
160+
161+
162+
163+
164+

0 commit comments

Comments
 (0)