def validate_milestone_data(request, **kwargs): update_logging_context(request, {"milestone_id": "__new__"}) model = type(request.plan).milestones.model_class milestone = validate_data(request, model) upload_objects_documents( request, request.validated["milestone"], route_kwargs={"milestone_id": request.validated["milestone"].id}) return milestone
def validate_qualification_complaint_post_data(request): update_logging_context(request, {"post_id": "__new__"}) validate_post_accreditation_level(request) model = type(request.tender).qualifications.model_class.complaints.model_class.posts.model_class post = validate_data(request, model) upload_objects_documents( request, request.validated["post"], route_kwargs={"post_id": request.validated["post"].id} ) return post
def collection_post(self): milestone = self.request.validated["milestone"] self.request.context.date = milestone.dateModified self.request.context.milestones.append(milestone) upload_objects_documents( self.request, milestone, route_kwargs={"milestone_id": milestone.id}, ) if apply_patch( self.request, obj_name="agreement", data={"status": MILESTONE_CONTRACT_STATUSES[milestone.type]}, src=self.request.validated["contract"].to_primitive()): self.request.response.status = 201 return {"data": milestone.serialize("view")}
def post(self): agreement = self.request.validated["agreement"] if not agreement.id: agreement_id = generate_id() agreement.id = agreement_id if not agreement.get("agreementID"): agreement.prettyID = generate_agreementID(get_now(), self.db, self.server_id) # Unify when cfa moved from tenders to frameworks framework = self.request.validated.get("framework") if framework: agreement.submissionType = framework["frameworkType"] agreement.mode = framework.get("mode") upload_objects_documents( self.request, agreement, route_kwargs={"agreement_id": agreement.id}, route_prefix=framework["frameworkType"]) access = set_ownership(agreement, self.request) self.request.validated["agreement"] = agreement self.request.validated["agreement_src"] = {} if save_agreement(self.request): self.LOGGER.info( "Created agreement {} ({})".format(agreement.id, agreement.agreementID), extra=context_unpack( self.request, {"MESSAGE_ID": "agreement_create"}, { "agreement_id": agreement.id, "agreementID": agreement.agreementID }, ), ) self.request.response.status = 201 self.request.response.headers["Location"] = self.request.route_url( "{}.Agreement".format(agreement.agreementType), agreement_id=agreement.id) return {"data": agreement.serialize("view"), "access": access}
def post(self): """ Creating new submission """ submission_id = generate_id() submission = self.request.validated["submission"] submission.id = submission_id framework = self.request.validated["framework"] submission.submissionType = framework["frameworkType"] submission.mode = framework.get("mode") if self.request.json["data"].get("status") == "draft": submission.status = "draft" upload_objects_documents(self.request, submission, route_kwargs={"submission_id": submission.id}, route_prefix=framework["frameworkType"]) access = set_ownership(submission, self.request) self.request.validated["submission"] = submission self.request.validated["submission_src"] = {} if save_submission(self.request): self.LOGGER.info( "Created submission {}".format(submission_id), extra=context_unpack( self.request, {"MESSAGE_ID": "submission_create"}, { "submission_id": submission_id, "submission_mode": submission.mode }, ), ) self.request.response.status = 201 self.request.response.headers["Location"] = self.request.route_url( "{}:Submissions".format(submission.submissionType), submission_id=submission_id) return {"data": submission.serialize("view"), "access": access}
def collection_post(self): is_bulk = "document_bulk" in self.request.validated if is_bulk: documents = self.request.validated["document_bulk"] upload_objects_documents(self.request, documents) else: document = upload_file(self.request) documents = [document] for document in documents: document.author = self.request.authenticated_role getattr(self.context, self.container).extend(documents) self.pre_save() if self.save(self.request): for item in documents: self.LOGGER.info( "Created {} document {}".format(self.context_pretty_name, document.id), extra=context_unpack( self.request, {"MESSAGE_ID": "{}_document_create".format(self.context_name)}, {"document_id": document.id}, ), ) self.request.response.status = 201 if is_bulk: return {"data": [item.serialize("view") for item in documents]} else: document_route = self.request.matched_route.name.replace("collection_", "") self.request.response.headers["Location"] = self.request.current_route_url( _route_name=document_route, document_id=document.id, _query={} ) return {"data": document.serialize("view")}
def post(self): """This API request is targeted to creating new Frameworks by procuring organizations. Creating new Framework ------------------- Example request to create framework: .. sourcecode:: http POST /frameworks HTTP/1.1 Host: example.com Accept: application/json { "data": { "description": "Назва предмета закупівлі", "classification": { "scheme": "ДК021", "description": "Mustard seeds", "id": "03111600-8" }, "title": "Узагальнена назва закупівлі", "qualificationPeriod": { "endDate": "2021-02-07T14:33:22.129267+02:00" }, "additionalClassifications": [ { "scheme": "ДК003", "id": "17.21.1", "description": "папір і картон гофровані, паперова й картонна тара" } ], "procuringEntity": { "contactPoint": { "telephone": "0440000000", "email": "*****@*****.**", "name": "Назва організації(ЦЗО)" }, "identifier": { "scheme": "UA-EDR", "id": "40996564", "legalName": "Назва організації(ЦЗО)" }, "kind": "central", "name": "Повна назва юридичної організації.", "address": { "countryName": "Україна", "postalCode": "01220", "region": "м. Київ", "streetAddress": "вул. Банкова, 11, корпус 1", "locality": "м. Київ" } } } } This is what one should expect in response: .. sourcecode:: http HTTP/1.1 201 Created Location: http://localhost/api/0.1/frameworks/40b48e4878534db1bf228d5928f8f1d9 Content-Type: application/json { "data": { "status": "draft", "description": "Назва предмета закупівлі", "classification": { "scheme": "ДК021", "description": "Mustard seeds", "id": "03111600-8" }, "prettyID": "UA-F-2020-09-08-000001", "qualificationPeriod": { "endDate": "2021-02-07T14:33:22.129267+02:00" }, "frameworkType": "electronicCatalogue", "dateModified": "2020-09-08T01:00:00+03:00", "date": "2020-09-08T01:00:00+03:00", "additionalClassifications": [ { "scheme": "ДК003", "id": "17.21.1", "description": "папір і картон гофровані, паперова й картонна тара" } ], "procuringEntity": { "contactPoint": { "email": "*****@*****.**", "telephone": "0440000000", "name": "Назва організації(ЦЗО)" }, "identifier": { "scheme": "UA-EDR", "id": "40996564", "legalName": "Назва організації(ЦЗО)" }, "name": "Повна назва юридичної організації.", "kind": "central", "address": { "countryName": "Україна", "postalCode": "01220", "streetAddress": "вул. Банкова, 11, корпус 1", "region": "м. Київ", "locality": "м. Київ" } }, "owner": "broker", "title": "Узагальнена назва закупівлі", "id": "40b48e4878534db1bf228d5928f8f1d9" } } """ framework_id = generate_id() framework = self.request.validated["framework"] framework.id = framework_id if not framework.get("prettyID"): framework.prettyID = generate_framework_pretty_id( get_now(), self.db, self.server_id) access = set_ownership(framework, self.request) upload_objects_documents(self.request, framework, route_kwargs={"framework_id": framework.id}, route_prefix=framework["frameworkType"]) self.request.validated["framework"] = framework self.request.validated["framework_src"] = {} if save_framework(self.request): self.LOGGER.info( "Created framework {} ({})".format(framework_id, framework.prettyID), extra=context_unpack( self.request, {"MESSAGE_ID": "framework_create"}, { "framework_id": framework_id, "prettyID": framework.prettyID, "framework_mode": framework.mode }, ), ) self.request.response.status = 201 self.request.response.headers["Location"] = self.request.route_url( "{}:Frameworks".format(framework.frameworkType), framework_id=framework_id) return { "data": framework.serialize(framework.status), "access": access }