-
-
Notifications
You must be signed in to change notification settings - Fork 71
/
Copy pathapi_hire_offset_create.go
183 lines (165 loc) · 17.4 KB
/
api_hire_offset_create.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
// Code generated by lark_sdk_gen. DO NOT EDIT.
/**
* Copyright 2022 chyroc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package lark
import (
"context"
)
// CreateHireOffer 创建 Offer 时, 需传入本文档中标注为必传的参数, 其余参数是否必传参考「获取 Offer 申请表模板信息」的参数定义。
//
// doc: https://open.feishu.cn/document/ukTMukTMukTM/uMzM1YjLzMTN24yMzUjN/hire-v1/offer/create
// new doc: https://open.feishu.cn/document/server-docs/hire-v1/candidate-management/delivery-process-management/offer/create
func (r *HireService) CreateHireOffer(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error) {
if r.cli.mock.mockHireCreateHireOffer != nil {
r.cli.Log(ctx, LogLevelDebug, "[lark] Hire#CreateHireOffer mock enable")
return r.cli.mock.mockHireCreateHireOffer(ctx, request, options...)
}
req := &RawRequestReq{
Scope: "Hire",
API: "CreateHireOffer",
Method: "POST",
URL: r.cli.openBaseURL + "/open-apis/hire/v1/offers",
Body: request,
MethodOption: newMethodOption(options),
NeedTenantAccessToken: true,
}
resp := new(createHireOfferResp)
response, err := r.cli.RawRequest(ctx, req, resp)
return resp.Data, response, err
}
// MockHireCreateHireOffer mock HireCreateHireOffer method
func (r *Mock) MockHireCreateHireOffer(f func(ctx context.Context, request *CreateHireOfferReq, options ...MethodOptionFunc) (*CreateHireOfferResp, *Response, error)) {
r.mockHireCreateHireOffer = f
}
// UnMockHireCreateHireOffer un-mock HireCreateHireOffer method
func (r *Mock) UnMockHireCreateHireOffer() {
r.mockHireCreateHireOffer = nil
}
// CreateHireOfferReq ...
type CreateHireOfferReq struct {
UserIDType *IDType `query:"user_id_type" json:"-"` // 用户 ID 类型, 示例值: open_id, 可选值有: open_id: 标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多: 如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid), union_id: 标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的, 在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID, 应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多: 如何获取 Union ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id), user_id: 标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内, 一个用户的 User ID 在所有应用(包括商店应用)中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多: 如何获取 User ID?](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id), people_admin_id: 以people_admin_id来识别用户, 默认值: `open_id`, 当值为 `user_id`, 字段权限要求: 获取用户 user ID
DepartmentIDType *DepartmentIDType `query:"department_id_type" json:"-"` // 此次调用中使用的部门 ID 的类型, 示例值: department_id, 可选值有: open_department_id: 以 open_department_id 来标识部门, department_id: 以 department_id 来标识部门, 默认值: `open_department_id`
JobLevelIDType *IDType `query:"job_level_id_type" json:"-"` // 此次调用中使用的「职级 ID」的类型, 示例值: 6942778198054125570, 可选值有: people_admin_job_level_id: 「人力系统管理后台」适用的职级 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。, job_level_id: 「飞书管理后台」适用的职级 ID, 通过[「获取租户职级列表」](https://open.feishu.cn/document/server-docs/contact-v3/job_level/list)接口获取, 默认值: `people_admin_job_level_id`
JobFamilyIDType *IDType `query:"job_family_id_type" json:"-"` // 此次调用中使用的「序列 ID」的类型, 示例值: 6942778198054125571, 可选值有: people_admin_job_category_id: 「人力系统管理后台」适用的序列 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。, job_family_id: 「飞书管理后台」适用的序列 ID, 通过[「获取租户序列列表」](https://open.feishu.cn/document/server-docs/contact-v3/job_family/list)接口获取, 默认值: `people_admin_job_category_id`
EmployeeTypeIDType *IDType `query:"employee_type_id_type" json:"-"` // 此次调用中使用的「人员类型 ID」的类型, 示例值: 1, 可选值有: people_admin_employee_type_id: 「人力系统管理后台」适用的人员类型 ID。人力系统管理后台逐步下线中, 建议不继续使用此 ID。, employee_type_enum_id: 「飞书管理后台」适用的人员类型 ID, 通过[「查询人员类型」](https://open.feishu.cn/document/server-docs/contact-v3/employee_type_enum/list)接口获取, 默认值: `people_admin_employee_type_id`
ApplicationID string `json:"application_id,omitempty"` // 投递 ID, 示例值: "7013552389293279532"
SchemaID string `json:"schema_id,omitempty"` // Offer 申请表模板 ID, 用于描述申请表单结构的元数据定义, 即对申请表内容的描述。用户每一次更改 Offer 申请表模板信息, 都会生成新的 schema_id, 创建 Offer 时应传入最新的 schema_id, 可先从职位设置中拿到offer申请表ID, 再从「获取Offer申请表模板信息」接口中获取最新的模板ID, 示例值: "7013318077945596204"
OfferType *int64 `json:"offer_type,omitempty"` // Offer 类型, 示例值: 1, 可选值有: 1: 正式 Offer, 2: 实习 Offer
BasicInfo *CreateHireOfferReqBasicInfo `json:"basic_info,omitempty"` // Offer 基本信息
SalaryInfo *CreateHireOfferReqSalaryInfo `json:"salary_info,omitempty"` // Offer 薪资信息
CustomizedInfoList []*CreateHireOfferReqCustomizedInfo `json:"customized_info_list,omitempty"` // 自定义信息
}
// CreateHireOfferReqBasicInfo ...
type CreateHireOfferReqBasicInfo struct {
DepartmentID string `json:"department_id,omitempty"` // 部门 ID, 示例值: "od-6b394871807047c7023ebfc1ff37cd3a"
LeaderUserID string `json:"leader_user_id,omitempty"` // 直属上级 ID, 示例值: "ou_ce613028fe74745421f5dc320bb9c709"
EmploymentJobID *string `json:"employment_job_id,omitempty"` // 职务 ID, 示例值: "123"
EmployeeTypeID *string `json:"employee_type_id,omitempty"` // 人员类型 ID, 示例值: "2"
JobFamilyID *string `json:"job_family_id,omitempty"` // 职位序列 ID, 示例值: "6807407987381831949"
JobLevelID *string `json:"job_level_id,omitempty"` // 职位级别 ID, 示例值: "6807407987381881101"
ProbationMonth *int64 `json:"probation_month,omitempty"` // 试用期, 示例值: 3
ContractYear *int64 `json:"contract_year,omitempty"` // 合同期(年), 推荐使用「contract_period」, 如果Offer申请表中「合同期(年)」字段已停用, 则不可使用该字段, 示例值: 3
ContractPeriod *CreateHireOfferReqBasicInfoContractPeriod `json:"contract_period,omitempty"` // 合同期(年/月)
ExpectedOnboardDate *string `json:"expected_onboard_date,omitempty"` // 预计入职日期, 示例值: "{\"date\":\"2022-04-07\"}"
OnboardAddressID *string `json:"onboard_address_id,omitempty"` // 入职地点 ID, 示例值: "6897079709306259719"
WorkAddressID *string `json:"work_address_id,omitempty"` // 办公地点 ID, 示例值: "6897079709306259719"
OwnerUserID string `json:"owner_user_id,omitempty"` // Offer负责人 ID, 示例值: "ou_ce613028fe74745421f5dc320bb9c709"
RecommendedWords *string `json:"recommended_words,omitempty"` // Offer 推荐语, 示例值: "十分优秀, 推荐入职"
JobRequirementID *string `json:"job_requirement_id,omitempty"` // 招聘需求 ID, 示例值: "2342352224"
JobProcessTypeID *int64 `json:"job_process_type_id,omitempty"` // 招聘流程类型 ID, 示例值: 2
AttachmentIDList []string `json:"attachment_id_list,omitempty"` // 附件ID列表, 示例值: ["6792436415209817600"]
AttachmentDescription *string `json:"attachment_description,omitempty"` // 附件描述, 示例值: "张三的简历"
OperatorUserID string `json:"operator_user_id,omitempty"` // Offer操作人 ID, 示例值: "ou_ce613028fe74745421f5dc320bb9c709"
}
// CreateHireOfferReqBasicInfoContractPeriod ...
type CreateHireOfferReqBasicInfoContractPeriod struct {
PeriodType int64 `json:"period_type,omitempty"` // 合同周期类型, 示例值: 1, 可选值有: 1: 月, 2: 年
Period int64 `json:"period,omitempty"` // 合同时长, 示例值: 3, 取值范围: `0` ~ `100`
}
// CreateHireOfferReqCustomizedInfo ...
type CreateHireOfferReqCustomizedInfo struct {
ID *string `json:"id,omitempty"` // 自定义字段 ID, 示例值: "6972464088568269100"
Value *string `json:"value,omitempty"` // 自定义字段信息, 以字符串形式传入, 如: 1. 单选: "1", 2. 多选: "[\"1\", \"2\"]", 3. 日期: "{"date":"2022-01-01"}", 4. 年份选择: "{"date":"2022"}", 5. 月份选择: "{"date":"2022-01"}", 6. 单行文本: "xxx ", 7. 多行文本: "xxx ", 8. 数字: "123", 9. 金额: "123.1", 示例值: "1"
}
// CreateHireOfferReqSalaryInfo ...
type CreateHireOfferReqSalaryInfo struct {
Currency string `json:"currency,omitempty"` // 币种, 示例值: "CNY"
BasicSalary *string `json:"basic_salary,omitempty"` // 基本工资, 当启用 Offer 申请表中的「薪资信息」模块时, 「基本工资」字段为必传项, 示例值: "1000000"
ProbationSalaryPercentage *string `json:"probation_salary_percentage,omitempty"` // 试用期百分比, 示例值: "0.8"
AwardSalaryMultiple *string `json:"award_salary_multiple,omitempty"` // 年终奖月数, 示例值: "3"
OptionShares *string `json:"option_shares,omitempty"` // 期权股数, 示例值: "30"
QuarterlyBonus *string `json:"quarterly_bonus,omitempty"` // 季度奖金额, 示例值: "3000"
HalfYearBonus *string `json:"half_year_bonus,omitempty"` // 半年奖金额, 示例值: "10000"
}
// CreateHireOfferResp ...
type CreateHireOfferResp struct {
OfferID string `json:"offer_id,omitempty"` // Offer ID
ApplicationID string `json:"application_id,omitempty"` // 投递 ID
SchemaID string `json:"schema_id,omitempty"` // Offer 申请表模板 ID, 用于描述申请表单结构的元数据定义, 即对申请表内容的描述。用户每一次更改 Offer 申请表模板信息, 都会生成新的 schema_id, 创建 Offer 时应传入最新的 schema_id, 可从「获取Offer申请表模板信息」接口中获取
OfferType int64 `json:"offer_type,omitempty"` // Offer 类型, 可选值有: 1: 正式 Offer, 2: 实习 Offer
BasicInfo *CreateHireOfferRespBasicInfo `json:"basic_info,omitempty"` // Offer 基本信息
SalaryInfo *CreateHireOfferRespSalaryInfo `json:"salary_info,omitempty"` // Offer 薪资信息
CustomizedInfoList []*CreateHireOfferRespCustomizedInfo `json:"customized_info_list,omitempty"` // 自定义信息
}
// CreateHireOfferRespBasicInfo ...
type CreateHireOfferRespBasicInfo struct {
DepartmentID string `json:"department_id,omitempty"` // 部门 ID
LeaderUserID string `json:"leader_user_id,omitempty"` // 直属上级 ID
EmploymentJobID string `json:"employment_job_id,omitempty"` // 职务 ID
EmployeeTypeID string `json:"employee_type_id,omitempty"` // 人员类型 ID
JobFamilyID string `json:"job_family_id,omitempty"` // 职位序列 ID
JobLevelID string `json:"job_level_id,omitempty"` // 职位级别 ID
ProbationMonth int64 `json:"probation_month,omitempty"` // 试用期
ContractYear int64 `json:"contract_year,omitempty"` // 合同期(年), 推荐使用「contract_period」, 如果Offer申请表中「合同期(年)」字段已停用, 则不可使用该字段
ContractPeriod *CreateHireOfferRespBasicInfoContractPeriod `json:"contract_period,omitempty"` // 合同期(年/月)
ExpectedOnboardDate string `json:"expected_onboard_date,omitempty"` // 预计入职日期
OnboardAddressID string `json:"onboard_address_id,omitempty"` // 入职地点 ID
WorkAddressID string `json:"work_address_id,omitempty"` // 办公地点 ID
OwnerUserID string `json:"owner_user_id,omitempty"` // Offer负责人 ID
RecommendedWords string `json:"recommended_words,omitempty"` // Offer 推荐语
JobRequirementID string `json:"job_requirement_id,omitempty"` // 招聘需求 ID
JobProcessTypeID int64 `json:"job_process_type_id,omitempty"` // 招聘流程类型 ID
AttachmentIDList []string `json:"attachment_id_list,omitempty"` // 附件ID列表
AttachmentDescription string `json:"attachment_description,omitempty"` // 附件描述
OperatorUserID string `json:"operator_user_id,omitempty"` // Offer操作人 ID
}
// CreateHireOfferRespBasicInfoContractPeriod ...
type CreateHireOfferRespBasicInfoContractPeriod struct {
PeriodType int64 `json:"period_type,omitempty"` // 合同周期类型, 可选值有: 1: 月, 2: 年
Period int64 `json:"period,omitempty"` // 合同时长
}
// CreateHireOfferRespCustomizedInfo ...
type CreateHireOfferRespCustomizedInfo struct {
ID string `json:"id,omitempty"` // 自定义字段 ID
Value string `json:"value,omitempty"` // 自定义字段信息, 以字符串形式传入, 如: 1. 单选: "1", 2. 多选: "[\"1\", \"2\"]", 3. 日期: "{"date":"2022-01-01"}", 4. 年份选择: "{"date":"2022"}", 5. 月份选择: "{"date":"2022-01"}", 6. 单行文本: "xxx ", 7. 多行文本: "xxx ", 8. 数字: "123", 9. 金额: "123.1"
}
// CreateHireOfferRespSalaryInfo ...
type CreateHireOfferRespSalaryInfo struct {
Currency string `json:"currency,omitempty"` // 币种
BasicSalary string `json:"basic_salary,omitempty"` // 基本工资, 当启用 Offer 申请表中的「薪资信息」模块时, 「基本工资」字段为必传项
ProbationSalaryPercentage string `json:"probation_salary_percentage,omitempty"` // 试用期百分比
AwardSalaryMultiple string `json:"award_salary_multiple,omitempty"` // 年终奖月数
OptionShares string `json:"option_shares,omitempty"` // 期权股数
QuarterlyBonus string `json:"quarterly_bonus,omitempty"` // 季度奖金额
HalfYearBonus string `json:"half_year_bonus,omitempty"` // 半年奖金额
}
// createHireOfferResp ...
type createHireOfferResp struct {
Code int64 `json:"code,omitempty"` // 错误码, 非 0 表示失败
Msg string `json:"msg,omitempty"` // 错误描述
Data *CreateHireOfferResp `json:"data,omitempty"`
Error *ErrorDetail `json:"error,omitempty"`
}