def get(self, accountId): queryDeveloperApp = ApplicationDeveloper.query.filter_by( accountid=accountId).all() if not queryDeveloperApp: return res.resourceMissing( "No apps for developer with account {} found.".format( accountId)) developerapps, error = applicationdevelopers_schema.dump( queryDeveloperApp) if error: return res.internalServiceError(error) allapps = [] for developerapp in developerapps: queryApplication = Application.query.filter( Application.id == developerapp["appid"]).filter( or_( Application.active == True, and_(Application.active == False, Application.runningversion == 0))).first() if queryApplication: queryAppVersion = ApplicationVersion.query.filter( ApplicationVersion.app == queryApplication.id).first() developerapp["appDetails"] = application_schema.dump( queryApplication).data if queryAppVersion: developerapp["appDetails"][ "appversionDetails"] = applicationversion_schema.dump( queryAppVersion).data allapps.append(developerapp) return res.getSuccess(data=allapps)
def get(self): queryApps = Application.query.filter_by(active=True).all() print(queryApps) if not queryApps: return res.resourceMissing("No apps in AppStore yet. Brah!") apps, error = applications_schema.dump(queryApps) if error: return res.internalServiceError(error) for a in apps: queryAppVersion = ApplicationVersion.query.filter_by( id=a["runningversion"]).first() a["appversionDetails"] = applicationversion_schema.dump( queryAppVersion).data return res.getSuccess(data=apps)
def get(self, appversionId): queryAppVersion = ApplicationVersion.query.filter_by( id=appversionId).first() if not queryAppVersion: return res.resourceMissing( "No version record {} exists.".format(appversionId)) appVersion, error = applicationversion_schema.dump(queryAppVersion) if error: return res.internalServiceError(error) queryApp = Application.query.filter_by(id=queryAppVersion.app).first() if not queryApp: return res.resourceMissing("App {} does not exist.".format( queryAppVersion.app)) appVersion["appDetails"] = application_schema.dump(queryApp).data return res.getSuccess(data=appVersion)
def get(self, accountId): appRequestServ = requests.get(app.config['APPREQUEST_SERVICE'] + "customer/{}".format(accountId)).json() print(json.dumps(appRequestServ)) if "success" not in appRequestServ["status"]: return res.internalServiceError("Sorry :(") allRequests = appRequestServ["data"] applications = [] for req in allRequests: queryAppVersion = ApplicationVersion.query.filter_by( id=req["appversion"]).first() queryApp = Application.query.filter_by( id=queryAppVersion.app).first() thisapp = application_schema.dump(queryApp).data thisapp["appversionDetails"] = applicationversion_schema.dump( queryAppVersion).data applications.append(thisapp) return res.getSuccess(data=applications)
def post(self, appId): data = request.form print(data) print(request.files) # Verifies data required was sent in request if not data or not data.get("appName") or not data.get( "versionNumber") or not data.get("checksum") or not data.get( "versionDescription"): return res.badRequestError("Missing data to process request.") # Verifies app version file was sent in request if 'file' not in request.files: return res.badRequestError("Missing app file.") file = request.files['file'] if "icon" not in request.files: return res.badRequestError("Send me an icon.") icon = request.files['icon'] iconPath = os.path.join(app.config["UPLOAD_FOLDER"], data.get("appName"), "Icon") print(iconPath) saved, msg = ServUtil.saveIcon(icon, iconPath) if not saved: return res.internalServiceError(msg) checksum = ServUtil.checksum_sha256(file) if data.get("checksum") == checksum: print("good checksum") else: return res.badRequestError("File corrupted.") file.seek(0) # Verifies app exists queryApp = Application.query.filter_by(id=appId).first() if not queryApp: return res.resourceMissing("App {} not found.".format(appId)) queryAppVersion = ApplicationVersion.query.filter_by( app=appId, version=data.get("versionNumber")).first() if queryAppVersion: return res.resourceExistsError( "Duplicate {} v.{} has already been submitted for review.". format(queryApp.appname, queryAppVersion.version)) # Validates data and creates application version appVersionDetails = { "app": appId, "version": data.get("versionNumber"), "description": data.get("versionDescription") } newappVersion, error = applicationversion_schema.load( appVersionDetails) if error: return res.internalServiceError(error) db.session.add(newappVersion) db.session.commit() # Saves version files saved, msg = ServUtil.saveinAppVersion(app, file, data) if not saved: return res.internalServiceError(message=msg) return res.postSuccess( "{} v.{} successfully created !".format(queryApp.appname, newappVersion.version), applicationversion_schema.dump(newappVersion).data)