NameL3ss

contract request customer

Jan 18th, 2024
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. contract request template model
  2. def customer
  3. result = ContractRequestTemplateQuery.fetch_customer(contract_request_template_id: id)
  4. return nil unless result
  5.  
  6. customer_id = result[:customerId].value
  7. Customer.new(uri: customer_id)
  8. end
  9.  
  10. contract request model
  11. def contract_request_template
  12. result = ContractRequestQuery.fetch_contract_request_template(contract_request_id: id)
  13. return nil unless result
  14.  
  15. contract_request_template_id = result[:contractRequestTemplateId].value
  16. ContractRequestTemplate.new(uri: contract_request_template_id)
  17. end
  18.  
  19. delegate :customer, to: :contract_request_template, allow_nil: true
  20.  
  21.  
  22.  
  23. class ContractRequestQuery
  24. def self.fetch_contract_request_template(contract_request_id:)
  25. sparql_query = %(
  26. PREFIX wco: <#{PrefixesService::PREFIXES[:wco]}>
  27. PREFIX wci: <#{PrefixesService::PREFIXES[:wci]}>
  28.  
  29. SELECT ?contractRequestTemplateId
  30. WHERE { ?contractRequestTemplateId wco:templateFor wci:#{contract_request_id} . }
  31. )
  32. result = GraphDBConnector.instance.query(sparql_query)
  33. return [] unless result[:success]
  34.  
  35. result[:data]&.first
  36. end
  37. end
  38.  
  39. contract request template query
  40. def fetch_customer(contract_request_template_id:)
  41. sparql_query = %(
  42. PREFIX wco: <#{PrefixesService::PREFIXES[:wco]}>
  43. PREFIX wci: <#{PrefixesService::PREFIXES[:wci]}>
  44.  
  45. SELECT ?customerId
  46. WHERE {
  47. ?customerId wco:hasContractRequestTemplate wci:#{contract_request_template_id} .
  48. }
  49. )
  50. result = GraphDBConnector.instance.query(sparql_query)
  51. return [] unless result[:success]
  52.  
  53. result[:data]&.first
  54. end
Advertisement
Add Comment
Please, Sign In to add comment