| /* |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You 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 tasks |
| |
| import ( |
| helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api" |
| ) |
| |
| type SlackApiParams struct { |
| ConnectionId uint64 `json:"connectionId"` |
| } |
| |
| type SlackOptions struct { |
| ConnectionId uint64 `json:"connectionId"` |
| ChannelId string `json:"channelId,omitempty" mapstructure:"channelId,omitempty"` |
| } |
| |
| type SlackTaskData struct { |
| Options *SlackOptions |
| ApiClient *helper.ApiAsyncClient |
| } |
| |
| // SlackParams defines the raw params shape used to tag raw tables for scoping and latest-sync-state |
| type SlackParams struct { |
| ConnectionId uint64 `json:"connectionId"` |
| ScopeId string `json:"scopeId"` |
| } |
| |
| // GetParams implements api.TaskOptions to ensure raw_data_params include both connection and scope |
| func (p *SlackOptions) GetParams() any { |
| scopeId := p.ChannelId |
| return &SlackParams{ConnectionId: p.ConnectionId, ScopeId: scopeId} |
| } |