28 lines
917 B
Go
28 lines
917 B
Go
package ultidraw
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
func (s *Service) resolveCollabRoomID(ctx context.Context, ownerID, filePath string) (string, error) {
|
|
ownerID = strings.TrimSpace(ownerID)
|
|
filePath = normalizePath(filePath)
|
|
if ownerID == "" || filePath == "" {
|
|
return "", fmt.Errorf("collab room: missing owner or path")
|
|
}
|
|
if rev, err := s.nc.FileRevision(ctx, ownerID, filePath); err == nil && rev.FileID > 0 {
|
|
return fmt.Sprintf("draw:%s:%d", ownerID, rev.FileID), nil
|
|
}
|
|
return fmt.Sprintf("draw:%s:%s", ownerID, hashPath(filePath)), nil
|
|
}
|
|
|
|
func (s *Service) ownerPathForPublic(ctx context.Context, token, password, clientCanonical, displayName string) (ownerID, ownerPath string, err error) {
|
|
binding, err := s.nc.ResolvePublicShareBinding(ctx, token, password)
|
|
if err != nil {
|
|
return "", "", err
|
|
}
|
|
return binding.OwnerID, binding.OwnerPathForClient(clientCanonical, displayName), nil
|
|
}
|