Ejemplo n.º 1
0
def exportData():
    type = request.form.get('type')
    name = request.form.get('name')
    user = request.form.get('user')
    try:
        repo_id = int(request.form.get('repo'))
    except TypeError:
        repo_id = None
    try:
        schema_id = int(request.form.get('schema'))
    except TypeError:
        schema_id = None
    try:
        record_ids = json.loads(request.form.get('records'))
    except TypeError:
        record_ids = None
    print repo_id, schema_id
    try:
        return makeResponse(
            payload=ExportManager.export(name, user, type, repo_id, schema_id,
                                         record_ids),
            headers={"Content-disposition": "attachment; filename=tmp.json"})
    except Exception as e:
        print "endpoint", e.message
        return makeResponse(error=e)
Ejemplo n.º 2
0
def getRepoForPortal(repo_uuid):
  try:
      return makeResponse(payload=RepoManager.getRepoForPortal(repo_uuid))
  except FindError as e:
      return makeResponse(error=e)
  except DbError as e:
      return makeResponse(error=e)
Ejemplo n.º 3
0
def listRepoFollowers(repo_id):
    try:
        return makeResponse(payload=RepoManager.getFollowers(int(repo_id)))
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 4
0
def importEventsForRepo(repo_id):

    try:
        return makeResponse(payload=UploadManager.getImportEventsForRepo(repo_id),
                            message="")
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 5
0
def getRepoForPortal(repo_uuid):
    try:
        return makeResponse(payload=RepoManager.getRepoForPortal(repo_uuid))
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 6
0
def refresh():
  current_user = get_jwt_identity()

  try:
    return makeResponse(payload={'access_token': create_access_token(identity=current_user)})
  except Exception as e:
    return makeResponse(error=e)
Ejemplo n.º 7
0
def listRepoFollowers(repo_id):
    try:
        return makeResponse(payload=RepoManager.getFollowers(int(repo_id)))
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 8
0
def getRepoOwner(repo_id):
    try:
        owner = RepoManager.getOwner(int(repo_id))
        return makeResponse(payload=owner)
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 9
0
def removeRepoFollower(repo_id, person_id):
    try:
        RepoManager.removeFollower(int(repo_id), int(person_id))
        return makeResponse(message="Follower removed")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 10
0
def deleteRepoOwner(repo_id, person_id):
    try:
        rel_deleted = RepoManager.deleteOwner(int(repo_id), int(person_id))
        return makeResponse(payload={}, message="Deleted owner")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 11
0
def addRepoFollower(repo_id, person_id):
    try:
        RepoManager.addFollower(int(repo_id), int(person_id))
        return makeResponse(message="Collaborator added")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 12
0
def deletePerson(person_id):
    try:
        PeopleManager.deletePerson(person_id)
        return makeResponse(message="Deleted person", payload={})
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 13
0
def getRepoInfo(repo_id):
    try:
        repo = RepoManager.getInfo(int(repo_id))
        return makeResponse(payload=repo)
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 14
0
def deleteRepoOwner(repo_id, person_id):
    try:
        rel_deleted = RepoManager.deleteOwner(int(repo_id), int(person_id))
        return makeResponse(payload={}, message="Deleted owner")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 15
0
def addRepoFollower(repo_id, person_id):
    try:
        RepoManager.addFollower(int(repo_id), int(person_id))
        return makeResponse(message="Collaborator added")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 16
0
def getRepoOwner(repo_id):
    try:
        owner = RepoManager.getOwner(int(repo_id))
        return makeResponse(payload=owner)
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 17
0
def removeRepoFollower(repo_id, person_id):
    try:
        RepoManager.removeFollower(int(repo_id), int(person_id))
        return makeResponse(message="Follower removed")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 18
0
def getRepoInfo(repo_id):
    try:
        repo = RepoManager.getInfo(int(repo_id))
        return makeResponse(payload=repo)
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 19
0
def login():
    username = request.form.get('username')
    password = request.form.get('password')

    try:
        return makeResponse(message="Login successful", payload=AuthManager.login(username, password))
    except AuthError as e:
        return makeResponse(error=e)
