def get(self): parser = reqparse.RequestParser() parser.add_argument('username', location='headers') parser.add_argument('password', location='headers') parser.add_argument('order') parser.add_argument('product') params = parser.parse_args() if params['username'] is None or params['password'] is None: response = jsonify({"error": "no username and/or password"}) response.status_code = 400 return response if Auth.check(params['username'], params['password']) == False: response = jsonify({"error": "user unauthorized"}) response.status_code = 401 return response query = "select * from order_details" query_clauses = [] if params['order'] is not None: query_clauses.append(f"OrderID = '{params['order']}'") if params['product'] is not None: query_clauses.append(f"ProductID = '{params['product']}'") if len(query_clauses) != 0: query += " where " + " and ".join(query_clauses) c.cursor.execute(query) records = c.cursor.fetchall() rows = len(records) result = {'count': rows, 'order_details': [{'OrderID': id, 'ProductID': pid, 'UnitPrice': f"{uprice:.2f}", 'Quantity': quan, 'Discount': str(disc)} for (id, pid, uprice, quan, disc) in records]} return result
def get(self): parser = reqparse.RequestParser() parser.add_argument('username', location='headers') parser.add_argument('password', location='headers') parser.add_argument('id') parser.add_argument('customer') parser.add_argument('city') parser.add_argument('country') params = parser.parse_args() if params['username'] is None or params['password'] is None: response = jsonify({"error": "no username and/or password"}) response.status_code = 400 return response if Auth.check(params['username'], params['password']) == False: response = jsonify({"error": "user unauthorized"}) response.status_code = 401 return response query = "select OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry from orders" query_clauses = [] if params['id'] is not None: query_clauses.append(f"OrderID = '{params['id']}'") if params['customer'] is not None: query_clauses.append(f"CustomerID = '{params['customer']}'") if params['city'] is not None: query_clauses.append(f"ShipCity = '{params['city']}'") if params['country'] is not None: query_clauses.append(f"ShipCountry = '{params['country']}'") if len(query_clauses) != 0: query += " where " + " and ".join(query_clauses) c.cursor.execute(query) records = c.cursor.fetchall() rows = len(records) result = { 'count': rows, 'orders': [{ 'OrderID': id, 'CustomerID': customer, 'EmployeeID': employee, 'OrderDate': str(odate), 'RequiredDate': str(rdate), 'ShippedDate': str(sdate), 'ShipVia': via, 'Freight': str(freight), 'ShipName': name, 'ShippedDate': address, 'ShipCity': city, 'ShipRegion': region, 'ShipPostalCode': postal, 'ShipCountry': country } for (id, customer, employee, odate, rdate, sdate, via, freight, name, address, city, region, postal, country) in records] } return result
def get(self): parser = reqparse.RequestParser() parser.add_argument('username', location='headers') parser.add_argument('password', location='headers') params = parser.parse_args() if params['username'] is None or params['password'] is None: response = jsonify({"error": "no username and/or password"}) response.status_code = 400 return response if Auth.check(params['username'], params['password']) == False: response = jsonify({"error": "user unauthorized"}) response.status_code = 401 return response c.cursor.execute( "select EmployeeID, LastName, FirstName, Title, TitleOfCourtesy, BirthDate, HireDate, Address, City, Region, PostalCode, Country, HomePhone, Extension, Notes from employees" ) records = c.cursor.fetchall() rows = len(records) result = { 'count': rows, 'employees': [{ 'EmployeeID': id, 'LastName': lname, 'FirstName': fname, 'Title': title, 'TitleOfCourtesy': toc, 'BirthDate': str(bdate), 'HireDate': str(hdate), 'Address': address, 'City': city, 'Region': region, 'PostalCode': pcode, 'Country': country, 'HomePhone': hphone, 'Extension': extension, 'Notes': notes } for (id, lname, fname, title, toc, bdate, hdate, address, city, region, pcode, country, hphone, extension, notes) in records] } return result
def post(self): parser = reqparse.RequestParser() parser.add_argument('username', location='headers') parser.add_argument('password', location='headers') parser.add_argument('newSupplier', location='json') params = parser.parse_args() if params['username'] is None or params['password'] is None: response = jsonify({"error": "no username and/or password"}) response.status_code = 400 return response if Auth.check(params['username'], params['password']) == False: response = jsonify({"error": "user unauthorized"}) response.status_code = 401 return response if params['newSupplier'] is None: response = jsonify({"error": "no newSupplier attribute found"}) response.status_code = 400 return response try: supplier = json.loads(params['newSupplier'].replace('\'', '"')) except Exception as e: response = jsonify({"error": "newSupplier must be an object"}) response.status_code = 400 return response if 'companyName' not in supplier: response = jsonify( {"error": "no required companyName attribute found"}) response.status_code = 400 return response columns = ['CompanyName'] values = [supplier['companyName']] if 'contactName' in supplier: columns.append('ContactName') values.append(supplier['contactName']) if 'contactTitle' in supplier: columns.append('ContactTitle') values.append(supplier['contactTitle']) if 'address' in supplier: columns.append('Address') values.append(supplier['address']) if 'city' in supplier: columns.append('City') values.append(supplier['city']) if 'region' in supplier: columns.append('Region') values.append(supplier['region']) if 'postalCode' in supplier: columns.append('PostalCode') values.append(supplier['postalCode']) if 'country' in supplier: columns.append('Country') values.append(supplier['country']) if 'phone' in supplier: columns.append('Phone') values.append(supplier['phone']) if 'fax' in supplier: columns.append('Fax') values.append(supplier['fax']) if 'homePage' in supplier: columns.append('HomePage') values.append(supplier['homePage']) query = "insert into suppliers (" + ', '.join(columns) + \ ") VALUES (\"" + '", "'.join(values) + "\")" c.cursor.execute(query) rows = c.cursor.rowcount if rows == 1: response = jsonify({"ok": "supplier successfully inserted"}) response.status_code = 200 return response else: response = jsonify({"error": "supplier not inserted"}) response.status_code = 400 return response
class MyElement (QObject): hasLockChanged = pyqtSignal() hasLoginChanged = pyqtSignal() hasErrorChanged = pyqtSignal() hasRegisterChanged = pyqtSignal() varChanged = pyqtSignal() themeChanged = pyqtSignal() overlayChanged = pyqtSignal() def __init__(self, parent=None): super(MyElement, self).__init__() self.setObjectName('mainObject') self._users = [] self._index = 0 self._myTheme = Theme() self._myColor = self._myTheme.getTheme() self.mainProc = QProcess() self.secondProc = QProcess() self.mainProc.finished.connect(self.finishProc) self.mainProc.started.connect(self.startProc) self.secondProc.finished.connect(self.secondFinishProc) self.secondProc.started.connect(self.startProc) self.auth = Auth() self._isiPesan = "" self._judulPesan = "Error" self._overlay = "" self._isLock = False self._hasRegister = False self._hasLogin = False self._hasError = False self._userListData = UserItemModel() self._userListData.addRootElement() self.addNewUser() @pyqtProperty(bool, notify=hasLockChanged) def isLock(self): return os.path.isfile("/var/ubezee/LOCKED") def finishProc(self, exitCode): if not exitCode: self.setError(True, "Proses Berhasil", "Proses buka/tutup kunci telah berhasil, silakan hidupkan ulang komputer anda untuk mengimplementasikan perubahan.") self._overlay = "" self.hasLockChanged.emit() else: self.setError(True, "Proses Gagal", "Terjadi kesalahan saat akan melakukan proses buka/tutup kunci, silakan coba lagi.") def secondFinishProc(self, exitCode): if not exitCode: self.setError(True, "Proses Berhasil", "Proses buka/tutup kunci pada pengguna telah berhasil, silakan hidupkan ulang komputer anda untuk mengimplementasikan perubahan.") self._overlay = "" h = self._userListData.index(self._index, 0) if self._userListData.itemFromIndex(h).data(5): self._userListData.itemFromIndex(h).setData(False, 5) else: self._userListData.itemFromIndex(h).setData(True, 5) else: self.setError(True, "Proses Gagal", "Terjadi kesalahan saat akan melakukan proses buka/tutup kunci, silakan coba lagi.") def startProc(self): self.setInfo("Harap Tunggu", "Proses buka/tutup pengunci sistem sedang berlangsung, mohon tunggu sebentar...") self.setOverlay("loading") @pyqtSlot(bool) def changeLock(self, todo): if todo: self.mainProc.start("bash locker.sh -l sistem") else: self.mainProc.start("bash locker.sh -u sistem") @pyqtSlot(int, str, bool) def lockUser(self, index, nama, locked): self._index = index if not locked: self.secondProc.start("bash locker.sh -l %s" % nama) else: self.secondProc.start("bash locker.sh -u %s" % nama) @pyqtProperty(bool, notify=hasLoginChanged) def hasLogin(self): return self._hasLogin @pyqtProperty(str, notify=themeChanged) def myColor1(self): return self._myColor[0] @pyqtProperty(str, notify=themeChanged) def myColor2(self): return self._myColor[1] @pyqtSlot(str) def setTheme(self, theme): self._myTheme.setTheme(theme) self.themeChanged.emit() @pyqtProperty(str, notify=varChanged) def isiPesan(self): return self._isiPesan @pyqtSlot(str, str) def setInfo(self, judul,isi): if self._isiPesan != isi: self._isiPesan = isi if self._judulPesan != judul: self._judulPesan = judul self.varChanged.emit() @pyqtProperty(str, notify=varChanged) def judulPesan(self): return self._judulPesan @pyqtProperty(str, notify=varChanged) def getPassword(self): return self.auth.get_password() @pyqtProperty(bool, notify=hasRegisterChanged) def hasRegister(self): return self.auth.check() def setRegister(self, register): if self._hasRegister != register: self._hasRegister = register self.hasRegisterChanged.emit() @pyqtSlot(str, str) def doRegister(self, hint, userPass): if self.auth.set_password(userPass, hint): self.setError(True, "Proses Gagal", "Terjadi kesalahan pada proses pembuatan kata kunci baru.") else: self.setError(True, "Perubahan Berhasil", "Kata kunci anda berhasil dirubah dan disimpan.") self.setRegister(True) def setLogin(self, login): if self._hasLogin != login: self._hasLogin = login self.hasLoginChanged.emit() @pyqtProperty(bool, notify=hasErrorChanged) def hasError(self): return self._hasError @pyqtProperty(str, notify=overlayChanged) def overlay(self): return self._overlay @pyqtSlot(str) def setOverlay(self, overlay): self._overlay = overlay self.overlayChanged.emit() print(self._overlay) @pyqtSlot(bool, str, str) def setError(self, error, judul, isi): if self._hasError != error: self.setInfo(judul, isi) self._hasError = error self.hasErrorChanged.emit() @pyqtProperty(QStandardItemModel, constant=True) def userListData(self): return self._userListData @pyqtSlot(str) def check_pass(self, password): if self.auth.checkAuth(str(password)): self.setLogin(True) self.setOverlay("") else: self.setError(True, "Gagal Masuk", "kata kunci yang anda masukkan salah, silakan coba lagi.") def addNewUser(self): self.getUsers() for i in self._users: user = MyUser(i[0],i[4],i[5]) self._userListData.addUserItem(user.getName(), user.getAvatar(), user.getHome(), user.getRealName(), user.getLock()) def getUsers(self): for users in pwd.getpwall(): if users[2] >= 1000: self._users.append(users)
def get(self): parser = reqparse.RequestParser() parser.add_argument('username', location='headers') parser.add_argument('password', location='headers') params = parser.parse_args() if params['username'] is None or params['password'] is None: response = jsonify({"error": "no username and/or password"}) response.status_code = 400 return response if Auth.check(params['username'], params['password']) == False: response = jsonify({"error": "user unauthorized"}) response.status_code = 401 return response query = "select o.OrderID, o.CustomerID, o.EmployeeID, o.OrderDate, o.RequiredDate, o.ShippedDate, o.ShipVia, o.Freight, o.ShipName, o.ShipAddress, o.ShipCity, o.ShipRegion, o.ShipPostalCode, o.ShipCountry, od.*, p.*, c.CategoryName, c.Description from orders o join order_details od on o.OrderID = od.OrderID join products p on od.ProductID = p.ProductID join categories c on c.CategoryID = p.CategoryID order by o.OrderID" c.cursor.execute(query) records = c.cursor.fetchall() previous_oid = 0 orders_array = [] details_array = [] for (id, customer, employee, odate, rdate, sdate, via, freight, name, address, city, region, postal, country, oid, opid, ounit, oquan, odisc, pid, pname, psid, pcid, pquan, punit, pstock, porder, preorder, pdisc, cname, cdesc) in records: if previous_oid != id and previous_oid != 0: one_order = { 'OrderID': id, 'CustomerID': customer, 'EmployeeID': employee, 'OrderDate': str(odate), 'RequiredDate': str(rdate), 'ShippedDate': str(sdate), 'ShipVia': via, 'Freight': str(freight), 'ShipName': name, 'ShippedDate': address, 'ShipCity': city, 'ShipRegion': region, 'ShipPostalCode': postal, 'ShipCountry': country, 'OrderDetails': details_array } details_array = [] orders_array.append(one_order) category = {'CategoryName': cname, 'Description': cdesc} product = { 'ProductID': pid, 'ProductName': pname, 'SupplierID': psid, 'Category': category, 'QuantityPerUnit': pquan, 'UnitPrice': f"{punit:.2f}", 'UnitsInStock': pstock, 'UnitsOnOrder': porder, 'ReorderLevel': preorder, 'Discontinued': pdisc == 1 } one_detail = { 'Product': product, 'UnitPrice': f"{ounit:.2f}", 'Quantity': oquan, 'Discount': str(odisc) } details_array.append(one_detail) previous_oid = id result = {"orders": orders_array} return result
def get(self): parser = reqparse.RequestParser() parser.add_argument('username', location='headers') parser.add_argument('password', location='headers') parser.add_argument('supplier', location='json') parser.add_argument('category', location='json') parser.add_argument('unit_price', location='json') parser.add_argument('units_in_stock', location='json') parser.add_argument('units_on_order', location='json') parser.add_argument('reorder_level', location='json') parser.add_argument('discontinued', location='json') params = parser.parse_args() if params['username'] is None or params['password'] is None: response = jsonify({"error": "no username and/or password"}) response.status_code = 400 return response if Auth.check(params['username'], params['password']) == False: response = jsonify({"error": "user unauthorized"}) response.status_code = 401 return response query = "select * from products" query_clauses = [] unit_price = params['unit_price'] units_in_stock = params['units_in_stock'] units_on_order = params['units_on_order'] reorder_level = params['reorder_level'] if unit_price is not None: unit_price = json.loads(unit_price.replace('\'', '"')) if 'gt' in unit_price: query_clauses.append(f"UnitPrice > {unit_price['gt']}") if 'lt' in unit_price: query_clauses.append(f"UnitPrice < {unit_price['lt']}") if units_in_stock is not None: units_in_stock = json.loads(units_in_stock.replace('\'', '"')) if 'gt' in units_in_stock: query_clauses.append(f"UnitsInStock > {units_in_stock['gt']}") if 'lt' in units_in_stock: query_clauses.append(f"UnitsInStock < {units_in_stock['lt']}") if units_on_order is not None: units_on_order = json.loads(units_on_order.replace('\'', '"')) if 'gt' in units_on_order: query_clauses.append(f"UnitsOnOrder > {units_on_order['gt']}") if 'lt' in units_on_order: query_clauses.append(f"UnitsOnOrder < {units_on_order['lt']}") if reorder_level is not None: reorder_level = json.loads(reorder_level.replace('\'', '"')) if 'gt' in reorder_level: query_clauses.append(f"ReorderLevel > {reorder_level['gt']}") if 'lt' in reorder_level: query_clauses.append(f"ReorderLevel < {reorder_level['lt']}") if params['supplier'] is not None: query_clauses.append(f"SupplierID = {params['supplier']}") if params['category'] is not None: query_clauses.append(f"CategoryID = {params['category']}") if params['category'] is not None: query_clauses.append(f"CategoryID = {params['category']}") if params['discontinued'] is not None: query_clauses.append(f"Discontinued = {params['discontinued']}") if len(query_clauses) != 0: query += " where " + " and ".join(query_clauses) c.cursor.execute(query) records = c.cursor.fetchall() rows = len(records) result = { 'count': rows, 'products': [{ 'ProductID': id, 'ProductName': name, 'SupplierID': supplier, 'CategoryID': category, 'QuantityPerUnit': quan, 'UnitPrice': f"{uprice:.2f}", 'UnitsInStock': stock, 'UnitsOnOrder': order, 'ReorderLevel': reorder, 'Discontinued': disc == 1 } for (id, name, supplier, category, quan, uprice, stock, order, reorder, disc) in records] } return result
def carpeta(*args): for carp in args: try: os.makedirs(carp) except FileExistsError: pass nulled = "" while not nulled: nulled = input("Input your nulled auth: ") limpiar() Auth(nulled, "1196019", "IT1J672Y6G7H2NCYNUIIMCTJV67PH1SF") au = Auth.check() if au != True: error("Wrong Auth") exit() limpiar() class Checker: def __init__(self, proxy_object): if not proxy_object: self.proxyless = True else: if len(proxy_object) > 1: self.proxyless = False self.proxy = proxy_object