mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-11-01 00:42:13 +08:00 
			
		
		
		
	* feat: add openim server code Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim env Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim mongo and redis env Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add zk and redis mongo env Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add kafka and redis mongo env Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim docker Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim docker Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim docker Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim copyright Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: docker compose Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: remove openim chat config file Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim config set Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim config set Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: fix Security vulnerability Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: fix Security vulnerability Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: docker compose Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * Update kubernetes.go * Update discoveryregister.go * fix: copyright-add Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> --------- Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com>
		
			
				
	
	
		
			89 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright © 2023 OpenIM. All rights reserved.
 | |
| //
 | |
| // 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 table
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/OpenIMSDK/tools/errs"
 | |
| 	"github.com/OpenIMSDK/tools/pagination"
 | |
| 	"github.com/redis/go-redis/v9"
 | |
| 	"go.mongodb.org/mongo-driver/mongo"
 | |
| )
 | |
| 
 | |
| type SignalModel struct {
 | |
| 	SID           string    `bson:"sid"`
 | |
| 	InviterUserID string    `bson:"inviter_user_id"`
 | |
| 	CustomData    string    `bson:"custom_data"`
 | |
| 	GroupID       string    `bson:"group_id"`
 | |
| 	RoomID        string    `bson:"room_id"`
 | |
| 	Timeout       int32     `bson:"timeout"`
 | |
| 	MediaType     string    `bson:"media_type"`
 | |
| 	PlatformID    int32     `bson:"platform_id"`
 | |
| 	SessionType   int32     `bson:"session_type"`
 | |
| 	InitiateTime  time.Time `bson:"initiate_time"`
 | |
| 	EndTime       time.Time `bson:"end_time"`
 | |
| 	FileURL       string    `bson:"file_url"`
 | |
| 
 | |
| 	Title         string `bson:"title"`
 | |
| 	Desc          string `bson:"desc"`
 | |
| 	Ex            string `bson:"ex"`
 | |
| 	IOSPushSound  string `bson:"ios_push_sound"`
 | |
| 	IOSBadgeCount bool   `bson:"ios_badge_count"`
 | |
| 	SignalInfo    string `bson:"signal_info"`
 | |
| }
 | |
| 
 | |
| type SignalInterface interface {
 | |
| 	Find(ctx context.Context, sids []string) ([]*SignalModel, error)
 | |
| 	CreateSignal(ctx context.Context, signalModel *SignalModel) error
 | |
| 	Update(ctx context.Context, sid string, update map[string]any) error
 | |
| 	UpdateSignalFileURL(ctx context.Context, sID, fileURL string) error
 | |
| 	UpdateSignalEndTime(ctx context.Context, sID string, endTime time.Time) error
 | |
| 	Delete(ctx context.Context, sids []string) error
 | |
| 	PageSignal(ctx context.Context, sesstionType int32, sendID string, startTime, endTime time.Time, pagination pagination.Pagination) (int64, []*SignalModel, error)
 | |
| }
 | |
| 
 | |
| type SignalInvitationModel struct {
 | |
| 	SID          string    `bson:"sid"`
 | |
| 	UserID       string    `bson:"user_id"`
 | |
| 	Status       int32     `bson:"status"`
 | |
| 	InitiateTime time.Time `bson:"initiate_time"`
 | |
| 	HandleTime   time.Time `bson:"handle_time"`
 | |
| }
 | |
| 
 | |
| type SignalInvitationInterface interface {
 | |
| 	Find(ctx context.Context, sid string) ([]*SignalInvitationModel, error)
 | |
| 	CreateSignalInvitation(ctx context.Context, sid string, inviteeUserIDs []string) error
 | |
| 	HandleSignalInvitation(ctx context.Context, sID, InviteeUserID string, status int32) error
 | |
| 	PageSID(ctx context.Context, recvID string, startTime, endTime time.Time, pagination pagination.Pagination) (int64, []string, error)
 | |
| 	Delete(ctx context.Context, sids []string) error
 | |
| }
 | |
| 
 | |
| func IsNotFound(err error) bool {
 | |
| 	if err == nil {
 | |
| 		return false
 | |
| 	}
 | |
| 	err = errs.Unwrap(err)
 | |
| 	return err == mongo.ErrNoDocuments || err == redis.Nil
 | |
| }
 | |
| 
 | |
| func IsDuplicate(err error) bool {
 | |
| 	if err == nil {
 | |
| 		return false
 | |
| 	}
 | |
| 	return mongo.IsDuplicateKeyError(errs.Unwrap(err))
 | |
| }
 |