import MessageContent from "./messageContent";
import MessageContentType from "./messageContentType";
import wfc from "../client/wfc";

export default class LinkMessageContent extends MessageContent {
    title;
    contentDigest;
    url;
    thumbnail;


    constructor() {
        super(MessageContentType.Link);
    }

    encode() {
        let payload = super.encode();
        let obj = {
            d: this.contentDigest,
            u: this.url,
            t: this.thumbnail
        }

        payload.searchableContent = this.title;
        payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj));

        return payload;
    }

    decode(payload) {
        super.decode(payload);
        this.title = payload.searchableContent;
        let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent));
        this.contentDigest = obj.d;
        this.url = obj.u;
        this.thumbnail = obj.t;
    }

    digest(message) {
        let tmp = this.title ? this.title.trim() : this.contentDigest ? this.contentDigest.trim() : null;
        return tmp ? tmp : this.url;
    }
}