Ejemplo n.º 20
0
def deleteType(repo_id, type_id):
    current_user = get_jwt_identity()
    if PeopleManager.checkRepoPermissions(current_user, repo_id) == False:
        return makeResponse(status=401, message="You do not have permissions to access this repository!")
    try:
        return makeResponse(payload=SchemaManager.deleteType(repo_id, type_id), message="Deleted type")
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 21
0
def deletePerson(person_id):
    try:
        PeopleManager.deletePerson(person_id)
        return makeResponse(message="Deleted person", payload={})
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 22
0
def getRepoDataCounts():
    repo_id = int(request.form.get('repo_id'))

    try:
        return makeResponse(payload=RepoManager.getDataCounts(repo_id))
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 23
0
def listRepoUsers():
    repo_id = int(request.form.get('repo_id'))

    try:
        return makeResponse(payload=RepoManager.getUsers(repo_id))
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 24
0
def deleteRepo():
    repo_id = int(request.form.get('repo_id'))
    try:
        RepoManager.delete(repo_id)
        return makeResponse(payload={"repo_id": repo_id}, message="Repository deleted")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 25
0
def sendPasswordReset(email_address):
    try:
        if AuthManager.sendPasswordReset(email_address):
            msg = "Password reset"
        else:
            msg = "Password not changed"
        return makeResponse(message=msg, payload={})
    except AuthError as e:
        return makeResponse(error=e)
Ejemplo n.º 26
0
def listRepoUsers():
    repo_id = int(request.form.get('repo_id'))

    try:
        return makeResponse(payload=RepoManager.getUsers(repo_id))
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 27
0
def getRepoDataCounts():
  repo_id = int(request.form.get('repo_id'))

  try:
      return makeResponse(payload=RepoManager.getDataCounts(repo_id))
  except FindError as e:
      return makeResponse(error=e)
  except DbError as e:
      return makeResponse(error=e)
Ejemplo n.º 28
0
def getPersonRepos():
    identity = request.form.get('person_id')
    if identity is None:
        current_token = get_raw_jwt()
        identity = current_token['identity']

    try:
        return makeResponse(payload=PeopleManager.getReposForPerson(identity))
    except FindError as e:
        return makeResponse(error=e)
Ejemplo n.º 29
0
def deleteRepo():
    repo_id = int(request.form.get('repo_id'))
    try:
        RepoManager.delete(repo_id)
        return makeResponse(payload={"repo_id": repo_id},
                            message="Repository deleted")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 30
0
def getPersonRepos():
    identity = request.form.get('person_id')
    if identity is None:
        current_token = get_raw_jwt()
        identity = current_token['identity']

    try:
        return makeResponse(payload=PeopleManager.getReposForPerson(identity))
    except FindError as e:
        return makeResponse(error=e)
Ejemplo n.º 31
0
def getType(repo_id, schema_id):
    current_user = get_jwt_identity()
    if PeopleManager.checkRepoPermissions(current_user, repo_id) == False:
        return makeResponse(
            status=401,
            message="You do not have permissions to access this repository!")
    try:
        return makeResponse(payload=SchemaManager.getType(repo_id, schema_id))
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 32
0
def logout():
    try:
        current_token = get_raw_jwt()
        jti = current_token['jti']
        revoke_token(jti)
        return makeResponse(payload={}, message="Logged out")
    except KeyError as e:
        return makeResponse(error=e)
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 33
0
def removeRepoCollab():
    repo_id = request.form.get('repo_id')
    person_id = request.form.get('person_id')

    try:
        RepoManager.removeCollaborator(int(repo_id), int(person_id))
        return makeResponse(message="Collaborator removed")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 34
0
def removeRepoCollab():
    repo_id = request.form.get('repo_id')
    person_id = request.form.get('person_id')

    try:
        RepoManager.removeCollaborator(int(repo_id), int(person_id))
        return makeResponse(message="Collaborator removed")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 35
