mirror of
https://github.com/bbernhard/signal-cli-rest-api.git
synced 2026-03-14 02:40:14 +00:00
parent
cdb7d0bf97
commit
23c53382c2
@ -38,28 +38,22 @@ type UpdateContactRequest struct {
|
||||
ExpirationInSeconds *int `json:"expiration_in_seconds"`
|
||||
}
|
||||
|
||||
type GroupPermissions struct {
|
||||
AddMembers string `json:"add_members" enums:"only-admins,every-member"`
|
||||
EditGroup string `json:"edit_group" enums:"only-admins,every-member"`
|
||||
SendMessages string `json:"send_messages" enums:"only-admins,every-member"`
|
||||
}
|
||||
|
||||
type CreateGroupRequest struct {
|
||||
Name string `json:"name"`
|
||||
Members []string `json:"members"`
|
||||
Description string `json:"description"`
|
||||
Permissions GroupPermissions `json:"permissions"`
|
||||
GroupLinkState string `json:"group_link" enums:"disabled,enabled,enabled-with-approval"`
|
||||
ExpirationTime *int `json:"expiration_time"`
|
||||
Name string `json:"name"`
|
||||
Members []string `json:"members"`
|
||||
Description string `json:"description"`
|
||||
Permissions ds.GroupPermissions `json:"permissions"`
|
||||
GroupLinkState string `json:"group_link" enums:"disabled,enabled,enabled-with-approval"`
|
||||
ExpirationTime *int `json:"expiration_time"`
|
||||
}
|
||||
|
||||
type UpdateGroupRequest struct {
|
||||
Base64Avatar *string `json:"base64_avatar"`
|
||||
Description *string `json:"description"`
|
||||
Name *string `json:"name"`
|
||||
ExpirationTime *int `json:"expiration_time"`
|
||||
GroupLinkState *string `json:"group_link" enums:"disabled,enabled,enabled-with-approval"`
|
||||
Permissions *GroupPermissions `json:"permissions"`
|
||||
Base64Avatar *string `json:"base64_avatar"`
|
||||
Description *string `json:"description"`
|
||||
Name *string `json:"name"`
|
||||
ExpirationTime *int `json:"expiration_time"`
|
||||
GroupLinkState *string `json:"group_link" enums:"disabled,enabled,enabled-with-approval"`
|
||||
Permissions *ds.GroupPermissions `json:"permissions"`
|
||||
}
|
||||
|
||||
type ChangeGroupMembersRequest struct {
|
||||
|
||||
@ -113,16 +113,17 @@ func (g GroupLinkState) FromString(input string) GroupLinkState {
|
||||
}
|
||||
|
||||
type GroupEntry struct {
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Id string `json:"id"`
|
||||
InternalId string `json:"internal_id"`
|
||||
Members []string `json:"members"`
|
||||
Blocked bool `json:"blocked"`
|
||||
PendingInvites []string `json:"pending_invites"`
|
||||
PendingRequests []string `json:"pending_requests"`
|
||||
InviteLink string `json:"invite_link"`
|
||||
Admins []string `json:"admins"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Id string `json:"id"`
|
||||
InternalId string `json:"internal_id"`
|
||||
Members []string `json:"members"`
|
||||
Blocked bool `json:"blocked"`
|
||||
PendingInvites []string `json:"pending_invites"`
|
||||
PendingRequests []string `json:"pending_requests"`
|
||||
InviteLink string `json:"invite_link"`
|
||||
Admins []string `json:"admins"`
|
||||
Permissions ds.GroupPermissions `json:"permissions"`
|
||||
}
|
||||
|
||||
type IdentityEntry struct {
|
||||
@ -145,17 +146,20 @@ type SignalCliGroupAdmin struct {
|
||||
}
|
||||
|
||||
type SignalCliGroupEntry struct {
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Id string `json:"id"`
|
||||
IsMember bool `json:"isMember"`
|
||||
IsBlocked bool `json:"isBlocked"`
|
||||
Members []SignalCliGroupMember `json:"members"`
|
||||
PendingMembers []SignalCliGroupMember `json:"pendingMembers"`
|
||||
RequestingMembers []SignalCliGroupMember `json:"requestingMembers"`
|
||||
GroupInviteLink string `json:"groupInviteLink"`
|
||||
Admins []SignalCliGroupAdmin `json:"admins"`
|
||||
Uuid string `json:"uuid"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Id string `json:"id"`
|
||||
IsMember bool `json:"isMember"`
|
||||
IsBlocked bool `json:"isBlocked"`
|
||||
Members []SignalCliGroupMember `json:"members"`
|
||||
PendingMembers []SignalCliGroupMember `json:"pendingMembers"`
|
||||
RequestingMembers []SignalCliGroupMember `json:"requestingMembers"`
|
||||
GroupInviteLink string `json:"groupInviteLink"`
|
||||
Admins []SignalCliGroupAdmin `json:"admins"`
|
||||
Uuid string `json:"uuid"`
|
||||
PermissionEditDetails string `json:"permissionEditDetails"`
|
||||
PermissionAddMember string `json:"permissionAddMember"`
|
||||
PermissionSendMessage string `json:"permissionSendMessage"`
|
||||
}
|
||||
|
||||
type SignalCliIdentityEntry struct {
|
||||
@ -271,6 +275,16 @@ func getStringInBetween(str string, start string, end string) (result string) {
|
||||
return str[i : i+j]
|
||||
}
|
||||
|
||||
func signalCliGroupPermissionToRestApiGroupPermission(permission string) string {
|
||||
if permission == "EVERY_MEMBER" {
|
||||
return "every-member"
|
||||
} else if permission == "ONLY_ADMINS" {
|
||||
return "only-admins"
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
func parseWhitespaceDelimitedKeyValueStringList(in string, keys []string) []map[string]string {
|
||||
l := []map[string]string{}
|
||||
lines := strings.Split(in, "\n")
|
||||
@ -1314,6 +1328,9 @@ func (s *SignalClient) GetGroups(number string) ([]GroupEntry, error) {
|
||||
groupEntry.Id = convertInternalGroupIdToGroupId(signalCliGroupEntry.Id)
|
||||
groupEntry.Blocked = signalCliGroupEntry.IsBlocked
|
||||
groupEntry.Description = signalCliGroupEntry.Description
|
||||
groupEntry.Permissions.SendMessages = signalCliGroupPermissionToRestApiGroupPermission(signalCliGroupEntry.PermissionSendMessage)
|
||||
groupEntry.Permissions.EditGroup = signalCliGroupPermissionToRestApiGroupPermission(signalCliGroupEntry.PermissionSendMessage)
|
||||
groupEntry.Permissions.AddMembers = signalCliGroupPermissionToRestApiGroupPermission(signalCliGroupEntry.PermissionAddMember)
|
||||
|
||||
members := []string{}
|
||||
for _, val := range signalCliGroupEntry.Members {
|
||||
|
||||
@ -28,10 +28,10 @@ type SendMessageRecipient struct {
|
||||
}
|
||||
|
||||
type LinkPreviewType struct {
|
||||
Url string `json:"url"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
Base64Thumbnail string `json:"base64_thumbnail"`
|
||||
Url string `json:"url"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
Base64Thumbnail string `json:"base64_thumbnail"`
|
||||
}
|
||||
|
||||
type SignalCliSendRequest struct {
|
||||
@ -52,3 +52,9 @@ type SignalCliSendRequest struct {
|
||||
LinkPreview *LinkPreviewType
|
||||
ViewOnce *bool
|
||||
}
|
||||
|
||||
type GroupPermissions struct {
|
||||
AddMembers string `json:"add_members" enums:"only-admins,every-member"`
|
||||
EditGroup string `json:"edit_group" enums:"only-admins,every-member"`
|
||||
SendMessages string `json:"send_messages" enums:"only-admins,every-member"`
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user