Loading...
doktoraaaa avatar doktoraaaa 42 Точки

[AngularJS] Проблеми, Въпроси, Решения, Бъгове

Здравейте искам да отворя темата за проблеми с API service и неразбиране на документацията.

Моят проблем е с Change Password,

ако някой е разбрал какво трябва да съдържа заявка и работи ако може да реши моя проблем,

защото на мен ми връща (401 Unauthorized)

Благодаря.

Тагове:
1
JavaScript Applications 17/04/2016 17:35:01
enevlogiev avatar enevlogiev 1168 Точки

Добавил ли си header с Authorization: Bearer + token?

3
doktoraaaa avatar doktoraaaa 42 Точки

Намерих решение на проблема си подавало се token

0
bulgaria_mitko avatar bulgaria_mitko 133 Точки

Здравейте, исках да попитам. 1. трябва ли да е отделен github проект за Issue Tracker-a или може да ползвам вече съществуваш проект в който имам всички домашни изпити и т.н. от софтуни които съм правил? 2. опитвам се да логна юзър обаче ми дава грешка: {"error":"unsupported_grant_type"} като това, което пращам е: {username: "admin@softuni.bg", password: "123456", grant_type: "password"} до http://softuni-issue-tracker.azurewebsites.net/api/Token можеш ли някой да ми помогне и да ми каже къде бъркам. мерси!

 

edit: разбрах, защо ми дава грешка, защото не трябва да е json стрига

0
14/04/2016 09:50:02
Reath avatar Reath 188 Точки

Не е задължително отделно Repo за проекта, но смятам, че на теб самия би ти било по-удобно да е отделно. И все пак ако си имаш repo за angular курса, не е проблем там да си комитваш проекта.

Втория проблем се оправя с Content-type хедъра.

0
onefen avatar onefen 27 Точки

здравейте!

на мен ми дава следната грешка: ReferenceError: issueTrackerSystem is not defined

Въпреки че съм си направил модул в app.js. сложил съм си ng-app=" issueTrackerSystem" в html тага на index.html.

реферирал съм си app.js и контролера в html-а. Грешката ми я дава като взема да си пиша контролера. Като го махна изчезва.

ето така ми започва модула:

var app = angular.module('issueTrackerSystem', ['ngRoute']);

в app.js казвам при redirect-ването:

controller: 'HomeController'

а ето така ми започва контролера:

