mirror of https://github.com/usual2970/certimate
				
				
				
			
		
			
				
	
	
		
			174 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Go
		
	
	
package migrations
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/pocketbase/pocketbase/core"
 | 
						|
	m "github.com/pocketbase/pocketbase/migrations"
 | 
						|
)
 | 
						|
 | 
						|
func init() {
 | 
						|
	m.Register(func(app core.App) error {
 | 
						|
		// update collection `settings`
 | 
						|
		{
 | 
						|
			collection, err := app.FindCollectionByNameOrId("dy6ccjb60spfy6p")
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			records, err := app.FindRecordsByFilter(collection, "name='sslProvider'", "-created", 1, 0)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			if len(records) == 1 {
 | 
						|
				record := records[0]
 | 
						|
 | 
						|
				content := make(map[string]any)
 | 
						|
				if err := record.UnmarshalJSONField("content", &content); err != nil {
 | 
						|
					return err
 | 
						|
				}
 | 
						|
 | 
						|
				if provider, ok := content["provider"]; ok {
 | 
						|
					if providerStr, ok := provider.(string); ok {
 | 
						|
						if providerStr == "letsencrypt_staging" {
 | 
						|
							content["provider"] = "letsencryptstaging"
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
 | 
						|
				if config, ok := content["config"]; ok {
 | 
						|
					if configMap, ok := config.(map[string]any); ok {
 | 
						|
						if _, ok := configMap["letsencrypt_staging"]; ok {
 | 
						|
							configMap["letsencryptstaging"] = configMap["letsencrypt_staging"]
 | 
						|
							delete(configMap, "letsencrypt_staging")
 | 
						|
						}
 | 
						|
						if _, ok := configMap["gts"]; ok {
 | 
						|
							configMap["googletrustservices"] = configMap["gts"]
 | 
						|
							delete(configMap, "gts")
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
 | 
						|
				record.Set("content", content)
 | 
						|
				if err := app.Save(record); err != nil {
 | 
						|
					return err
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		// update collection `access`
 | 
						|
		{
 | 
						|
			collection, err := app.FindCollectionByNameOrId("4yzbv8urny5ja1e")
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			// update field
 | 
						|
			if err := collection.Fields.AddMarshaledJSONAt(2, []byte(`{
 | 
						|
				"hidden": false,
 | 
						|
				"id": "hwy7m03o",
 | 
						|
				"maxSelect": 1,
 | 
						|
				"name": "provider",
 | 
						|
				"presentable": false,
 | 
						|
				"required": false,
 | 
						|
				"system": false,
 | 
						|
				"type": "select",
 | 
						|
				"values": [
 | 
						|
					"1panel",
 | 
						|
					"acmehttpreq",
 | 
						|
					"akamai",
 | 
						|
					"aliyun",
 | 
						|
					"aws",
 | 
						|
					"azure",
 | 
						|
					"baiducloud",
 | 
						|
					"baishan",
 | 
						|
					"baotapanel",
 | 
						|
					"byteplus",
 | 
						|
					"buypass",
 | 
						|
					"cachefly",
 | 
						|
					"cdnfly",
 | 
						|
					"cloudflare",
 | 
						|
					"cloudns",
 | 
						|
					"cmcccloud",
 | 
						|
					"ctcccloud",
 | 
						|
					"cucccloud",
 | 
						|
					"desec",
 | 
						|
					"dnsla",
 | 
						|
					"dogecloud",
 | 
						|
					"dynv6",
 | 
						|
					"edgio",
 | 
						|
					"fastly",
 | 
						|
					"gname",
 | 
						|
					"gcore",
 | 
						|
					"godaddy",
 | 
						|
					"goedge",
 | 
						|
					"googletrustservices",
 | 
						|
					"huaweicloud",
 | 
						|
					"jdcloud",
 | 
						|
					"k8s",
 | 
						|
					"letsencrypt",
 | 
						|
					"letsencryptstaging",
 | 
						|
					"local",
 | 
						|
					"namecheap",
 | 
						|
					"namedotcom",
 | 
						|
					"namesilo",
 | 
						|
					"ns1",
 | 
						|
					"porkbun",
 | 
						|
					"powerdns",
 | 
						|
					"qiniu",
 | 
						|
					"qingcloud",
 | 
						|
					"rainyun",
 | 
						|
					"safeline",
 | 
						|
					"ssh",
 | 
						|
					"sslcom",
 | 
						|
					"tencentcloud",
 | 
						|
					"ucloud",
 | 
						|
					"upyun",
 | 
						|
					"vercel",
 | 
						|
					"volcengine",
 | 
						|
					"webhook",
 | 
						|
					"westcn",
 | 
						|
					"zerossl"
 | 
						|
				]
 | 
						|
			}`)); err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			if err := app.Save(collection); err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		// update collection `acme_accounts`
 | 
						|
		{
 | 
						|
			collection, err := app.FindCollectionByNameOrId("012d7abbod1hwvr")
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			records, err := app.FindRecordsByFilter(collection, "ca='letsencrypt_staging' || ca='gts'", "-created", 0, 0)
 | 
						|
			if err != nil {
 | 
						|
				return err
 | 
						|
			}
 | 
						|
 | 
						|
			for _, record := range records {
 | 
						|
				ca := record.GetString("ca")
 | 
						|
				if ca == "letsencrypt_staging" {
 | 
						|
					record.Set("ca", "letsencryptstaging")
 | 
						|
				} else if ca == "gts" {
 | 
						|
					record.Set("ca", "googletrustservices")
 | 
						|
				} else {
 | 
						|
					continue
 | 
						|
				}
 | 
						|
 | 
						|
				if err := app.Save(record); err != nil {
 | 
						|
					return err
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		return nil
 | 
						|
	}, func(app core.App) error {
 | 
						|
		return nil
 | 
						|
	})
 | 
						|
}
 |