def update_warehouse_member_status(id_miembro_almacen, status, updated_by): member_status = EmployeeRequestStatus(id_miembro_almacen, status, updated_by) historia = member_status s.add(historia) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def add_item(self, ms, request_status, rquser): if not (1 <= int(request_status) <= 4): mssg = [ 400, { 'message': 'Error en los parametros suministrados', 'action': 'Los valores aceptados son: 1:Enviada, 2:Aceptada, 3:Negada, 4:Bloqueada' } ] return True, mssg error, resp = self.get_most_recent(ms) if not error: if int(resp.id_estado_solicitud) == int(request_status): error = [ 409, { 'message': 'La membresia ya se encuentra en este estado', 'action': 'Realice nuevamente la solicitud cambiando los parametros' } ] return True, error self.id_miembro = ms self.id_estado_solicitud = request_status self.id_actualizado_por = rquser s.add(self) s.commit() resp = [ 200, { 'message': 'El estado de la membresia se actualizo correctamente' } ] return False, resp
def verify_account(self): #TODO: IMPLEMENTAR TOKEN. USAR METODO generate_auth_token(self, expiration=600) if self.verified: raise ResourceConflict('La cuenta ya se encuentra confirmada') self.verified = True s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def add_item(self, user, id_type, name, description): if not (1 <= int(id_type) <= 3): mssg = [400, {'message': 'Error en los parámetros suministrados', 'action': 'Los valores aceptados son: 1: Publico, 2: Privado'}] return True, mssg if int(id_type) is 1 and self.check_item_exists(name=name): mssg = [409, {'message': 'Este grupo ya existe', 'action': 'Cambie el nombre del grupo'}] return True, mssg self.id_tipo_grupo = id_type self.nombre_grupo = name self.descripcion = description self.creado = datetime.datetime.now() membresia = Membership() s.add(self) s.flush() membresia.id_grupo = self.id_grupo membresia.id_rol_grupo = 1 membresia.id_usuario = user historia = MembershipHistory() historia.id_estado_solicitud = 2 s.add(membresia) s.flush() historia.id_actualizado_por = membresia.id_miembro membresia.historia.append(historia) self.membresia.append(membresia) s.add(self) s.commit() resp = [200, {'message': 'El grupo se ha creado exitosamente'}] return False, resp
def delete_item(self, user): # Revisar si el usuario que realiza la actualización tiene credenciales de administrador # o si es el dueño de la membresia error, resp = self.get_role(self.id_grupo, user) if self.id_usuario is not user: if int(resp) is not 1 and int(resp) is not 2: return True, [ 403, { 'message': 'No cuenta con los permisos para realizar esta acción', 'action': 'Realice otra consulta' } ] s.delete(self) try: s.commit() except IntegrityError: s.rollback() s.flush() resp = [ 409, { 'errores': { 'message': 'La membresia no se puede eliminar', 'action': 'Elimine los elementos relacionados e intente de nuevo' } } ] return True, resp resp = [200, {'message': 'La membresia se elimino correctamente'}] return False, resp
def add_warehouse_schedule(self): # if not isinstance(warehouse, int): # mssg = [400, {'message': 'El campo warehouse debe ser un numero entero', # 'action': 'Ingrese un valor adecuado'}] # return True, mssg # if not (1 <= int(day) <= 7): # mssg = [400, {'message': 'Error en los parámetros suministrados', # 'action': 'Los valores aceptados son: 1: Lunes, 2: Martes, 3: Miercoles ...'}] # return True, mssg # if not (0 <= int(from_hour) <= 23): # mssg = [400, {'message': 'Error en los parámetros suministrados', # 'action': 'El rango de valores 0-23'}] # return True, mssg # if not (0 <= int(from_minutes) <= 59): # mssg = [400, {'message': 'Error en los parámetros suministrados', # 'action': 'El rango de valores 0-59'}] # return True, mssg # if not (0 <= int(until_hour) <= 23): # mssg = [400, {'message': 'Error en los parámetros suministrados', # 'action': 'El rango de valores 0-23'}] # return True, mssg # if not (0 <= int(until_minutes) <= 59): # mssg = [400, {'message': 'Error en los parámetros suministrados', # 'action': 'El rango de valores 0-59'}] # return True, mssg s.add(self) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def modify_item(self, product_category_id, brand_id, product_name, product_upc): self.product_category_id = product_category_id self.brand_id = brand_id self.product_name = product_name self.product_upc = product_upc s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def empty_basket(user): standard_basket = get_standard_basket(user) for item in standard_basket: s.delete(item) generic_basket = get_generic_basket(user) for item in generic_basket: s.delete(item) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def add_item(self): s.add(self) s.commit() resp = [ 201, { 'message': 'El proveedor de servicio se añadió exitosamente' } ] return False, resp
def role_change(self, role, user): if not user: mssg = [ 400, { 'message': 'El campo user_account no puede ser vacio o nulo', 'action': 'Ingrese un valor adecuado' } ] return True, mssg if not role: mssg = [ 400, { 'message': 'El campo role no puede ser vacio o nulo', 'action': 'Ingrese un valor adecuado' } ] return True, mssg error, resp = self.get_role(self.id_grupo, user) if error: return True, resp if int(resp) is not 1 and int(resp) is not 2: return True, [ 403, { 'message': 'No cuenta con los permisos para realizar esta acción', 'action': 'Realice otra consulta' } ] if not (1 <= int(role) <= 3): error = [ 400, { 'message': 'Error en los parámetros suministrados', 'action': 'Los valores aceptados son: 1:Creador, 2:Admin, 3:Participante' } ] return True, error if int(self.id_rol_grupo) is int(role): error = [ 409, { 'message': 'Este usuario ya cuenta con este nivel de permisos', 'action': 'Realice nuevamente la solicitud' } ] return True, error self.id_rol_grupo = role s.commit() resp = [ 200, { 'message': 'El rol de este miembro se actualizo correctamente' } ] return False, resp
def update_user_info(self, name, mail, phone): self.full_name = name if self.email_address != mail: check_user_not_exists_by_mail(mail) self.email_address = mail if self.phone_number != phone: check_user_not_exists_by_phone(phone) self.phone_number = phone s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def save_test_data( file_name, model, ): data = load_data(file_name) for row in data: model1 = model(**row) s.add(model1) s.commit() s.close()
def change_user_password(self, password): if self.auth_type_id != 1: raise InvalidArgument( 'Su cuenta utiliza un servicio de terceros para autenticación') self.password = password salt = bcrypt.gensalt(10) hashed = bcrypt.hashpw(self.password.encode('utf-8'), salt) self.password_hash = hashed.decode('utf-8') self.password_salt = salt.decode('utf-8') s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def delete_item(self): s.delete(self) try: s.commit() except IntegrityError: s.rollback() s.flush() resp = [409, {'errores': {'message': 'La relacion no se puede eliminar', 'action': 'Elimine los elementos relacionados e intente de nuevo'}}] return True, resp resp = [200, {'message': 'La relacion se elimino correctamente'}] return False, resp
def delete_item(self, user): for miembro in self.membresia: if miembro.id_usuario is user: error, resp = miembro.get_role(self.id_grupo, user) if int(resp) is not 1 and int(resp) is not 2: return True, [403, {'message': 'No cuenta con los permisos para realizar esta acción', 'action': 'Realice otra consulta'}] s.delete(self) s.commit() resp = [200, {'message': 'El grupo se elimino correctamente'}] return False, resp return True, [403, {'message': 'No cuenta con los permisos para realizar esta acción', 'action': 'Realice otra consulta'}]
def add_item(self, user, friend): if self.check_item_exists(user, friend): error = [409, {'message': 'Esta relación ya existe', 'action': 'Realice nuevamente la solicitud'}] return True, error self.id_usuario = user self.id_usuario_amigo = friend s.add(self) s.commit() # Crea estado de solicitud error, mssg = RelationshipStatus().add_item(self.id_relacion, 1) if error: return True, mssg resp = [201, {'message': 'La relación se ha creado exitosamente'}] return False, resp
def modify_item(self, id_type, name, description, user): # Revisar si el usuario que realiza la actualización tiene credenciales de administrador # o si es el dueño de la membresia for miembro in self.membresia: if miembro.id_usuario is user: error, resp = miembro.get_role(self.id_grupo, user) if int(resp) is not 1 and int(resp) is not 2: return True, [403, {'message': 'No cuenta con los permisos para realizar esta acción', 'action': 'Realice otra consulta'}] self.id_tipo_grupo = id_type self.nombre_grupo = name self.descripcion = description s.commit() resp = [200, {'message': 'Los datos se actualizaron correctamente'}] return False, resp return True, [403, {'message': 'No cuenta con los permisos para realizar esta acción', 'action': 'Realice otra consulta'}]
def process_order(user_id, parameters, payment_info, location): basket = get_basket(user_id, parameters, location) order = ProductOrder(user_id) order.add_item() order.total = 0 for basket_item in basket: stock_quantity = get_inventory_quantity_by_id( basket_item.stock_item_id) if stock_quantity - basket_item.standard_basket_quantity >= 0: order_item = ProductOrderItem( order.product_order_id, basket_item.stock_item_id, int(basket_item.standard_basket_quantity), basket_item.inventory.stock_price) order.total += (basket_item.standard_basket_quantity * basket_item.inventory.stock_price) s.add(order_item) else: order_item_error = ProductOrderItemError( order.product_order_id, basket_item.inventory.product_id, int(basket_item.standard_basket_quantity)) s.add(order_item_error) s.commit() if order.total <= 0: order.cancelled = True s.commit() raise ResourceConflict( 'Orden no procesada. El valor total debe ser mayor a 0') payment_info['transaction_amount'] = order.total transaccion = ProductTransaction(order.product_order_id, payment_info) transaccion.add_item() error, response = payment(payment_info) if error: transaccion.id_estado_transaccion = 3 s.commit() raise ResourceConflict('Pago rechazado') transaccion.referencia_pago = response transaccion.id_estado_transaccion = 2 s.commit() empty_basket(user_id) return {'success': True}, 200, {'ContentType': 'application/json'}
def update_item(self, standard_basket_quantity): self.standard_basket_quantity += standard_basket_quantity s.add(self) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def add_item(self): s.add(self) s.commit() resp = [201, {'message': 'El vehículo se creó exitosamente'}] return False, resp
def add_item(self): s.add(self) s.commit() resp = [201, {'message': 'La programación se creó exitosamente'}] return False, resp
def add_location(self): s.add(self) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def update_username(self, username): check_user_not_exists_by_username(username) self.username = username s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def update_user_name(self, name): self.full_name = name s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def add_item(self): s.add(self) s.commit()
def add_warehouse_member(self, requested_by): s.add(self) s.commit() update_warehouse_member_status(self.store_employee_id, 1, requested_by) update_warehouse_member_role(self.store_employee_id, 2, requested_by) return {'success': True}, 200, {'ContentType': 'application/json'}
def empty_basket_by_user_id(basket): for item in basket: s.delete(item) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def update_warehouse_member_role(id_miembro_almacen, role, updated_by): member_role = StoreEmployeeRole(id_miembro_almacen, role, updated_by) rol = member_role s.add(rol) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def delete_item(self): s.delete(self) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}
def update_item(self, quantity): self.dynamic_basket_quantity = quantity s.add(self) s.commit() return {'success': True}, 200, {'ContentType': 'application/json'}