| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| /* eslint-disable no-unused-vars */ |
| |
| /** |
| * Returns the user's resource name. |
| * @param {string|number} user The user's email or user_id |
| * @return {string} |
| */ |
| function computeUserName(user) { |
| return `users/${user}`; |
| } |
| |
| /** |
| * Returns the users' resource names. |
| * @param {Array<string|number>} users Array of user emails/user_ids. |
| * @return {Array<string>} |
| */ |
| function computeUserNames(users) { |
| const userNames = []; |
| users.forEach((user) => { |
| userNames.push(computeUserName(user)); |
| }); |
| return userNames; |
| } |
| |
| |
| /** |
| * Returns the issue's resource name. |
| * @param {string} project The name of the project the issue belongs to, |
| * e.g. 'chromium'. |
| * @param {number} id The issue's id. |
| * @return {string} |
| */ |
| function computeIssueName(project, id) { |
| return `projects/${project}/issues/${id}`; |
| } |
| |
| /** |
| * Returns the project's resource name. |
| * @param {string} project The display name of the project, e.g. 'chromium'. |
| * @return {string} |
| */ |
| function computeProjectName(project) { |
| return `projects/${project}`; |
| } |
| |
| /** |
| * Returns the projects' resource names in the same order. |
| * @param {Array<string>} projects The display names of the projects, |
| * e.g. 'chromium'. |
| * @return {Array<string>} |
| */ |
| function computeProjectNames(projects) { |
| const projectNames = []; |
| projects.forEach((project) => { |
| projectNames.push(computeProjectName(project)); |
| }); |
| return projectNames; |
| } |
| |
| /** |
| * Returns the FieldDef's resource name. |
| * @param {string} project The display name of the project, e.g. 'chromium'. |
| * @param {number} fieldId ID of the FieldDef. |
| * @return {string} |
| */ |
| function computeFieldDefName(project, fieldId) { |
| return `projects/${project}/fieldDefs/${fieldId}`; |
| } |
| |
| /** |
| * Returns the ComponentDef's resource name. |
| * @param {string} project The display name of the project, e.g. 'chromium'. |
| * @param {number|string} componentIdOrPath ID or value of the ComponentDef. |
| * @return {string} |
| */ |
| function computeComponentDefName(project, componentIdOrPath) { |
| return `projects/${project}/componentDefs/${componentIdOrPath}`; |
| } |