issueTrackerSystem.controller('HomeController', ['$scope', function($scope) {

не знам какво не му харесва

1
moholovka avatar moholovka 169 Точки

Еми нямаш променлива issueTrackerSystem, това ти е името на модула. Ако изкаш да му закачиш контролер, трябва да използваш app.controller...

0
14/04/2016 22:39:32
Kamenov avatar Kamenov 18 Точки

Здравейте,

аз пук изобщо не намерих информация как става регистрирането и логването на user?

Не разбрах какъв трябва да е binding modela, поне никъде не е описан?

-2
15/04/2016 01:45:30
Reath avatar Reath 188 Точки

Моля прегледай отново заданието. В postman колекцията също има примерни заявки за регистрация и login.

0
bulgaria_mitko avatar bulgaria_mitko 133 Точки

аз имам още един въпрос как трябва да се изпрати json-а за създаване на нов проект в описанието на апито няма пример и ми е малко трудно така. това, което се опитвам да пратя е: 

{Name: "admin@softuni.bg", Description: "123456", ProjectKey: "password", LeadId: "fsdfsd", Priorities: {Id: 10, Name: "Low"}}

но ми дава грешка: 

{
    "Message": "The request is invalid.",
    "ModelState": {
        "model.Priorities.Id": [
            "An error has occurred."
        ],
        "model.Priorities": [
            "The Priorities field is required."
        ]
    }
}

PS: след малко проби стигнах до: 

{Name: "Admin Project", Description: "123456", ProjectKey: "AP", Lead.Name: "fsdfsd", Priorities.Name: "Low"} с грешка:

{
    "Message": "The request is invalid.",
    "ModelState": {
        "model.ProjectKey": [
            "An error has occurred."
        ]
    }
}

 

1
15/04/2016 12:34:25
Reath avatar Reath 188 Точки

Мисля, че е описано в условието че се изисква ProjectId, не projectKey. Моля прегледай postman колекцията, там има работещи примери на всички заявки, които са описани (това е причината да няма предоставени примери в заданието)

0
bulgaria_mitko avatar bulgaria_mitko 133 Точки

може би задавам глупави въпроси, но от къде мога да намеря postman колекцията?? 

0
moholovka avatar moholovka 169 Точки

В зипа към заданието я има, импортни я в постман (горе в ляво погледни до History) и после ще се ориентираш.

1
explos1on avatar explos1on 23 Точки
Това е моята заявка, както си е от документацията:

authenticationService.changePassword = function (userData) {
    return $http({
        method: 'POST',
        url: baseServiceUrl + '/Account/ChangePassword',
        data: userData,
        headers: this.getHeaders()
    });
};

А ми връща следната грешка:

  1. {Message: "The request is invalid.",…}
    1. Message:"The request is invalid."
    2. ModelState:{model.OldPassword: ["The Current password field is required."],…}
      1. model.NewPassword:["The New password field is required."]
      2. model.OldPassword:["The Current password field is required."]

 

 

Забих на "ChangePassword" и немога да го оправя. Някой ако се сеща нещо да каже.

0
15/04/2016 18:34:20
Reath avatar Reath 188 Точки

Без да видим какво подаваш като userData няма как да ти помогнем. Съдейки по грешката явно не set-ваш правилните ключове в обекта, понеже щом ти казва, че CurrentPassword е required, значи ти не му подаваш такова поленце, или е с null стойност.

0
explos1on avatar explos1on 23 Точки

Object {oldPassword: "123456", newPassword: "1234567", confirmPassword: "1234567"} Това ми е userData. Според мен всичко е нормално.

0
aanguelov avatar aanguelov 219 Точки
url: baseServiceUrl + '/Account/ChangePassword'

 

Това ще работи ако си хардкоднал 'api'  към базовия урл. Предполагам че не си го направил, защото тогава нямаше да ти работят другите заявки. Пробвай да добавиш едно  'api' към '/Account/ChangePassword'.

0
exploitx avatar exploitx 71 Точки

Може ли някой да ми каже, как едно issue, ще стане resolved.На мен ми дава само InProgress ,StoppedProgress и Closed.

Дори и като админ или assignee пак не дава други статуси. Видях че  като се създава нов проект се слага default Transition Scheme, може би от там идват и статусите.??

0
Reath avatar Reath 188 Точки

За да едно issue стане resolved (в случая в системата е closed) първо трябва да мине през  in progress, след което вече ще има като available status - closed 

0
exploitx avatar exploitx 71 Точки

Горе-долу разбрах, само не рабрах защо по default статусите са InProgress и Closed и после както каза като дам на InProgress ми връща StoppedProgress и Closed(което всъщност е solved) . Правилно ли съм рабрал?

0
16/04/2016 01:22:38
Reath avatar Reath 188 Точки

Точно така. Едно issue следва дадена transition схема, в която е описано, че първо трябва да се премине през in progress, след което в даден момент може да му се прекрати прогреса, или да се close-не, което реално е solved, прекратяваш с issue–то и вече не може да се пипа.

1
swixigar avatar swixigar 6 Точки

Някой открил ли е начин на взимане на Lead на проект, едитвайки някое issue, например, без да пуска 300 заявки преди да определи ролята на потребителя?

С други думи за да видя дали човека може да клика там, аз трябва да взема issue, след т'ва проекта към който принадлежи, та чак тогава мога да определя някаква потребителска роля.

Нещо по-разумно като идея?

 

0
16/04/2016 14:44:12
Reath avatar Reath 188 Точки

Напълно нормално е да се наложи да се изпълнят две заявки в подобен случай. Get issues/{id} не би трябвало да му е работа да върне дали текущия потребител, който достъпва заявката има някакви права върху проекта, на който е issue-то. След достъпване на проекта на issue-то вече може да се установи дали потребителя е лидера му.

0
swixigar avatar swixigar 6 Точки

Съгласен съм, но можеше, както връща Project.Id и Project.Name, барем и едно Project .Lead.Id да имаше. Заявките към някои страници ще паднат с около 70% (поне при мен, с магиите по потребителските роли) :) ))

Релно, повечето пъти, да не кажа всички, когато правиш GET issues/:id , трябва да се вземе и проекта му, само заради т'ва Lead.Id;
 

3
17/04/2016 13:14:42
xenonbg avatar xenonbg 9 Точки

Здравейте, колеги искам да попитам за user homepage-а, от видяното от снимката в ляво под affiliated project трябва да заредим, всички проекти към който логнатия user има asing-нати issue-та или е project lead, което аз разбирам като меню от проекти като цъкна върху даден проект да ми изкарва asing-нати issue-та в таблицата в дясно само за конкретния проект и ако е  project lead да изкарва всички issue-та за проекта. Обаче не виждам ендпойнт който връща проектите в който или е project lead или има asing-нати issue-та логнатия юзър по дадено id на юзъра примерно.

