我想知道是否可以通过Google Cloud Talent Solution中的requisitionId来获取作业。 requisitionId
在所有工作中必须是唯一的,因此看起来很适合找工作。
创建作业后,api返回一个作业name
,可用于查找该作业:
您可以通过将GET请求发送到Cloud Talent Solution来检索先前插入的作业的详细信息。 URI应该包含原始创建请求返回的先前插入的作业名称,作为URL参数。
如果可能的话,我想避免存储这些名称。在我看来,存储它们会增加不必要的复杂性,因为我已经拥有唯一的requisitionId
。需要明确的是,API不允许您添加重复的requisitionId
作业:
职位项目/ {my_app_id} /职位/ {google_assigned_id}已经存在。跟踪的请求ID:...相关工作申请ID:...
我可以按requisitionId
查找作业吗?
我可以解析返回的错误消息以获取工作名称。但这似乎很脆弱。
答案 0 :(得分:0)
可以将其添加为自定义属性:
Map<String, CustomAttribute> attributes = new HashMap<>();
attributes
.put("requisitionId", new CustomAttribute().setStringValue(requisitionId)
.setFilterable(true));
Job job = new Job()
...
.setCustomAttributes(attributes);
Job jobCreated = createJob(job);
String jobName = jobCreated.getName();
,然后使用自定义属性filter搜索requisitionId
:
JobQuery jobQuery = new JobQuery().setCustomAttributeFilter(filter);
这有点多余,但是JobQuery
没有方法.setRequisitionId()
。
答案 1 :(得分:0)
事实证明,list
方法需要requisitionId
,因此对于一个完整的,读取-创建-更新周期,我们可以执行以下操作:
const listRequest = {
parent: `projects/${projectId}`,
'filter': `companyName="${companyName}" AND requisitionId="${requisitionId}"`
}
const listResult = await jobService.projects.jobs.list(listRequest)
const existingJobs = listResult.data.jobs || [];
let existingJob = null
if (existingJobs && existingJobs.length > 0) {
existingJob = existingJobs[0]
}
let googleJob
if (!existingJob) {
const createRequest = {
'parent': `projects/${projectId}`,
'resource': {
'job': {
companyName,
requisitionId,
title,
description,
applicationInfo: {
emails: ['email@example.com']
}
}
}
}
googleJob = await jobService.projects.jobs.create(createRequest)
.then(result => result)
.catch(resp => {
console.error("ERROR")
console.error(resp)
})
} else {
const patchRequest = {
'name': existingJob.name,
'resource': {
'job': {
companyName,
requisitionId,
title,
description,
applicationInfo: {
emails: ['email@example.com']
}
}
}
}
googleJob = await jobService.projects.jobs.patch(patchRequest)
.then(result => result)
.catch(resp => {
console.error("ERROR")
console.error(resp)
})
}
注意:
filter
参数中的双引号很重要。它将不接受单引号,并会给出一条错误的错误消息。parent
参数...