mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-10-31 08:39:10 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			955 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			955 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package onedrive
 | |
| 
 | |
| import "time"
 | |
| 
 | |
| // Option 发送请求的额外设置
 | |
| type Option interface {
 | |
| 	apply(*options)
 | |
| }
 | |
| 
 | |
| type options struct {
 | |
| 	redirect         string
 | |
| 	code             string
 | |
| 	refreshToken     string
 | |
| 	conflictBehavior string
 | |
| 	expires          time.Time
 | |
| }
 | |
| 
 | |
| type optionFunc func(*options)
 | |
| 
 | |
| // WithCode 设置接口Code
 | |
| func WithCode(t string) Option {
 | |
| 	return optionFunc(func(o *options) {
 | |
| 		o.code = t
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // WithRefreshToken 设置接口RefreshToken
 | |
| func WithRefreshToken(t string) Option {
 | |
| 	return optionFunc(func(o *options) {
 | |
| 		o.refreshToken = t
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // WithConflictBehavior 设置文件重名后的处理方式
 | |
| func WithConflictBehavior(t string) Option {
 | |
| 	return optionFunc(func(o *options) {
 | |
| 		o.conflictBehavior = t
 | |
| 	})
 | |
| }
 | |
| 
 | |
| func (f optionFunc) apply(o *options) {
 | |
| 	f(o)
 | |
| }
 | |
| 
 | |
| func newDefaultOption() *options {
 | |
| 	return &options{
 | |
| 		conflictBehavior: "fail",
 | |
| 		expires:          time.Now().UTC().Add(time.Duration(1) * time.Hour),
 | |
| 	}
 | |
| }
 | 
