-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat: Add Checkin - Implement 'getcheckindata' API * refactor: Change variable names * refactor: Change struct name
- Loading branch information
Showing
3 changed files
with
92 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
package checkin | ||
|
||
import ( | ||
"fmt" | ||
|
||
"github.com/silenceper/wechat/v2/util" | ||
) | ||
|
||
const ( | ||
// getCheckinDataURL 获取打卡记录数据 | ||
getCheckinDataURL = "https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata?access_token=%s" | ||
) | ||
|
||
type ( | ||
// GetCheckinDataRequest 获取打卡记录数据请求 | ||
GetCheckinDataRequest struct { | ||
OpenCheckinDataType int64 `json:"opencheckindatatype"` | ||
StartTime int64 `json:"starttime"` | ||
EndTime int64 `json:"endtime"` | ||
UserIDList []string `json:"useridlist"` | ||
} | ||
// GetCheckinDataResponse 获取打卡记录数据响应 | ||
GetCheckinDataResponse struct { | ||
util.CommonError | ||
CheckinData []*GetCheckinDataItem `json:"checkindata"` | ||
} | ||
// GetCheckinDataItem 打卡记录数据 | ||
GetCheckinDataItem struct { | ||
UserID string `json:"userid"` | ||
GroupName string `json:"groupname"` | ||
CheckinType string `json:"checkin_type"` | ||
ExceptionType string `json:"exception_type"` | ||
CheckinTime int64 `json:"checkin_time"` | ||
LocationTitle string `json:"location_title"` | ||
LocationDetail string `json:"location_detail"` | ||
WifiName string `json:"wifiname"` | ||
Notes string `json:"notes"` | ||
WifiMac string `json:"wifimac"` | ||
MediaIDs []string `json:"mediaids"` | ||
SchCheckinTime int64 `json:"sch_checkin_time"` | ||
GroupID int64 `json:"groupid"` | ||
ScheduleID int64 `json:"schedule_id"` | ||
TimelineID int64 `json:"timeline_id"` | ||
Lat int64 `json:"lat,omitempty"` | ||
Lng int64 `json:"lng,omitempty"` | ||
DeviceID string `json:"deviceid,omitempty"` | ||
} | ||
) | ||
|
||
// GetCheckinData 获取打卡记录数据 | ||
// @see https://developer.work.weixin.qq.com/document/path/90262 | ||
func (r *Client) GetCheckinData(req *GetCheckinDataRequest) (*GetCheckinDataResponse, error) { | ||
var ( | ||
accessToken string | ||
err error | ||
) | ||
if accessToken, err = r.GetAccessToken(); err != nil { | ||
return nil, err | ||
} | ||
var response []byte | ||
if response, err = util.PostJSON(fmt.Sprintf(getCheckinDataURL, accessToken), req); err != nil { | ||
return nil, err | ||
} | ||
result := &GetCheckinDataResponse{} | ||
if err = util.DecodeWithError(response, result, "GetCheckinData"); err != nil { | ||
return nil, err | ||
} | ||
return result, nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package checkin | ||
|
||
import ( | ||
"github.com/silenceper/wechat/v2/work/context" | ||
) | ||
|
||
// Client 打卡接口实例 | ||
type Client struct { | ||
*context.Context | ||
} | ||
|
||
// NewClient 初始化实例 | ||
func NewClient(ctx *context.Context) *Client { | ||
return &Client{ | ||
ctx, | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters