Changeset View
Changeset View
Standalone View
Standalone View
lib/utils/avatar-utils.js
// @flow | // @flow | ||||
import t from 'tcomb'; | import t from 'tcomb'; | ||||
import type { TUnion, TInterface } from 'tcomb'; | import type { TUnion, TInterface } from 'tcomb'; | ||||
import { tRegex, tShape, tString, tID } from './validation-utils.js'; | import { tShape, tString, tID } from './validation-utils.js'; | ||||
import { validHexColorRegex } from '../shared/account-utils.js'; | import { | ||||
import { onlyOneEmojiRegex } from '../shared/emojis.js'; | type ImageAvatarDBContent, | ||||
import type { | type UpdateUserAvatarRemoveRequest, | ||||
ENSAvatarDBContent, | type UpdateUserAvatarRequest, | ||||
EmojiAvatarDBContent, | emojiAvatarDBContentValidator, | ||||
ImageAvatarDBContent, | ensAvatarDBContentValidator, | ||||
UpdateUserAvatarRemoveRequest, | } from '../types/avatar-types.js'; | ||||
UpdateUserAvatarRequest, | |||||
} from '../types/avatar-types'; | |||||
const emojiAvatarDBContentValidator: TInterface<EmojiAvatarDBContent> = tShape({ | |||||
type: tString('emoji'), | |||||
emoji: tRegex(onlyOneEmojiRegex), | |||||
color: tRegex(validHexColorRegex), | |||||
}); | |||||
const imageAvatarDBContentValidator: TInterface<ImageAvatarDBContent> = tShape({ | const imageAvatarDBContentValidator: TInterface<ImageAvatarDBContent> = tShape({ | ||||
type: tString('image'), | type: tString('image'), | ||||
uploadID: tID, | uploadID: tID, | ||||
}); | }); | ||||
const ensAvatarDBContentValidator: TInterface<ENSAvatarDBContent> = tShape({ | |||||
type: tString('ens'), | |||||
}); | |||||
const updateUserAvatarRemoveRequestValidator: TInterface<UpdateUserAvatarRemoveRequest> = | const updateUserAvatarRemoveRequestValidator: TInterface<UpdateUserAvatarRemoveRequest> = | ||||
tShape({ | tShape({ | ||||
type: tString('remove'), | type: tString('remove'), | ||||
}); | }); | ||||
const updateUserAvatarRequestValidator: TUnion<UpdateUserAvatarRequest> = | const updateUserAvatarRequestValidator: TUnion<UpdateUserAvatarRequest> = | ||||
t.union([ | t.union([ | ||||
emojiAvatarDBContentValidator, | emojiAvatarDBContentValidator, | ||||
Show All 12 Lines |