Skip to content

Commit

Permalink
Restoring endpoint to create project data from a project id
Browse files Browse the repository at this point in the history
  • Loading branch information
Spurs20 committed Mar 20, 2023
1 parent 83af78e commit 450f3b2
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
1 change: 1 addition & 0 deletions packages/slycat/web/server/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ def abspath(path):
dispatcher.connect("put-project-csv-data", "/projects/:pid/data/:file_key/parser/:parser/mid/:mid/aids/:aids", slycat.web.server.handlers.put_project_csv_data, conditions={"method": ["PUT"]})
dispatcher.connect("get-project-data", "/projects/data/:did", slycat.web.server.handlers.get_project_data, conditions={"method": ["GET"]})
dispatcher.connect("put-project-data-parameter", "/data/:did/aids/:aid", slycat.web.server.handlers.put_project_data_parameter, conditions={"method": ["PUT"]})
dispatcher.connect("post-project-data", "/projects/data/:pid", slycat.web.server.handlers.create_project_data_from_pid, conditions={"method": ["POST"]})
dispatcher.connect("get-project-data-in-model", "/projects/data/model/:mid", slycat.web.server.handlers.get_project_data_in_model, conditions={"method": ["GET"]})
dispatcher.connect("get-project-file-names", "/projects/:pid/name", slycat.web.server.handlers.get_project_file_names, conditions={"method": ["GET"]})
dispatcher.connect("get-project-data-parameter", "/projects/data/:did/parameters/:param", slycat.web.server.handlers.get_project_data_parameter, conditions={"method": ["GET"]})
Expand Down
39 changes: 38 additions & 1 deletion packages/slycat/web/server/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,44 @@ def post_project_models(pid):
cherrypy.response.status = "201 Model created."
return {"id": mid}

# @cherrypy.tools.json_in(on=True)
# @cherrypy.tools.json_out(on=True)
def create_project_data_from_pid(pid, file=None, file_name=None):
"""
creates a project level data object from a project id
that can be used to create new
models in the current project
:param file_name: artifact ID
:param file: file attachment
:return: not used
"""

database = slycat.web.server.database.couchdb.connect()
project = database.get("project", pid)
slycat.web.server.authentication.require_project_writer(project)

csv_data = str(file.file.read(), 'utf-8')

content_type = "text/csv"
timestamp = time.time()
formatted_timestamp = datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
did = uuid.uuid4().hex

data = {
"_id": did,
"type": "project_data",
"file_name": formatted_timestamp + "_" + file_name,
"data_table": "data-table",
"project": pid,
"mid": [""],
"created": datetime.datetime.utcnow().isoformat(),
"creator": cherrypy.request.login,
}

database.save(data)
cherrypy.log.error("[MICROSERVICE] Added project data %s." % data["file_name"])


def create_project_data(mid, aid, file):
"""
creates a project level data object that can be used to create new
Expand Down Expand Up @@ -637,7 +675,6 @@ def isNumeric(some_thing):
model["project_data"].append(did)
database.save(model)
database.save(data)
database.put_attachment(data, filename="content", content_type=content_type, content=file)
cherrypy.log.error("[MICROSERVICE] Added project data %s." % data["file_name"])

@cherrypy.tools.json_in(on=True)
Expand Down

0 comments on commit 450f3b2

Please sign in to comment.