@@ -59,26 +59,27 @@ class ApiCompanyTag(Resource):
59
59
def get (self ):
60
60
args = get_parser .parse_args ()
61
61
62
- tag_names = TagName .query \
63
- .filter_by (name = args ['name' ]) \
62
+ companies = Company .query \
63
+ .join (CompanyTag ) \
64
+ .filter (CompanyTag .company_id == Company .id ) \
65
+ .join (Tag ) \
66
+ .filter (Tag .id == CompanyTag .tag_id ) \
67
+ .join (TagName ) \
68
+ .filter (TagName .tag_id == Tag .id ) \
69
+ .filter (TagName .name == args ['name' ]) \
64
70
.all ()
65
71
66
72
results = []
67
- for tag_name in tag_names :
68
- companies = Company .query \
69
- .join (CompanyTag ) \
70
- .filter (CompanyTag .tag_id == tag_name .tag_id ) \
71
- .all ()
72
-
73
- for company in companies :
74
- company_name = CompanyName .query \
75
- .filter_by (company_id = company .id ) \
76
- .order_by (CompanyName .language_id ) \
77
- .first ()
78
- results .append (company_name .name )
73
+ for company in companies :
74
+ company_name = CompanyName .query \
75
+ .filter_by (company_id = company .id ) \
76
+ .order_by (CompanyName .language_id ) \
77
+ .first ()
78
+ results .append (company_name .name )
79
79
80
80
return jsonify (results )
81
81
82
+
82
83
@api .expect (put_parser )
83
84
@api .doc (responses = {
84
85
200 : 'Success' ,
@@ -129,64 +130,33 @@ def put(self):
129
130
def delete (self ):
130
131
args = delete_parser .parse_args ()
131
132
132
- company_names = CompanyName .query \
133
- .filter_by (name = args ['name' ]) \
133
+ company_tags = CompanyTag .query \
134
+ .join (Company ) \
135
+ .filter (Company .id == CompanyTag .company_id ) \
136
+ .join (CompanyName ) \
137
+ .filter (CompanyName .company_id == Company .id ) \
138
+ .filter (CompanyName .name == args ['name' ]) \
139
+ .join (Tag ) \
140
+ .filter (CompanyTag .tag_id == Tag .id ) \
141
+ .join (TagName ) \
142
+ .filter (TagName .tag_id == Tag .id ) \
143
+ .filter (TagName .name == args ['tag' ]) \
134
144
.all ()
135
- if not company_names :
136
- abort (status = 400 , description = 'Not found company name' )
137
-
138
- tag_names = TagName .query \
139
- .filter_by (name = args ['tag' ]) \
140
- .all ()
141
- if not tag_names :
142
- abort (status = 400 , description = 'Not found tag name' )
143
145
144
146
results = {'Deleted' : []}
145
- for tag_name in tag_names :
146
- for company_name in company_names :
147
- company_tag = CompanyTag .query \
148
- .filter_by (
149
- company_id = company_name .company_id ,
150
- tag_id = tag_name .tag_id ,
151
- ) \
152
- .first ()
153
-
154
- if company_tag :
155
- db .session .delete (company_tag )
156
- db .session .commit ()
157
- print ('delete company_tag' , company_tag .id )
158
-
159
- deleted_tags = []
160
- tag_name_ids = TagName .query \
161
- .filter_by (
162
- tag_id = tag_name .tag_id
163
- ) \
164
- .all ()
165
- for tag_name_id in tag_name_ids :
166
- deleted_tags .append (tag_name_id .name )
167
-
168
- results ['Deleted' ].append ({args ['name' ]: deleted_tags })
169
-
170
- company_tag_count = CompanyTag .query \
147
+ for company_tag in company_tags :
148
+ tag_name_ids = TagName .query \
171
149
.filter_by (
172
- tag_id = tag_name .tag_id ,
150
+ tag_id = company_tag .tag_id
173
151
) \
174
- .count ()
175
-
176
- if company_tag_count == 0 :
177
- TagName .query \
178
- .filter_by (
179
- tag_id = tag_name .tag_id
180
- ) \
181
- .delete ()
182
- db .session .commit ()
183
- tag = Tag .query \
184
- .filter_by (
185
- id = tag_name .tag_id
186
- ) \
187
- .first ()
188
- db .session .delete (tag )
189
- db .session .commit ()
190
- print ('delete tag' , tag .id )
152
+ .all ()
153
+
154
+ deleted_tags = []
155
+ for tag_name_id in tag_name_ids :
156
+ deleted_tags .append (tag_name_id .name )
157
+ results ['Deleted' ].append ({args ['name' ]: deleted_tags })
158
+
159
+ db .session .delete (company_tag )
160
+ db .session .commit ()
191
161
192
162
return jsonify (results )
0 commit comments