Немного предыстории. Ищу работу - скинули вакансию, типа порешай тестовое задание и если что, то мы на связи.
Про этот вот Silesforce услышал я от них же, раньше - глухо.
Порылся в куче англиканского я текста, назаработал в плечи штук 15 я значков.
Система говорит - ты классный парень, и до тебя тут не было таких спецов.
Сажуся я за тестово задание. Все просто, контроллер, CRUD, и вьюха с пагинацией.
Уж думал я, что щас пиздец как отчитаюсь, медаль повешу и поеду новый бизнес покорять.
Но тестово задание оказалося с подвохом. Подвох тот - Lightning.
У меня вообще сложилось впечатление, что Lightning этот из говна и палок собран, на костыли поставлен, и сука костылями машет.
И там где в .Net я сделал бы за час, я тут сижу и целый день ругаюсь матом.
Смысл в чем. Так как с отладкой беда, нарисовал тестовый контроллер по поиску контактов
@AuraEnabled
public static List<ContactManagerListItemViewModel> getContacts(){
List<ContactManagerListItemViewModel> tempList = new List<ContactManagerListItemViewModel>();
List<Contact> tempContacts = Database.query('SELECT Id, Name, EMail, Contact_Level__c, Contact.Account.Name, Contact.Owner.Name, Contact.CreatedBy.Name, CreatedDate FROM Contact');
for(Contact cont: tempContacts){
ContactManagerListItemViewModel model = new ContactManagerListItemViewModel();
model.Id = cont.Id;
model.AccountName = cont.Account.Name;
model.ContactLevel = cont.Contact_Level__c;
model.CreatedBy = cont.CreatedBy.Name;
//model.CreatedDate = cont.CreatedDate;
model.Email = cont.Email;
model.Name = cont.Name;
model.OwnerName = cont.Owner.Name;
tempList.add(model);
}
return tempList;
}
В списке ViewModel, которую я нарисовал отдельным классом. Мне так захотелось, мне так надо.
Передавал перед этим результат SOQL - все данные приходят в компонент, но если передать таким вот макаром - данных нету. Вернее по логам вижу, что браузер принял массив из нужных мне позиций, но там все пусто.
Отправлял результат метода в виде JSON - строка приходит как надо, данные там есть.
И тут вот получается, что lightning:datatable мой результат запроса SOQL сожрал и все поля (lookup) оставил пустыми. Чего я во viewmodel и полез. Но список классов, которые не sObject он вообще игнорирует.
И у меня остается два путя.
1. Имея результат запроса SOQL самому рисовать таблицы. Блять, Lightning, ты серьезно?
2. Где-то в компоненте lightning:datatable есть возможность прописать поля (lookup). Порылся в этих ваших интернетах и не нашел как. Букварь говорит, что тип полей стандартный примитив и точка.
Памажитя а? А то у меня уже желание кинуть это все и дальше на net практиковаться