0
16/04/2016 16:45:43
Reath avatar Reath 188 Точки

Здравей, благодаря за забележката!

Backend-а бе обновен и по-точно заявката GET /projects. Тя вече поддържа странициране, както и филтър. След като вземеш issues/me ще имаш списък на всички проекти, в които потребителя има assign-нато issue, след което чрез get /projects с филтър където leadid == currentUserId ще вземеш всички проекти, на които потребителя е project leader. Моля всички да изтеглите обновеното условие, там е описана новата заявка и в postman колекцията има някои по-интересни употреби на нея.

Извиняваме се за причиненото неудобство!

0
xenonbg avatar xenonbg 9 Точки

Значи да разбираме, че issue/me ще връща в обекта и проектите с asing-нати issue-та за текущия юзър.

0
EBojilova avatar EBojilova 330 Точки

И тука май пак се омотах със заявките.

Въпроса ми е относно коментара:

"Backend-а бе обновен и по-точно заявката GET /projects. Тя вече поддържа странициране, както и филтър. След като вземеш issues/me ще имаш списък на всички проекти, в които потребителя има assign-нато issue, след което чрез get /projects с филтър където leadid == currentUserId ще вземеш всички проекти, на които потребителя е project leader. Моля всички да изтеглите обновеното условие, там е описана новата заявка и в postman колекцията има някои по-интересни употреби на нея"

За зареждането на двата панела ползвам само по една заявка:

1. За моите проекти ползвам "get /projects с филтър където leadid == currentUserId ще вземеш всички проекти, на които потребителя е project leader".

2. За моите ишута ползвам issues/me

Това означва ли, че трябва да взема всички проекти на ишутата от точка 2, да ги съединя с проектите, на които съм лидер?

Ако е така, issues/me връща само id i Name na проекта, това означва ли че трябва да правя заявка за всеки проект, който го нямам в списъка от т.1 до момента и да го добавям, тъй като таблицата ми е малко по-подробна от това проекта да съдържа само Name?  А и как ще стане пейджинга в този случай?

1
04/05/2016 09:20:40
exploitx avatar exploitx 71 Точки

Тъи като backend-API-то е направено перфектно, както по горе един колега каза.Трябва да се пращат една камара заявки първо за да се определи дали hasAssignedIssueInProject, дали е ProjectLead или дали е Assignee и чак тогава да вземе инфото за проекта със issue-тата. Аз ги преброих 5 заявки за една страница. Така обаче няма да се плашите аз вече съм го измислил :D.

Аз съм го направил така:

Влиза потребителя и са набива на Dashboard-a там обаче освен че взема Issue-тата си(от тях си взема проектите в които има Issue), също и взема проектите на които е Projectlead(първо вземам всички проекти после ги филтрирам до тези на които съм ProjectLead). Според мен Dashboard проектите са комбинация между всички проекти на които е ProjectLead и тези в които има Issue.

Тази цялата информация я запазва в един Service или някъде другаде и не правиш 300 заявки при всяка страница, а правиш само 2 и останалите 3(за проверките) си ги вземаш от Service-a.

Аз съм го направил с localStorage и даже да се рефрешне остава информацията и не се правят пак заявките, обаче съм добавил и функция за обновяване на localStorage-a при всяко добавяне на Проект или Issue за да е прясна базата(може и един рефреш бутон да добавя) :D

Незнам колко вярно съм го направил и дали съм ви помогнал с информацията, но ще се радвам на мнения...

P.S: И да съм ви помогнал и да не съм даите един лайк, че са ми малко :D

1
16/04/2016 21:59:38
swixigar avatar swixigar 6 Точки

е ти като добавиш, хубаво ти се ъпдейтва, ама бай Иван като се включи, кой ще му ъпдейтва неговата локалка, или съответно твойта, ако той качва? :)

0
16/04/2016 22:06:07
exploitx avatar exploitx 71 Точки

Ко са праиш на умен не видя ли че написах цитирам "(може и един рефреш бутон да добавя)". Кат цакнат рефреш бутона и на бай ти Иван Issue-то ще се добави и то.То неможе хем с малко заявки хем с цепещ секундата update на фронтенд-а. Поне с това Api не виждам как ш стане.Даи по-добра идея и всички ш направим както кажеш :D

 

 

-3
16/04/2016 22:43:00
Reath avatar Reath 188 Точки

Моля да изтеглите обновеното условие. В отговора отгоре съм описал промените, които са направени по Backend-а и смятам, че те ще ви помогнат да оптимизирате броя на заявки. 

Благодарим за отправените забележки и се извиняваме за причиненото неудобство!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.