0
def addType(repo_id):
    name = request.form.get('name')
    code = request.form.get('code')
    description = request.form.get('description')
    current_user = get_jwt_identity()
    if PeopleManager.checkRepoPermissions(current_user, repo_id) == False:
        return makeResponse(status=401, message="You do not have permissions to access this repository!")
    try:
        return makeResponse(message="Added type", payload=SchemaManager.addType(repo_id, name, code, description, extractRepeatingParameterBlocksFromRequest(request, 'fields')))
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 36
0
def addList(repo_id):
    name = request.form.get('name')
    code = request.form.get('code')
    description = request.form.get('description')
    merge_setting = request.form.get('merge_allowed')
    items = extractRepeatingParameterBlocksFromRequest(request, 'items')

    try:
        return makeResponse(payload=ListManager.addList(repo_id, name, code, merge_setting, description, items))
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 37
0
def addList(repo_id):
    name = request.form.get('name')
    code = request.form.get('code')
    description = request.form.get('description')
    merge_setting = request.form.get('merge_allowed')
    items = extractRepeatingParameterBlocksFromRequest(request, 'items')

    try:
        return makeResponse(payload=ListManager.addList(
            repo_id, name, code, merge_setting, description, items))
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 38
0
def addData(repo_id, typecode):
    data = request.form.get('data')
    current_user = get_jwt_identity()
    if PeopleManager.checkRepoPermissions(current_user, repo_id) == False:
        return makeResponse(status=401, message="You do not have permissions to access this repository!")
    try:
        if SchemaManager.addDataToRepo(repo_id, typecode, json.loads(data)):
            return makeResponse(payload={"msg": "Added data to repository"})
        else:
            return makeResponse(payload={"msg": "No data to add"})
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 39
0
def paging():
    exp = request.args.get('q')
    node = request.args.get('n')
    try:
        start = int(request.args.get('s'))
        end = int(request.args.get('e'))
    except ValueError as e:
        return makeResponse(error=e)
    try:
        return makeResponse(payload=SearchManager.quick(exp, node, start, end))
    except SearchError as e:
        return makeResponse(error=e)
Ejemplo n.º 40
0
def addRepoCollab():
    repo_id = int(request.form.get('repo_id'))
    person_id = int(request.form.get('person_id'))
    access = request.form.get('access')

    try:
        RepoManager.addCollaborator(repo_id, person_id, access)
        return makeResponse(message="Collaborator added")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 41
0
def getDataForType(repo_id, type, start, limit):
    # TODO: check that user has access to this data
    try:
        start = int(start)
        limit = int(limit)
    except:
        start = 0
        limit = 1000
    try:
        return makeResponse(payload=DataManager.getDataForType(repo_id, type, start, limit))
    except SaveError as e:
        return makeResponse(error=e)
Ejemplo n.º 42
0
def addRepoCollab():
    repo_id = int(request.form.get('repo_id'))
    person_id = int(request.form.get('person_id'))
    access = request.form.get('access')

    try:
        RepoManager.addCollaborator(repo_id, person_id, access)
        return makeResponse(message="Collaborator added")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 43
0
def editList(repo_id, list_id):
    name = request.form.get('name')
    code = request.form.get('code')
    description = request.form.get('description')
    allow_merge = request.form.get('merge_allowed')

    items = extractRepeatingParameterBlocksFromRequest(request, 'items')
    delete_items = extractRepeatingParameterFromRequest(request, 'itemsToDelete')
    try:
        return makeResponse(payload=ListManager.editList(repo_id, list_id, name, code, description, items, delete_items, allow_merge))
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 44
0
def addField(repo_id, typecode):
    name = request.form.get('name')
    code = request.form.get('code')
    fieldtype = request.form.get('type')
    description = request.form.get('description')
    current_user = get_jwt_identity()
    if PeopleManager.checkRepoPermissions(current_user, repo_id) == False:
        return makeResponse(status=401, message="You do not have permissions to access this repository!")
    try:
        return makeResponse(payload=SchemaManager.addField(repo_id, typecode, name, code, fieldtype, description), message="Added field")
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 45
0
def getDataForType(repo_id, type, start, limit):
    # TODO: check that user has access to this data
    try:
        start = int(start)
        limit = int(limit)
    except:
        start = 0
        limit = 1000
    try:
        return makeResponse(
            payload=DataManager.getDataForType(repo_id, type, start, limit))
    except SaveError as e:
        return makeResponse(error=e)
Ejemplo n.º 46
0
def editRepo(repo_id):
    url = request.form.get('url')
    name = request.form.get('name')
    readme = request.form.get('readme')
    license = request.form.get('license')
    published = request.form.get('published')
    featured = request.form.get('featured')

    try:
        return makeResponse(payload=RepoManager.edit(repo_id, name, url, readme, license, published, featured), message="Edited repository")
    except FindError as e:
        return makeResponse(error=e)
    except ValidationError as e:
        return makeResponse(error=e)
