Merge branch 'master' of Software_Engineering_I/greenvironment-frontend into max_dev
commit
1baa7b6230
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,12 @@
|
|||||||
|
import {IUser} from './IUser';
|
||||||
|
|
||||||
|
export interface IChat {
|
||||||
|
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
namespace: string;
|
||||||
|
|
||||||
|
members: IUser[];
|
||||||
|
|
||||||
|
messages: any[];
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
import {IGraphqlError} from './IGraphqlError';
|
||||||
|
|
||||||
|
export interface IErrorResponse {
|
||||||
|
error: {
|
||||||
|
errors: IGraphqlError[];
|
||||||
|
data: any;
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
export interface IGraphqlError {
|
||||||
|
|
||||||
|
message: string;
|
||||||
|
|
||||||
|
path: string[];
|
||||||
|
|
||||||
|
location: {line: number; column: number}[];
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
import {IUser} from './IUser';
|
||||||
|
|
||||||
|
export interface IGroup {
|
||||||
|
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
creator: IUser;
|
||||||
|
|
||||||
|
admins: IUser[];
|
||||||
|
|
||||||
|
members: IUser[];
|
||||||
|
|
||||||
|
chat: any;
|
||||||
|
|
||||||
|
events: any;
|
||||||
|
|
||||||
|
joined: boolean;
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
import {IUser} from './IUser';
|
||||||
|
|
||||||
|
export enum RequestType {
|
||||||
|
FRIENDREQUEST = 'FRIENDREQUEST',
|
||||||
|
GROUPINVITE = 'GROUPINVITE',
|
||||||
|
EVENTINVITE = 'EVENTINVITE',
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IRequest {
|
||||||
|
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
sender: IUser;
|
||||||
|
|
||||||
|
receiver: IUser;
|
||||||
|
|
||||||
|
type: RequestType;
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
import {IUser} from './IUser';
|
||||||
|
import {IGroup} from './IGroup';
|
||||||
|
|
||||||
|
export interface ISearchResult {
|
||||||
|
users: IUser[];
|
||||||
|
|
||||||
|
groups: IGroup[];
|
||||||
|
|
||||||
|
posts: any[];
|
||||||
|
|
||||||
|
events: any[];
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
export interface ISettings {
|
||||||
|
darkmode?: boolean;
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
import {IGroup} from './IGroup';
|
||||||
|
import {ISettings} from './ISettings';
|
||||||
|
import {IChat} from './IChat';
|
||||||
|
import {IRequest} from './IRequest';
|
||||||
|
|
||||||
|
export interface IUser {
|
||||||
|
|
||||||
|
id: number;
|
||||||
|
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
handle: string;
|
||||||
|
|
||||||
|
email?: string;
|
||||||
|
|
||||||
|
profilePicture?: string;
|
||||||
|
|
||||||
|
settings?: string;
|
||||||
|
|
||||||
|
level: number;
|
||||||
|
|
||||||
|
points: number;
|
||||||
|
|
||||||
|
numberOfPosts: number;
|
||||||
|
|
||||||
|
postCount: number;
|
||||||
|
|
||||||
|
posts: any[];
|
||||||
|
|
||||||
|
chats: IChat[];
|
||||||
|
|
||||||
|
receivedRequests: IRequest[];
|
||||||
|
|
||||||
|
sentRequests: IRequest[];
|
||||||
|
|
||||||
|
joinedAt: string;
|
||||||
|
|
||||||
|
friendCount: number;
|
||||||
|
|
||||||
|
friends: IUser[];
|
||||||
|
|
||||||
|
groupCount: number;
|
||||||
|
|
||||||
|
groups: IGroup[];
|
||||||
|
|
||||||
|
eventCount: number;
|
||||||
|
|
||||||
|
events: any[];
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
import {Injectable} from '@angular/core';
|
||||||
|
import {HttpHeaders} from '@angular/common/http';
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export abstract class BaseService {
|
||||||
|
protected headers: HttpHeaders;
|
||||||
|
|
||||||
|
protected constructor() {
|
||||||
|
this.headers = new HttpHeaders();
|
||||||
|
this.headers.set('Content-Type', 'application/json');
|
||||||
|
}
|
||||||
|
}
|
@ -1,37 +1,41 @@
|
|||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {Headers, Http} from '@angular/http';
|
|
||||||
import {DatasharingService} from '../datasharing.service';
|
|
||||||
import {Router} from '@angular/router';
|
|
||||||
import {environment} from 'src/environments/environment';
|
import {environment} from 'src/environments/environment';
|
||||||
import { User } from 'src/app/models/user';
|
import {HttpClient} from '@angular/common/http';
|
||||||
|
import {BaseService} from '../base.service';
|
||||||
|
|
||||||
|
const graphqlCreateGroupQuery = `mutation($name: String!) {
|
||||||
|
createGroup(name: $name) {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}`;
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root'
|
providedIn: 'root'
|
||||||
})
|
})
|
||||||
export class SocialService {
|
export class SocialService extends BaseService {
|
||||||
|
|
||||||
users: Array<User>;
|
constructor(private http: HttpClient) {
|
||||||
constructor(private http: Http, private data: DatasharingService, private router: Router) {
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
createGroup(name: string) {
|
/**
|
||||||
const headers = new Headers();
|
* Builds the body for a group creation request
|
||||||
headers.set('Content-Type', 'application/json');
|
* @param name
|
||||||
this.http.post(environment.graphQLUrl, this.buildJsonGroup(name)).subscribe(response => {
|
*/
|
||||||
console.log(response.text()); });
|
private static buildGroupCreateBody(name: String): any {
|
||||||
}
|
return {
|
||||||
|
query: graphqlCreateGroupQuery, variables: {
|
||||||
public buildJsonGroup(name_: String): any {
|
name
|
||||||
const body = {
|
|
||||||
query: `mutation($name: String!) {
|
|
||||||
createGroup(name: $name) {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
}`
|
|
||||||
, variables: {
|
|
||||||
name: name_
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return body;
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a group
|
||||||
|
* @param name
|
||||||
|
*/
|
||||||
|
createGroup(name: string) {
|
||||||
|
const body = SocialService.buildGroupCreateBody(name);
|
||||||
|
return this.http.post(environment.graphQLUrl, body, {headers: this.headers});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue