lib/google/cloud/dialogflow/v2/contexts/paths.rb in google-cloud-dialogflow-v2-0.3.0 vs lib/google/cloud/dialogflow/v2/contexts/paths.rb in google-cloud-dialogflow-v2-0.4.0

- old
+ new

@@ -69,9 +69,52 @@ resource = resources[args.keys.sort.join(":")] raise ArgumentError, "no resource found for values #{args.keys}" if resource.nil? resource.call(**args) end + ## + # Create a fully-qualified Session resource string. + # + # @overload session_path(project:, session:) + # The resource will be in the following format: + # + # `projects/{project}/agent/sessions/{session}` + # + # @param project [String] + # @param session [String] + # + # @overload session_path(project:, environment:, user:, session:) + # The resource will be in the following format: + # + # `projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}` + # + # @param project [String] + # @param environment [String] + # @param user [String] + # @param session [String] + # + # @return [String] + def session_path **args + resources = { + "project:session" => (proc do |project:, session:| + raise ArgumentError, "project cannot contain /" if project.to_s.include? "/" + + "projects/#{project}/agent/sessions/#{session}" + end), + "environment:project:session:user" => (proc do |project:, environment:, user:, session:| + raise ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ArgumentError, "environment cannot contain /" if environment.to_s.include? "/" + raise ArgumentError, "user cannot contain /" if user.to_s.include? "/" + + "projects/#{project}/agent/environments/#{environment}/users/#{user}/sessions/#{session}" + end) + } + + resource = resources[args.keys.sort.join(":")] + raise ArgumentError, "no resource found for values #{args.keys}" if resource.nil? + resource.call(**args) + end + extend self end end end end