Ejemplo n.º 47
0
def addData(repo_id, typecode):
    data = request.form.get('data')
    current_user = get_jwt_identity()
    if PeopleManager.checkRepoPermissions(current_user, repo_id) == False:
        return makeResponse(
            status=401,
            message="You do not have permissions to access this repository!")
    try:
        if SchemaManager.addDataToRepo(repo_id, typecode, json.loads(data)):
            return makeResponse(payload={"msg": "Added data to repository"})
        else:
            return makeResponse(payload={"msg": "No data to add"})
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 48
0
def setPassword(person_id):
    #TODO: user may only set their own password by id; non-auth user can reset password with valid key

    password = request.form.get('password')

    try:
        if AuthManager.setPassword(person_id, password):
            msg = "Password changed"
        else:
            msg = "Password not changed"
        return makeResponse(message=msg, payload={})
    except FindError as e:
        return makeResponse(error=e)
    except AuthError as e:
        return makeResponse(error=e)
Ejemplo n.º 49
0
def editList(repo_id, list_id):
    name = request.form.get('name')
    code = request.form.get('code')
    description = request.form.get('description')
    allow_merge = request.form.get('merge_allowed')

    items = extractRepeatingParameterBlocksFromRequest(request, 'items')
    delete_items = extractRepeatingParameterFromRequest(
        request, 'itemsToDelete')
    try:
        return makeResponse(payload=ListManager.editList(
            repo_id, list_id, name, code, description, items, delete_items,
            allow_merge))
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 50
0
def setRepoOwner(repo_id):
    # Get person by auth token
    current_token = get_raw_jwt()
    jti = current_token['jti']

    # email address
    identity = current_token['identity']
    ident_str = "p.email = {identity}"

    try:
        RepoManager.setOwner(int(repo_id), identity, ident_str)
        return makeResponse(payload={}, message="Set repository owner")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 51
0
def setRepoOwner(repo_id):
    # Get person by auth token
    current_token = get_raw_jwt()
    jti = current_token['jti']

    # email address
    identity = current_token['identity']
    ident_str = "p.email = {identity}"

    try:
        RepoManager.setOwner(int(repo_id), identity, ident_str)
        return makeResponse(payload={}, message="Set repository owner")
    except FindError as e:
        return makeResponse(error=e)
    except DbError as e:
        return makeResponse(error=e)
Ejemplo n.º 52
0
def addField(repo_id, typecode):
    name = request.form.get('name')
    code = request.form.get('code')
    fieldtype = request.form.get('type')
    description = request.form.get('description')
    current_user = get_jwt_identity()
    if PeopleManager.checkRepoPermissions(current_user, repo_id) == False:
        return makeResponse(
            status=401,
            message="You do not have permissions to access this repository!")
    try:
        return makeResponse(payload=SchemaManager.addField(
            repo_id, typecode, name, code, fieldtype, description),
                            message="Added field")
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 53
0
def addType(repo_id):
    name = request.form.get('name')
    code = request.form.get('code')
    description = request.form.get('description')
    current_user = get_jwt_identity()
    if PeopleManager.checkRepoPermissions(current_user, repo_id) == False:
        return makeResponse(
            status=401,
            message="You do not have permissions to access this repository!")
    try:
        return makeResponse(message="Added type",
                            payload=SchemaManager.addType(
                                repo_id, name, code, description,
                                extractRepeatingParameterBlocksFromRequest(
                                    request, 'fields')))
    except Exception as e:
        return makeResponse(error=e)
Ejemplo n.º 54
0
def importData():
    repo_id = int(request.form.get('repo_id'))
    filename = request.form.get('filename')
    original_filename = request.form.get('original_filename')
    data_mapping = request.form.get('data_mapping').split("|")
    field_names = request.form.get('field_names').split("|")
    type = request.form.get('type')
    ignore_first = request.form.get('ignore_first')
    schema_name = request.form.get('schema_name')
    data_types = request.form.get('column_types').split("|")
    field_descriptions = request.form.get('field_descriptions').split("|")
    search_display_fields = request.form.get('field_search_display').split("|")
    allow_list_merge = request.form.get('allow_list_merge').split("|")

    try:
        return makeResponse(payload=UploadManager.importData(repo_id, type, filename, original_filename, data_mapping, ignore_first, field_names, schema_name, data_types, field_descriptions, search_display_fields, allow_list_merge), message="File imported")
    except UploadError as e:
        return makeResponse(error=e)